/aissue
Pick up an open issue from the amux issue tracker, mark it doing, work it, and mark it done.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/aissue
Context preview
What this command does when you run it.
Pick up an open issue from the amux issue tracker, mark it doing, work it, and mark it done.
Command definition
aissue.mddescription: Pick up an open issue from the amux issue tracker, mark it doing, work it, and mark it done.
allowed-tools: Bash, Read, Edit, Write
argument-hint: [ITEM-ID or leave empty to pick next open issue]
aissue — amux issue runner
Pull an open issue from the local amux issue tracker, transition it through the board (`todo` → `doing` → `done`), and do the actual work in between.
Procedure
1. List open issues
Query the local sqlite DB directly:
sqlite3 ~/.amux/amux.db "SELECT id, title, status, desc FROM issues WHERE deleted IS NULL AND status != 'done' ORDER BY id;"
The result is pipe-delimited: `id|title|status|desc`. Show the user the list (id + title + status) and either:
- If the user named a specific issue (e.g. "work on `ITEM-42`"), use that one.
- If they said something open-ended like "/aissue" with no target, pick the highest-priority open issue (status `todo` first, then `doing` items that aren't already in flight) and confirm with the user before transitioning. Don't grab `doing` items without asking — someone else might be on them.
2. Mark the issue `doing`
Prefer the CLI; fall back to the REST endpoint if the CLI is unavailable or errors. Replace `<ITEM-ID>` with the actual id.
amux board doing <ITEM-ID>
Or via REST:
curl -sk -X PATCH -H 'Content-Type: application/json' \
-d '{"status":"doing"}' \
https://localhost:8822/api/board/<ITEM-ID>Verify the transition by re-querying the row, or by trusting a successful exit code from `amux board doing`.
3. Do the work
Read the issue's `title` and `desc` carefully — that's the spec. Then execute the task using normal Claude Code workflow (Read/Edit/Bash/etc.). If the description is ambiguous, ask the user before guessing. If the work pulls in unrelated cleanups, surface them rather than silently expanding scope.
If the task can't be completed (blocked, needs more info, out-of-scope), do **not** mark it `done`. Stop, explain what's blocking, and leave the status at `doing` so the issue stays visible on the board.
4. Mark the issue `done`
After the work is genuinely finished (code edited, tests/builds run if applicable, change verified), transition the board:
amux board done <ITEM-ID>
Or via REST:
curl -sk -X PATCH -H 'Content-Type: application/json' \
-d '{"status":"done"}' \
https://localhost:8822/api/board/<ITEM-ID>Notes
- The DB lives at `~/.amux/amux.db`. Read-only queries are safe; do not write to it directly — go through `amux board` or the REST API so audit trail / triggers fire.
- The REST API uses a self-signed cert on `localhost:8822`, so `curl -k` (insecure) is required.
- If both the CLI and REST endpoint fail, stop and report — don't fall back to writing to sqlite directly.
- Only one issue per skill invocation. If the user wants several, run the skill multiple times so each transition is intentional.
- Don't auto-commit when finishing. The user decides when to commit; the skill just flips the board.
Read more
description: Pick up an open issue from the amux issue tracker, mark it doing, work it, and mark it done. allowed-tools: Bash, Read, Edit, Write argument-hint: [ITEM-ID or leave empty to pick next open issue]
aissue — amux issue runner
Pull an open issue from the local amux issue tracker, transition it through the board (`todo` → `doing` → `done`), and do the actual work in between.
Procedure
1. List open issues
Query the local sqlite DB directly:
sqlite3 ~/.amux/amux.db "SELECT id, title, status, desc FROM issues WHERE deleted IS NULL AND status != 'done' ORDER BY id;"
The result is pipe-delimited: `id|title|status|desc`. Show the user the list (id + title + status) and either:
- If the user named a specific issue (e.g. "work on `ITEM-42`"), use that one.
- If they said something open-ended like "/aissue" with no target, pick the highest-priority open issue (status `todo` first, then `doing` items that aren't already in flight) and confirm with the user before transitioning. Don't grab `doing` items without asking — someone else might be on them.
2. Mark the issue `doing`
Prefer the CLI; fall back to the REST endpoint if the CLI is unavailable or errors. Replace `<ITEM-ID>` with the actual id.
amux board doing <ITEM-ID>
Or via REST:
curl -sk -X PATCH -H 'Content-Type: application/json' \
-d '{"status":"doing"}' \
https://localhost:8822/api/board/<ITEM-ID>Verify the transition by re-querying the row, or by trusting a successful exit code from `amux board doing`.
3. Do the work
Read the issue's `title` and `desc` carefully — that's the spec. Then execute the task using normal Claude Code workflow (Read/Edit/Bash/etc.). If the description is ambiguous, ask the user before guessing. If the work pulls in unrelated cleanups, surface them rather than silently expanding scope.
If the task can't be completed (blocked, needs more info, out-of-scope), do **not** mark it `done`. Stop, explain what's blocking, and leave the status at `doing` so the issue stays visible on the board.
4. Mark the issue `done`
After the work is genuinely finished (code edited, tests/builds run if applicable, change verified), transition the board:
amux board done <ITEM-ID>
Or via REST:
curl -sk -X PATCH -H 'Content-Type: application/json' \
-d '{"status":"done"}' \
https://localhost:8822/api/board/<ITEM-ID>Notes
- The DB lives at `~/.amux/amux.db`. Read-only queries are safe; do not write to it directly — go through `amux board` or the REST API so audit trail / triggers fire.
- The REST API uses a self-signed cert on `localhost:8822`, so `curl -k` (insecure) is required.
- If both the CLI and REST endpoint fail, stop and report — don't fall back to writing to sqlite directly.
- Only one issue per skill invocation. If the user wants several, run the skill multiple times so each transition is intentional.
- Don't auto-commit when finishing. The user decides when to commit; the skill just flips the board.
Open-source control plane for AI coding agents — run, monitor & orchestrate dozens of parallel Claude Code, Codex & Gemini sessions from one web dashboard or your phone. Self-healing, single-file, tmux-native.
Repo: mixpeek/amux
Other commands on amux.
- /amux-board
Use when the user says "add to board", "create a task", or wants to track a todo on the amux kanban board
Open command - /amux
Use when you need to interact with the amux system — manage board tasks, check sessions, send emails, automate browsers, or work with CRM contacts
Open command - /chrome-cdp
Use when the user asks to interact with a web page, take a screenshot of a site, click or type in Chrome, scrape content, or debug a web UI. Connects to real Chrome tabs with existing logins.
Open command - /orchestrate
Scaffold a closed orchestrator loop — creates the mission note, state/constraints notes, and a scheduler entry from the v2 template.
Open command - /playwright-auth
Use when the user needs to log into a website for browser automation, save auth cookies, or sync browser profiles to cloud
Open command - /pw-test
Use when you need to test the amux dashboard UI, investigate a visual bug, or verify a frontend change works correctly
Open command

