v0.6.0
Release v0.6.0
Features
-
Multi-agent chat and workflows: Pass
--agent <name>tochatorimplementto run that session in a different agent's container without changing your repo config. In workflow files, addAgent: <name>to any step header to run that step in a specific agent — enabling pipelines where, for example, Claude plans and Codex implements. Before the first step runs, amux collects every distinct agent name required, checks that the corresponding image exists, and offers to download and build any that are missing. An--agentflag at the command line sets the default for steps that do not name an agent; it does not override steps that explicitly specify one. Both--flag valueand--flag=valueforms are accepted in both the CLI and the TUI command box. -
amux configsubcommand: View and edit configuration without manually opening JSON files.amux config show— renders every config field across global and repo scopes in a table, including built-in defaults for unset fields and an override indicator when the repo value shadows the global value.amux config get <field>— shows global value, repo value, and effective value for one field, with an explicit note about which scope wins.amux config set [--global] <field> <value>— writes a value at the repo or global scope, with scope enforcement (e.g.runtimeis global-only,agentis repo-only) and warnings when the new value will be shadowed by an override at the other scope.- The TUI gains a live config table: type
config showin the command box to open it.
-
Configurable work item paths: amux is no longer tied to the
aspec/work-items/directory layout. Setwork_items.dirandwork_items.templatein repo config to pointspecs newandimplementat any directory in your project.- Template auto-discovery: if no template is configured,
specs newscans the work items directory for*template.mdfiles and prompts to save the match so you won't be asked again. amux initoffers to configure a custom work items directory interactively whenaspec/doesn't exist.amux readyshows a warning (not an error) when no work items directory is configured and prints theconfig setcommand to fix it.- Paths are validated to stay within the git root.
- Template auto-discovery: if no template is configured,
-
Background yolo countdown: When a background tab's yolo-mode workflow step goes silent, the tab bar shows a live countdown without requiring you to switch to that tab. The tab alternates between yellow and purple every second, cycling
⚠️ yolo in Nand🤘 yolo in N. When the timer expires, the workflow auto-advances without any input. Switching to the tab mid-countdown opens the yolo dialog showing the time remaining — the timer is not reset. PressingCtrl+AorCtrl+Dwhile the dialog is open closes it and keeps the countdown running in the background. -
Active-tab stuck suppression: On the currently active tab, the stuck timer and yolo countdown dialog will not fire while you are actively pressing keys or scrolling. Both the container and the user must be idle for 10 seconds before a stuck state is declared. Background tabs are unaffected and continue using output-time only.
Improvements
-
Modular Dockerfiles: Agent setup is split into a project base image (
Dockerfile.dev) and per-agent images (.amux/Dockerfile.{agent}in the.amux/directory). The project base contains only project tooling; agent images extend it with the AI agent binary. Updating your project toolchain no longer requires rebuilding agent images, and adding a new agent doesn't force a full base rebuild. -
CLI/TUI flag unification: All command flags are now defined in a single
CommandSpectable that both the CLI parser and the TUI input system are compiled against. Adding a new flag in one place automatically propagates to both surfaces, TUI autocomplete, and tests. Both--flag valueand--flag=valueforms are accepted identically everywhere. -
initandreadynow share a unifiedexecute()/flow trait, reducing duplication and ensuring new steps appear consistently across both commands.
Fixes
- Fixed workflow control board not allowing the "advance to next step" action when the next step uses a different agent than the current step.