Skip to main content
Version: latest

recipes

Common operational recipes for day-to-day kasmos usage. Each snippet is backed by actual CLI commands or TUI actions.

restart a plan from scratch

When a plan's implementation went sideways and you want to re-plan from the beginning:

kas task transition <task-file> start_over

This moves a done plan back to planning status. The plan content is preserved; the next planner agent run will rewrite it.

To restart a cancelled plan instead:

kas task transition <task-file> reopen

re-run implementation without re-planning

Resume implementation on an existing plan without running the planner again:

kas task transition <task-file> reimplement

Moves a done plan to implementing, skipping the planning phase.

implement a specific wave only

Run coder agents for a single wave rather than the full sequence:

kas task implement <task-file> --wave 2

Useful when a wave failed partway through and you want to retry it in isolation.

force-override task status

Bypass the FSM and set any status directly. Use this only for cleanup or recovery:

kas task set-status <task-file> ready --force
kas task set-status <task-file> implementing --force
kas task set-status <task-file> done --force

Without --force the command refuses to run, preventing accidental misuse.

list tasks filtered by status

kas task list # all non-cancelled tasks
kas task list --status implementing # tasks currently being coded
kas task list --status reviewing # tasks awaiting review
kas task list --status done # completed tasks

inspect task content

kas task show <task-file>

Prints the raw plan markdown stored in the task store — useful when you want to inspect what the planner wrote without opening the TUI viewer.

update plan content from stdin

Pipe new plan content directly into the store without touching a file on disk:

cat my-revised-plan.md | kas task update-content <task-file>
echo "# my plan\n## Wave 1\n### Task 1: do something" | kas task update-content <task-file>

start the daemon in the foreground

For debugging or one-shot orchestration runs, start the daemon directly:

kas daemon start --foreground

The daemon claims pending signals from the database and advances plan lifecycle state. Without a running daemon, signals emitted by agents stay pending and plans do not advance automatically.

emit a signal manually

Trigger a plan lifecycle event from the shell (e.g. after an sdk or tmux agent finishes):

kas signal emit implement_task_finished <task-file> --payload '{"wave_number":1,"task_number":3}'
kas signal emit planner_finished <task-file>

spawn an agent from the TUI

All TUI instance operations require a plan to be selected in the sidebar:

actionkey
spawn agent for selected plans
open context menu (all actions) on plan header
implement directly (blueprint skip)context menu → implement directly
start planningcontext menu → start planning
start reviewcontext menu → start review

attach to and detach from an agent

actionkey
attach fullscreen or o
detachctrl+space or ctrl-q
enter interactive modei
submit + exit interactivectrl+enter

pause, resume, and hand off a branch

c → pause session + copy branch name to clipboard
r → resume a paused session
P → create a pull request for the selected instance's branch

After pressing c, run:

git checkout <paste-branch-name>
# inspect, test, make manual edits

Then return to kasmos and press r to resume the agent.

search and filter the sidebar

actionkey
search plans and instances/
show all instances1
show active only2
cycle sort mode3

create a PR from the CLI

gh pr create --base main --head <instance-branch>

Or use the TUI shortcut P which runs gh pr create against the selected instance's branch and stores the PR URL in the task store.

register a hand-written plan file

kas task register my-feature.md
kas task update-content my-feature < my-feature.md

The store strips the .md suffix, so my-feature.md and my-feature refer to the same task. Register creates the record; update-content writes the markdown body.

view all available keybinds

Press ? in the TUI to open the keybind browser, or ctrl+p to open the command launcher and search for any action by name.