You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cmux has compatibility with a wide range of AI agents: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline and Cursor Agent.
I'd really appreciate wmux supporting Kiro CLI as this is what I use personally. The CLI might not make it as easy as Claude's but it seems to be possible - or is this perhaps a Windows limitation?
Shipped in v0.47.0. Not a Windows limitation — Kiro CLI turned out to be the easiest of the three agents wmux supports, for a reason worth explaining, since it shapes what you get.
What it does
wmux now writes ~/.kiro/steering/wmux.md: the instructions block that teaches an agent to drive the browser panel, markdown views, sidebar status and the wmux CLI. Kiro CLI loads every .md in the global steering directory automatically, so it's picked up in every workspace with nothing to install and no per-project setup.
That's a different shape from the other two integrations. Claude Code and OpenCode each read a single global context file (~/.claude/CLAUDE.md, ~/.config/opencode/AGENTS.md), which wmux doesn't own — so there it splices its section between markers and leaves your prose alone. Kiro's steering directory is designed as one-topic-per-file, so wmux writes one file that's entirely its own. No merge, and uninstalling is a delete rather than a rewrite. If you already have a wmux.md there that wmux didn't write, it's left untouched in both directions — the marker is what wmux checks before writing or deleting.
It's behind the same consent gate as everything else wmux writes outside its own directory (#132): Settings → General → Agent integration → Agent instructions. Turning it off removes the file.
What it deliberately does not do
No hooks. For Claude Code, wmux registers hooks in ~/.claude/settings.json to drive the sidebar's blocked/working/idle indicator. Kiro's hooks live in .kiro/hooks/per project, with no global equivalent — so the same feature would mean writing a JSON file into every repository you open. That's precisely the complaint in #132, and a status indicator isn't worth it.
The sidebar isn't lost, though. wmux has a declared-state protocol (#128) built for exactly this case — an agent reports its own state, no screen-scraping and nothing to install:
The steering file documents these, so Kiro learns them the moment it reads its context. If it turns out Kiro doesn't reach for them on its own, tell me and I'll make the instructions more explicit — that's a one-line change to the block, not an architecture question.
Spawning works today with no extra support, since wmux is shell-agnostic:
wmux agent spawn --cmd kiro-cli --label kiro
One thing I'd like you to check
I built this against Kiro's documented global-steering behaviour, but I don't have Kiro CLI here and haven't watched it read the file. So please confirm on your machine: install 0.47.0, enable agent integration, start kiro-cli in a wmux pane, and ask it something like "what terminal are you running in?" or "open example.com in the browser panel". If it knows about wmux, the integration is live.
If it doesn't pick the file up, say so and paste ~/.kiro/steering/ contents — most likely fix would be the filename or a front-matter inclusion key, both trivial to change.
On the wider list
You mentioned cmux covering Codex, Gemini CLI, Aider, Goose, Amp, Cline and Cursor Agent. Any of those that read a global AGENTS.md-style file are close to free now that there are three of these paths and the shape is clear. If there's a specific one you'd also use, open an issue naming it and its global context file and I'll take it — that's a better filter on my time than me guessing which ones matter.
Thanks for the request, and for pointing at cmux as the comparison — it made the gap concrete.
Activity
fix(pty): contain node-pty throws; fix(pkg): ship opencode-plugin; fe…
amirlehmam commentedon Aug 10, 2026
Shipped in v0.47.0. Not a Windows limitation — Kiro CLI turned out to be the easiest of the three agents wmux supports, for a reason worth explaining, since it shapes what you get.
What it does
wmux now writes
~/.kiro/steering/wmux.md: the instructions block that teaches an agent to drive the browser panel, markdown views, sidebar status and thewmuxCLI. Kiro CLI loads every.mdin the global steering directory automatically, so it's picked up in every workspace with nothing to install and no per-project setup.That's a different shape from the other two integrations. Claude Code and OpenCode each read a single global context file (
~/.claude/CLAUDE.md,~/.config/opencode/AGENTS.md), which wmux doesn't own — so there it splices its section between markers and leaves your prose alone. Kiro's steering directory is designed as one-topic-per-file, so wmux writes one file that's entirely its own. No merge, and uninstalling is a delete rather than a rewrite. If you already have awmux.mdthere that wmux didn't write, it's left untouched in both directions — the marker is what wmux checks before writing or deleting.It's behind the same consent gate as everything else wmux writes outside its own directory (#132): Settings → General → Agent integration → Agent instructions. Turning it off removes the file.
What it deliberately does not do
No hooks. For Claude Code, wmux registers hooks in
~/.claude/settings.jsonto drive the sidebar's blocked/working/idle indicator. Kiro's hooks live in.kiro/hooks/per project, with no global equivalent — so the same feature would mean writing a JSON file into every repository you open. That's precisely the complaint in #132, and a status indicator isn't worth it.The sidebar isn't lost, though. wmux has a declared-state protocol (#128) built for exactly this case — an agent reports its own state, no screen-scraping and nothing to install:
The steering file documents these, so Kiro learns them the moment it reads its context. If it turns out Kiro doesn't reach for them on its own, tell me and I'll make the instructions more explicit — that's a one-line change to the block, not an architecture question.
Spawning works today with no extra support, since wmux is shell-agnostic:
One thing I'd like you to check
I built this against Kiro's documented global-steering behaviour, but I don't have Kiro CLI here and haven't watched it read the file. So please confirm on your machine: install 0.47.0, enable agent integration, start
kiro-cliin a wmux pane, and ask it something like "what terminal are you running in?" or "open example.com in the browser panel". If it knows about wmux, the integration is live.If it doesn't pick the file up, say so and paste
~/.kiro/steering/contents — most likely fix would be the filename or a front-matterinclusionkey, both trivial to change.On the wider list
You mentioned cmux covering Codex, Gemini CLI, Aider, Goose, Amp, Cline and Cursor Agent. Any of those that read a global
AGENTS.md-style file are close to free now that there are three of these paths and the shape is clear. If there's a specific one you'd also use, open an issue naming it and its global context file and I'll take it — that's a better filter on my time than me guessing which ones matter.Thanks for the request, and for pointing at cmux as the comparison — it made the gap concrete.