Skip to content

feat(hub): launch your agent, not a command named claude (2.149.0) - #202

Merged
drknowhow merged 1 commit into
mainfrom
feat/hub-ide-cmd
Sep 24, 2026
Merged

drknowhow merged 1 commit into
mainfrom
feat/hub-ide-cmd

Conversation

@drknowhow

Copy link
Copy Markdown
Owner

"Claude Code CLI" was hard-coded to run claude. If a machine starts its agent through a wrapper (yep, a project launcher), the only way in was the Custom slot, which was never saved, so the project card's launch button kept running the stock command.

  • ide_cmds in ~/.c3/hub_config.json sets a command per IDE, for example {"claude-code": "yep"}. It can be edited from Hub Settings → Agent command.
  • ide_cmd on a project (projects.json, set from Open in IDE) overrides the hub-wide value for that project, and the card's launch button uses it.
  • POST /api/projects/launch-ide resolves in this order: custom_cmd, then the project's ide_cmd, then ide_cmds[ide], then the stock command. An override replaces only the binary: a terminal CLI still opens in a terminal, and a GUI editor still gets the path.
  • POST /api/projects/update accepts ide_cmd; a blank value clears it.

This was uncommitted 2.142.0 work in the main checkout. That version number has since been taken, so it's ported onto current main as 2.149.0. The only conflicts were the version lines and two additions next to each other in hub_server.py, and both are kept.

Tests: tests/test_hub_ide_cmd.py; ruff clean. In the local full suite everything passed except test_codex_mcp_transport.py, which hangs on c3_session save on this machine. It hangs the same way on unchanged main and passed in #201's CI, so it's a local environment problem, not this change.

https://claude.ai/code/session_01F6QMHB2mkrDJiQWfC1g9wy

"Claude Code CLI" was hard-coded to the binary `claude`, so a box that
starts its agent through a wrapper could only use the Custom slot, which
was never stored. `ide_cmds` in hub_config.json and a per-project
`ide_cmd` now override the command; launch-ide resolves custom_cmd, then
the project's ide_cmd, then ide_cmds[ide], then the stock command. An
override replaces the binary only, never the terminal-vs-GUI launch.
Ported from uncommitted 2.142.0 work. Tests: test_hub_ide_cmd.py.

Claude-Session: https://claude.ai/code/session_01F6QMHB2mkrDJiQWfC1g9wy
@drknowhow
drknowhow merged commit b546a98 into main Sep 24, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant