Loading...
Loading...
Extended `5dive` CLI recipes beyond the everyday core — see the `5dive-cli` skill first for spawning/messaging sibling agents and the basic task queue. Use THIS skill for hiring a ready-made persona off the agent market (`5dive market`, `hire --from-market`) or firing one (`5dive fire`), auth recovery (`error.class=auth_required`, `--defer-auth`, device-code login via `agent auth start/poll/submit`), BYO-provider agents (`--provider`), multi-account auth (`5dive account`), declarative fleets and company templates (`5dive up/down/ps/export`, `team import`), hosting a CrewAI crew (`5dive crew`), controlling agents on OTHER registered boxes (`5dive fleet`), recurring/scheduled work (`task add --recurring`, `5dive heartbeat`) and projects (`5dive project add`), building or editing multi-agent loops — a relay with optional human gates (`task loop start`) or a maker→verifier review loop (`task add --verifier`, `task reject`, `5dive loop` LOOP-7 verbs) — decomposing an outcome into a guardrailed task DAG (`5dive goal add`) or a self-steering objective bound to a live metric (`5dive objective`), compiling durable knowledge into the shared wiki (`5dive memory add`), org-chart writes (`5dive org set`), convening a governance vote (`5dive council`), reading fleet health / token burn / the daily standup (`5dive supervisor`, `5dive usage`, `5dive digest`), a machine-readable health check (`5dive doctor --json`, `5dive selfcheck --json`), a task's causal history (`5dive trace`), the current model id per alias (`5dive models`), Telegram/Discord pairing and shared team-bot setup, a delegated GitHub push-for-review (`5dive push`), or the onboarding wizard (`5dive company`).
npx skill4agent add 5dive-ai/skills 5dive-cli-extras5dive-cli5dive5dive-cli--json5dive market # browse every pack, rarity-first
5dive market <keyword> [--role=<r>] [--rarity=<tier>] [--seasoned] # --seasoned = ships trained memory
5dive market show <slug> # preview: tier, model, skills, card, DID
5dive hire <role> --from-market --dry-run --json # resolve + show disclosure, create NOTHING
5dive hire <role> --from-market [--as=<name>] --yes --json # provision the top match--from-market--dry-runy/N--yes5dive hire <name> [--role="CTO"] [--title=...]--from-marketagent createorg set--role--titleagent import.tar.gzinspect5dive agent inspect <slug|pack.tar.gz> --json # what shell/hooks/skills it would run
sudo 5dive agent import <slug|pack.tar.gz> --as=<name> [--allow-hooks] --jsonimport--allow-hooks..agent clone <src> <dst>--with-skills=<spec>[,<spec>...]<owner/repo>:<id>--no-skills5dive-cli--inherit-memory=<scope>wiki<agent-name>allteam--no-team-bot--defer-authsudo 5dive agent create draft-bot --type=claude --defer-auth --json--providerhermesopenclawsudo 5dive agent create cheap-bot --type=openclaw \
--provider=openrouter --api-key=- --json # key on stdinopenrouter google minimax moonshot huggingface anthropic deepseek qwen nous openai zai--provider--type=claudeopenrouter deepseek moonshot zai--auth-profile=<name>ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN--model=<slug>agent config set model=<slug>sudo 5dive agent config worker-1 set model=claude-opus-4-8
sudo 5dive agent config worker-1 set effort=high
# effort: low|medium|high|xhigh|max — claude only; xhigh/max are Opus-tier.auth_required# If create fails with error.class=auth_required, the type isn't authenticated.
# A) Static API key in $KEY (preferred for automation)
echo "$KEY" | sudo 5dive agent auth set claude --api-key=- --json
# B) Device-code flow (when only a human can complete login)
sudo 5dive agent auth start claude --json
# -> session id; give the URL from `auth poll` to the user; they paste the
# callback code back via `auth submit`.5dive agent auth login <type>auth startauth setaccount--auth-profile=<name>sudo 5dive account list --json # which accounts exist, types, agents bound
sudo 5dive account usage --json # per-account 5h/7d rate-limit headroom
sudo 5dive account show acme-prod --json # detail incl. which env keys are populated
sudo 5dive account add acme-prod # provision empty, then sign in (TTY-only)
sudo 5dive account login acme-prod --type=claude
sudo 5dive agent set-account worker-1 acme-prod --json # rebind + restart
sudo 5dive agent set-account worker-1 default --json # clear the override
sudo 5dive account rename acme-prod acme-staging --json # remove refuses while bound
sudo 5dive account remove acme-staging --json
sudo 5dive account set-active-provider acme-prod hermes openrouter --json # hermes-onlydefaultaccount addrenameauth-profile=default/etc/5dive/connectors/<type>.envaccount usage# Classic — return a pairing code, user DMs the bot, paste the bot reply.
sudo 5dive agent pair worker-1 --json
sudo 5dive agent pair worker-1 --code=AB12CD --json
# Auto-detect — long-poll for the next inbound message, seed access.json.
sudo 5dive agent telegram-discover --token="$BOT_TOKEN" --poll-secs=60 --json
sudo 5dive agent pair worker-1 --user-id=<userId> --chat-id=<chatId> --json
# Bot identity for a tappable deep link.
sudo 5dive agent telegram-getme --token="$BOT_TOKEN" --jsontelegram-discovertelegram-getmesudo 5dive agent telegram-info worker-1 [--refresh] --json # cached getMe, backfills @handle
sudo 5dive agent telegram-pending-ignore worker-1 <code> --json # drop a pending pairing
sudo 5dive agent telegram-resolve-handle worker-1 @someuser --json # getChat for @handle/proc/<pid>/cmdlineecho "$BOT_TOKEN" | sudo 5dive agent config worker-1 set telegram.token=-
sudo 5dive agent config worker-1 set channels=telegram
sudo 5dive agent config worker-1 set telegram.home-channel=<chat-id> # hermes only=-=-echo -n "$TOKEN" | sudo 5dive secret write OPENAI_API_KEY --connector=openaiaccess.jsonsudo 5dive agent telegram-access get worker-1 --json
echo '{"dmPolicy":"allowlist","allowFrom":[1234567890],"groups":{}}' \
| sudo 5dive agent telegram-access set worker-1
sudo 5dive agent config worker-1 set telegram.allowed-users=1234567890,5551234 # shortcutgroups{}getUpdatessudo 5dive agent team-bot status|provision|shared|intercom|discover|refresh-listener
sudo 5dive agent team-group discover|provision|shared|status [--group=<chat_id>]
sudo 5dive agent topic get|set <name> [--thread-id=N --chat-id=N] # per-agent forum topic<channel source="plugin:telegram:telegram" chat_id="1234567890" message_id="4671" user="..." ts="...">
redirect to marketing
</channel>chat_id--reply-to-chat=<chat_id>message_id--reply-to-msg=<message_id>sudo 5dive agent send marketing \
--reply-to-chat=1234567890 --reply-to-msg=4671 \
"User @alice asked your take on the Q3 launch copy. Reply in the chat
via your own bot — do not reply back to me."reply-to-chat=<id> reply-to-msg=<id>5dive.yamlsudo 5dive up # bring up everything declared (idempotent)
sudo 5dive ps # declared agents' state
sudo 5dive down # tear down declared agents
sudo 5dive export # dump the LIVE fleet to a v2 5dive.yaml
sudo 5dive team ls
sudo 5dive team import startup --json # bundled multi-agent company templatetype, channels, telegram_token, discord_token, workdir, skills, no_skills, defer_auth, isolation, auth_profile, provider, api_key${ENV_VAR}5dive crewCREWAI_STORAGE_DIRsudo 5dive crew install <git-url> --as=<name> [--entry=<module:Crew>] [--branch=<b>]
sudo 5dive crew secret set <name> KEY=VALUE [KEY=VALUE ...]
sudo 5dive crew run <name> # also: show <name> | list | uninstall <name>DIVE-N5dive project add frog --name="Frog migration" --goal="port the parser" \
--lead-agent=worker-1 --json # prefix defaults to the upper-cased key
5dive project ls --json # key, prefix, task count, lead, status
5dive project show frog --json
5dive task add "port the lexer" --project=frog --assignee=worker-1 --json
5dive task ls --project=frog --jsonstartdoneneedblockloopheartbeattask park5dive task park DIVE-12 --reason="revisit after launch" --wake=+3d --json
5dive task unpark DIVE-12 --json # wake it early--reason--waketask needparktask need--type=access--probe=<cmd>5dive task need DIVE-9 --type=access --probe="aws s3 ls s3://prod-bucket" \
--ask="Need read access to prod-bucket" --recommend="grant s3:GetObject" --json--recommend--recommendtask escalate <id>task clear-recs --channel-proof=<chat_id> [--only=<id>]--recommendtask coordinator [--json]5dive-cli5dive org set worker-1 --manager=lead --title="Auth audit" --json
5dive org show worker-1 --json # manager + direct reports
5dive org ls --json # flat list of everyone placed
5dive org rm worker-1 --json # remove (reports re-parent to null)5dive task add "rotate the weekly metrics digest" \
--recurring="0 9 * * 1" --assignee=worker-1 --json
5dive task ls --recurring --json # list templates
sudo 5dive heartbeat on worker-1 --every=30m # default every=30m; fresh sends /clear per task
sudo 5dive heartbeat ls # enrolled agents + next wake + queued count
sudo 5dive heartbeat off worker-1task --assigneetask done5dive task loop start --title="Content pipeline" --steps='[
{"agent":"olivia","label":"Pick the topic and brief the writer","handoff":"briefs"},
{"agent":"theo","label":"Draft the post","handoff":"sends to review"},
{"gate":"approval","label":"You approve before it publishes"},
{"agent":"theo","label":"Publish and close"}
]' --json
5dive task loop ls --json # board of loop runs: per-run step progress + statustask lstask assigntask block/unblocktask rmtask needtask rm--no-verify5dive task add "migrate the auth module to the new SDK" \
--assignee=dario --verifier=marcus --max-iters=3 \
--accept="builds clean, tests pass, no public API change" --json
5dive task reject DIVE-7 --feedback="tests pass but the public signature changed" --json
# -> bounces back to the maker; escalates to a human at --max-iters.
5dive task loops --json # board of maker→verifier loops (--stuck / --escalate-stuck)
5dive task loops --runs --json # loop_runs control window: topology/stage/iteration/ceiling5dive task verifier <id> <agent> [--accept=<criteria>] [--max-iters=<n>]task done5dive task deliver <id> --pr=<url> [--result=<text>]task done--force-merge-gate--ceilingtask loops --kill <loopId>5dive loop spawn --role=maker|verifier|worker --agent=<type|name> \
--prompt="…" [--schema=<json>] [--ceiling=<tok>] [--wait[=<sec>]]
5dive loop verify --target=<id> --verifier=<agent> [--accept="…"]
5dive loop grade --target=<id> --verifier=<agent> [--accept="…"] [--threshold=0-100] [--wait]
5dive loop panel --n=<k> --lens="correctness,security" --claim="…" --quorum=<m> # jury
5dive loop map --over=<json-array> --do=<spawn-spec> [--max-concurrency=<n>] # fan-out
5dive loop until-dry --round=<spawn-spec> --stop-after=<K> --dedup-key="…" # drain a queue
5dive loop collect --handles=<id,id,…> # gather results from spawned handles
5dive loop status --handle=<loopId> # read-only single-loop drilldown
5dive loop install <slug> --onto=<agent> [--cron="…"] [--ceiling=<tok>] [--dry-run]5dive goal add5dive goal add "ship a public status page" --dry-run --json # plan + render, create NOTHING
5dive goal add "ship a public status page" --json \
[--project=<key>] [--planner=<agent>] [--max-tasks=12] [--depth-cap=5] \
[--checkpoint=6] [--ceiling=40000] [--yes]
5dive goal add --from-gate=<id> --json # materialize a plan a HUMAN answered 'approve'goal add5dive goal status <job> # queued | running | done (plan/gated/materialized) | failed--wait--plan=<json>--dry-run5dive objectivegoaltick5dive objective add "warm pool >= 1" --metric-cmd="5dive ps --warm --json | jq length" \
--target=1 --direction=up [--unit=count] [--public]
5dive objective ls | show <name> | tick [<name>] | pause <name> | rm <name>
5dive objective resume <name> [--force] # --force bypasses a preflight refusalobjective replan <name>goal add5dive objective replan warm-pool --dry-run --json # see the proposed diff, create nothing
5dive objective replan warm-pool --json \
[--max-new-per-cycle=3] [--no-progress-limit=3] [--yes] [--from-gate=<id>]--yes--dry-run5dive council5dive council convene "<question>" [--seats=a,b,c] [--mode=quick|deliberate|adversarial]
[--bench=<name>] [--class=<decisionClass>] [--timeout=120]
5dive council gate-clear <task|DIVE-N> [--mode=deliberate] [--seats=a,b,c] [--dry-run]
5dive council schedule add <name> --question="<template>" --cron="<m h dom mon dow>"
5dive council schedule ls | show <name> | rm <name> | run <name> [--dry]
5dive council roster --json # current seats, threshold + quorum, veto holder
5dive council log --limit=20 --json # sealed verdict history
5dive council verify [<receipt-digest>] # re-seal + hash-chain check, fails closed on tamperconvenegate-clearinitpromotedemoteexpelbench add/rmschedule add/rmrosterlogverifyrecordtask need5dive push--can-push--isolation=standard5dive push DIVE-42 [--branch=<b>] [--dry-run]
sudo 5dive push setup # once per box: scaffold the GitHub App config5dive company5dive company --yes --name=<n> --objective="<outcome>" --metric-cmd="<cmd>" \
--target=<n> --direction=up|downproject addobjective addgoal addmemory addmemory searchecho "$BODY" | 5dive memory add --name=hetzner-cpx-drought \
--description="cpx line delisted post price-hike; cx dry-run false-positive" \
--type=reference --store=wiki --tags=hetzner,capacity \
[--valid-to=2026-12-31] [--supersedes=<slug>] [--confidence=high] [--provenance="<src>"]
5dive memory doctor --json # hygiene: index drift, dangling [[links]], stale refs, near-dupes--store=wiki--force--limit=N --max-tokens=T --roots=a,b --store=all|mine|wiki --agent=<name>usagecostactivity5dive digest --json # standup: shipped/in-progress/gates/token burn (--7d widens)
sudo 5dive digest --send # deliver to the paired Telegram chat
sudo 5dive digest on --at=7 # opt in to daily auto-delivery (default OFF); off | status
sudo 5dive usage --json # board: top agents + top tasks, 24h (--7d)
sudo 5dive usage worker-1 --json # one agent: per-model + per-task breakdown
sudo 5dive cost --json # per-agent 24h burn vs soft/ceiling + state
sudo 5dive activity worker-1 --json # files touched, commands run, cost (--task=DIVE-N, --7d)
sudo 5dive usage loops --json # spend rolled up per loop / topology
sudo 5dive usage budget set worker-1 --daily=2000000 [--ceiling=<tok>] [--hard-stop]
sudo 5dive usage budget ls # all budgets; `budget clear worker-1` removes one
sudo 5dive supervisor # per-agent state, classification, cause, last activity
sudo 5dive supervisor --watch # live repaint (default 5s)usageaccount usagesupervisor5dive fleetsudo 5dive fleet add prod-2 --host=1.2.3.4 --key=/home/claude/.ssh/id_ed25519
5dive fleet ls
5dive fleet status --json # per-box reachability + agent counts (parallel SSH)
5dive fleet agents --json # every agent across the fleet, one view
5dive fleet send scout@prod-2 "status report please"
5dive fleet restart scout@prod-2addrmsudo 5dive doctor --json{ ok: true, data: { summary, checks } }data.summary.errors > 0--fix--repair--dry-run--category=deps|types|auth|creds|registry|shelld|channels|host|memory5dive selfcheck --json # proves gate delivery, audit log, bundle integrity,
# scorecard FOR REAL in an isolated sandbox
sudo 5dive agent stats --all --json # whole fleet: unit state, restarts, health
5dive update --check --json # is the CLI behind/stale? read-only, no root
5dive trace <id|DIVE-N> # causal timeline: goal/parent/objective/loop -> ship -> verdict
5dive models --json # live model id per alias (opus/sonnet/fable/haiku)
sudo 5dive watch # htop-style live view (interactive TTY only)selfcheck5dive self-update5dive-clireferences/commands.mdexit-codes.mdpaths.mdsudo 5dive --helpsudo 5dive <noun> --help