| name | bakin |
| description | Mission control integration for multi-agent coordination through Bakin's tools. |
Bakin Mission Control
Use Bakin for task-board work, workflow routing, team coordination, assets, schedules, and channel posting.
Bakin is the local task, project, agent, workflow, asset, schedule, and observability system for this runtime.
How you invoke Bakin's bakin_exec_* tools depends on the runtime — see your Tool access section (in your AGENTS.md) for the exact form. The local Bakin server normally runs at http://localhost:3737. Prefer Bakin's tools when they are available; use the CLI only when they are unavailable or when the user asks for a shell command.
The CLI is usually bakin. If the runtime shell cannot find it, try $HOME/.local/bin/bakin or /usr/local/bin/bakin.
Live Tool Discovery
The live tool registry is authoritative. If a tool name or argument is uncertain, discover the available Bakin tools rather than guessing — your Tool access section describes how to list and call them on this runtime.
Runtime shells are intentionally minimal. Do not assume rg, jq, GNU-only flags, or stdin JSON helpers exist.
Pass arguments the way each tool expects — structured JSON for object parameters, or simple key=value pairs when the schema is obvious.
Do not rely on old non-exec tool names such as bakin_create_task, bakin_report_complete, bakin_get_task, or bakin_post_discord. Current task-board and plugin tools use the bakin_exec_* namespace.
Core Calls
Use these current tool names for the common paths:
- Create task:
bakin_exec_tasks_create
- List/get task:
bakin_exec_tasks_list, bakin_exec_tasks_get
- Move task:
bakin_exec_tasks_move
- Log progress:
bakin_exec_tasks_log_progress or bakin_exec_log
- Complete task:
bakin_exec_tasks_complete
- Block task:
bakin_exec_tasks_block
- Assign/update/delete task:
bakin_exec_tasks_assign, bakin_exec_tasks_update, bakin_exec_tasks_delete
- Set dependency:
bakin_exec_tasks_set_dependency
- Workflows:
bakin_exec_workflows_list, bakin_exec_workflows_get_definition, bakin_exec_workflows_start, bakin_exec_get_step, bakin_exec_submit_step, bakin_exec_check_gates
- Team:
bakin_exec_team_list, bakin_exec_team_profile, bakin_exec_team_status, bakin_exec_team_message
- Assets:
bakin_exec_assets_save, bakin_exec_assets_list, bakin_exec_assets_get
- Images:
bakin_exec_images_generate, bakin_exec_images_edit (both accept referenceImages), bakin_exec_images_import, bakin_exec_images_recommend
- Channels:
bakin_exec_post_channel
- Paths:
bakin_exec_get_paths
- Health:
bakin_exec_health_status, bakin_exec_health_doctor
- Schedule:
bakin_exec_schedule_list, bakin_exec_schedule_create, bakin_exec_schedule_get, bakin_exec_schedule_run_now
Task Creation Discipline
When the operator or main asks to assign work to another agent, create a Bakin task first. Do not directly spawn or message runtime-native agents unless Bakin is unavailable and the user explicitly wants a fallback.
Before bakin_exec_tasks_create:
- Call
bakin_exec_workflows_list when the request could map to a workflow.
- Choose the matching
workflowId, or set skipWorkflowReason for a one-off request.
- Include
parentId when this is a subtask of an existing task.
- Include enough brief/context for the assigned agent to act without asking for the original chat.
- If the request carries an attached image, import it against the new task (
bakin_exec_images_import) and put the returned assetId in the description — the assignee can pass it straight to referenceImages. The attachment's runtime attachment URI also works as a referenceImages entry directly.
After bakin_exec_tasks_create: STOP. Dispatch delivers the full task to the assignee — do NOT also bakin_exec_team_message them about it. That message lands in their main session and starts a duplicate worker (Bakin refuses it when the task's run is detectable). Use bakin_exec_log for follow-up context.
When a brief says "like this image" / "based on the attached reference", the generating agent should pass the image itself via referenceImages on bakin_exec_images_generate (assetIds, local paths, or runtime attachment URIs, max 4, native runtime models only) — not describe it in prose.
Iterating on your own output appends a VERSION, never a new asset: revise with bakin_exec_images_edit, or re-roll fresh with bakin_exec_images_generate + versionOf=<assetId>. One assetId per deliverable, n versions.
Image tool results are already managed assets — never copy one to a workspace file and re-save it via bakin_exec_assets_save; report the assetId you already hold. Pass references by assetId once imported, never by file path.
Channel Delivery Discipline
A finished asset goes to a channel EXACTLY ONCE, via bakin_exec_post_channel with imageAssetId/videoAssetId + taskId — never pasted natively into a channel reply (native posts bypass the audit trail and the once-per-channel guard). Post it only as the reply/handoff for the originating request; progress updates never attach the deliverable, and spotting a finished asset while monitoring a task is not a trigger to post it. The tool refuses a second delivery of the same asset to the same channel for the same task; repost=true exists only for a genuinely intended second copy.
Example shape:
bakin_exec_tasks_create title="Write todays story" assignee="trainer" description="Write a short story and post the result back to #general." skipWorkflowReason="one-off chat request"
Task Lifecycle
Tasks flow through backlog, todo, inProgress, blocked, done, and archived. Start assigned work by moving the task to inProgress and logging progress. Before marking a task done, log what changed. If blocked, use bakin_exec_tasks_block with the concrete reason.
Workflow step assignments are different: submit step output with bakin_exec_submit_step. Do not move workflow tasks to done directly.
Error Handling
If a Bakin tool call fails, report the exact tool and error. Do not silently fall back to direct runtime-native dispatch for task-board work. A fallback is acceptable only when the user has asked for best-effort delivery despite Bakin being down.
Path Discipline
Use bakin_exec_get_paths before reading or writing Bakin content paths. Do not hardcode ~/.bakin in normal agent work.