Loading...
Loading...
Unified Minions skill for both deterministic shell jobs and LLM subagent orchestration. Replaces the older `gbrain-jobs` routing intent. Use when: submitting gbrain jobs, shell/background tasks, spawning subagents, checking progress, steering running work, pausing/resuming, parallel fan-out. One durable, observable, steerable queue interface.
npx skill4agent add garrytan/gbrain minion-orchestratorgbrain jobs submit shell ...gbrain agent run ...skills/conventions/subagent-routing.mdpain_triggered| Condition | Action |
|---|---|
| User asks for deterministic command/script run | Shell job (CLI: |
| User asks to "run in minions" + explicit command/argv | Shell job (CLI, |
| User asks for research/reasoning/iterative agent | Subagent job (CLI: |
| User asks to steer/pause/resume an agent | Subagent job lifecycle tools (MCP-callable) |
| Single simple operation under ~30s | Consider inline execution first |
| Needs restart durability/observability | Submit as Minion job |
| Parallel work (2+ streams) | |
GBRAIN_ALLOW_SHELL_JOBS=1waitingsrc/core/minions/handlers/shell.tsGBRAIN_ALLOW_SHELL_JOBS=1gbrain jobs workgbrain jobs submit ... --followdocs/guides/minions-shell-jobs.mdsubmit_job name="shell"OperationErrorpermission_deniedshellPROTECTED_JOB_NAMESget_joblist_jobsget_job_progressgbrain jobs stats--paramscmdargvcwdenvgbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/abs/path"}'gbrain jobs submit shell --params '{"argv":["bash","-lc","echo hello"],"cwd":"/abs/path"}'gbrain jobs submit shell --params '{"cmd":"echo hello","cwd":"/tmp"}' --followgbrain jobs submit --help--queue--priority--delay--max-attempts--max-stalled--backoff-type--backoff-delay--backoff-jitter--timeout-ms--idempotency-key--dry-runlist_jobs --name shell --status active
get_job ID
get_job_progress IDget_jobgbrain jobs statscancel_job id=ID
replay_job id=IDreplay_jobgbrain agent run <prompt>subagentsubagent_aggregatorPROTECTED_JOB_NAMES{allowProtectedSubmit: true}gbrain agent rungbrain agent run "Research Acme Corp revenue" --tools "search,query"--toolsBRAIN_TOOL_ALLOWLISTsrc/core/minions/tools/brain-allowlist.tsquerysearchget_pagelist_pagesfile_listfile_urlget_backlinkstraverse_graphresolve_slugsget_ingest_logput_pageallowed_tools references unknown toolgbrain agent run --fanout-manifest companies.jsonname="subagent"name="subagent_aggregator"src/core/minions/handlers/subagent.tssrc/core/minions/handlers/subagent-aggregator.tssrc/commands/agent.ts--subagent-def <name>--model <id>--max-turns <N>--tools <csv>--timeout-ms <N>--fanout-manifest <file>--follow--no-follow--detachgbrain agent runsubagentgbrain jobs submitlist_jobs --status active # MCP — what's running?
get_job ID # MCP — full details + logs + tokens
get_job_progress ID # MCP — structured progress snapshot
gbrain jobs stats # CLI — queue health dashboard
gbrain agent logs ID --follow # CLI — streaming transcript + heartbeatsend_job_message id=ID payload={"directive":"focus on revenue, skip headcount"}pause_job id=ID # freeze without losing state
resume_job id=ID # pick up where it left off
cancel_job id=ID # hard stop
replay_job id=ID # re-run with same or modified params
replay_job id=ID data_overrides={"depth":"deep"} # replay with changesget_job ID # result, token counts, transcripttokens_inputtokens_outputtokens_cache_readJob #ID (name) — status
Progress: step/total — last action
Tokens: input_count in / output_count out (+ cache_read cached)
Runtime: Xs
Children: N pending, M completedJob #ID completed in Xs
Tokens used: input / output / cache_read
Result: <summary>Parent #ID — waiting-children
#A subagent(Acme) — active, 3/5 steps, 2.5k tokens
#B subagent(Beta) — completed, 1.8k tokens
#C subagent(Gamma) — paused
Total tokens so far: 4.3kgbrain jobs statssessions_spawnruntime: "subagent"gbrain agent runget_jobget_job_progresssubmit_jobgbrain agent runget_joblist_jobscancel_jobpause_jobresume_jobreplay_jobsend_job_messageget_job_progressgbrain jobs stats