Feature requestPlanned

Open Attribution to External Terminals — Make 1DevTool the Orchestration Hub for Any Terminal

PhamducphuongnamPosted

The problem

Hi ah Khoa,

Today 1DevTool orchestrates the agents that live inside it. The moment an external terminal (cmux, tmux, Ghostty, WezTerm…) can register and make attributed calls, 1DevTool stops being an app that hosts agents and becomes the coordination layer for every agent a developer already runs — the hub of a mixed environment instead of a walled one. Nobody owns that category today, and it's one handshake away, not a per-terminal integration.
Outcome We Need
A terminal that 1DevTool did not spawn can opt in to attribution, then do what an in-app AI tab can: resolve, team start, MCP task writes.
Why It's Worth Building (For You)
⚬ Power users arrive with a terminal workflow they won't abandon. Today the ownership wall forces them into workarounds — we pass work between cmux and 1DevTool through a shared file every day. It works, but the boundary feels incidental, not designed.
⚬ The machinery already exists: ~/.1devtool/state/terminal-attach.json (protocol v1: socketPath, token, pid) + terminal.sock. This is exposure of existing capability, not new infrastructure.
⚬ Your socket CLI (terminal list / view / submit) is already excellent from outside the app — it's why our external orchestrator can work with in-app agents at all. Attribution is the missing half.
What We Measured (Full traces available on request)
⚬ A Machine Terminal (Add Terminal → Ghostty) gets no terminal id, does not appear in terminal list, and resolve from it fails with No compatible 1DevTool instance owns the calling terminal. So adding cmux next to Ghostty in that menu would hit the same wall — the ask is attribution, not a menu item.
⚬ Ownership is inferred from process ancestry relative to the PTY, not env vars: stripping every variable (env -i) inside an owned tree still passes the check; setsid nohup breaks it; setting ONEDEVTOOL_TERMINAL_ID by hand changes nothing. There is no parameter an external caller can pass today.
Proposal — Smallest Version First
1. An opt-in handshake: 1devtool-agent terminal register --name= → returns an id subsequent calls honour (or: honour the token from the existing attach descriptor).
2. Narrower: Let Machine Terminals register like AI tabs — appear in terminal list, receive ONEDEVTOOL_TERMINAL_ID.
3. Minimum: Document that external terminals cannot make attributed calls. That alone saves days — we spent two sessions thinking a worker had crashed when the real cause was this boundary.
We use 1DevTool daily in a two-environment setup (cmux workers + 1DevTool orchestration) and would happily test a prototype. We suspect many teams are one handshake away from the same ecosystem.
Environment:
⚬ macOS 15 (Darwin 24.6.0)
⚬ 1devtool-agent-v7
⚬ Daily multi-agent use (Claude Code orchestrator + codex / grok / antigravity workers)

appy to provide journals, run records, or reproduce any of the above on a feedback.
Thanks,
Phương Nam

Roadmap progress

  1. PENDING

  2. REVIEWING

  3. PLANNED

  4. IN PROGRESS

  5. COMPLETED

  • Phamducphuongnam submitted this request
  • Khoa Nguyen moved it to Planned

Discussion0

Newest first
  • No comments yet. Add context or ask a question below.

Sign in to comment, vote and follow this request.

Sign in to reply