Command reference
Run 0b --help for everything; the ones you'll use most:
Last updated
0b setup: sign in and add 0bridge to every AI tool0b update: install the newest0bwith the package manager you installed it with, and restart its background jobs (--checkonly looks)0b status: is this machine and this repo set up? A checklist with the command that fixes each item. Ask your agent to "set up this repo" and it runs this, does the safe fixes and tells you the rest0b connect <name or address>: connect any service (--label,--spec,--api). In your terminal it lists the ways in to pick from: its MCP server (sign in in the browser), its API (you type the key; it stays with 0bridge) or its CLI (wrangler, gh: signed in to a profile on this machine). 0bridge's own connector is picked first, then the service's own MCP server; other people's servers are shown only when the service has nothing of its own.0b key <service>adds an API's key0b cloud: your connections0b connect --team: connect the connectors your team uses that you don't have yet, one by one, each with your own account.0b teamshows your teams' connectors, skills and instructions and brings the skills (as<team>--<skill>) and instructions to this machine and its AI tools0b project link: make this repo a project and point its tools at it0b project use <service>: limit a connection to this project0b vault unlock: bring your vault key (it seals end-to-end history) to a new machine0b exec -- <cmd>: run a command with this repo's CLI accounts (CLI accounts)0b history on,0b history search <words>,0b history hooks on|off|status: history, and uploading as each turn ends0b resume <0b:id> [--tool claude|codex|gemini|cursor] [--print]: continue a session from any tool (Resume anywhere)0b context push|pull|status,0b context profile,0b memory add|search|rm: your profile, instructions, skills and memory (Profile, memory and skills)0b agent on|off|status,0b agent allow|deny <path>: let your AI apps start and steer coding agents on this machine (Your agents from your phone)0b settings,0b settings off agent-control|chat-events|chat-history: what your AI apps may do with the account, and turning agent control, webhook events in chat apps or history in chat apps off; turning one on is on the dashboard, with your passkey (Claude and ChatGPT).0b settings on|off chat-tool-searchgives chat apps on an address ending in?tools=alla fixed tool list (ChatGPT)0b apply --only <tool> --tool-search all|code: that tool lists every 0bridge tool one by one (?tools=all), or the four that find and run the rest (code, the default) (ChatGPT)0b agent supervisor openclaw --agent <name> [--label <l>] [--host-task <bin>] [--openclaw <bin>] [--herdr <bin>],0b agent supervisor status|off: let your AI apps hand tasks to the OpenClaw supervisor on this machine and answer its workers' questions; set only here, never from 0bridge (Dots and your dev host)0b agent supervisor ledger [--label <l>] [--host-task <path>]: instead, put what you tell your AI apps for this machine into its work ledger (host-task) asdev_request,user_followupanduser_decision, for the team there to take up (Ledger mode). Both save the programs' full paths, so the background service finds them0b host request "<text>" [--project p] [--repo r] [--priority P0-P3] [--machine m]: from any terminal, hand work to your dev machine's work ledger; prints its request id (hr_…), or its task id once it has one. Also0b host status [T-012|hr_…],0b host followup <T-012|hr_…> "<text>",0b host answer <question> --task T-012 "<text>" [--choice A](the question's task too, so an answer can't land on another question),0b host questionsand0b host updates [--cursor c] [--wait s] [--kinds question,completed,failed,progress,notice], whose last line is the next cursor.-as the text reads stdin,--jsonis for scripts, and a refusal exits non-zero (From a terminal)0b sessions [--state needs-you] [--machine m] [--repo r],0b sessions watch|on|off: what your coding sessions are doing now, on every machine and in the cloud (Session board)0b login --qr <file.png>,0b login --email <you>: print the sign-in link first, save it as a QR image, and ask for approval on your dashboard (Approvals and sign-in)0b drive ls [folder],0b drive clone <folder> [dir],0b drive sync|status|unlink [dir],0b drive email <folder>: your Drive and your teams' (--workspace <team>), and a Drive folder kept in sync with a folder on this computer (more below; Drive)0b webhook add <name> [--preset channeltalk|github|generic] [--route run|listen] [--notify]: an address other services send events to. It asks what each event does: run a command on this machine, or nothing runs and a session listens for it (Triggers and webhooks)0b webhook listen <name>: wait for the webhook's next event, print it as JSON and end. Run it in the background from a session, handle the event, listen again; an event that came meanwhile comes at once (Listen)0b webhook run <name> [--debounce 30] [--timeout 300] [--machine <m>] -- <command…>: run a command here for each event, with the event's JSON on stdin; the command stays on this machine and is never sent to 0bridge.--offstops it;0b webhook listen on|offkeeps this machine connected for runs (runturns it on)0b webhook set <name> --route run|listen(or--notify),0b webhook list|rm|test|rotate <name>,0b webhook events [name] [--follow]: change what a webhook does, and see what came in0b usage [--days 30] [--by tool|model|repo|day],0b usage on|off: tokens and an estimated cost; counts only (Usage)0b profile add <name> wrangler gh,0b profile use <name>: which CLI accounts this repo uses. A wrangler that's only in the repo'snode_modulesworks too. Over SSH, paste the localhost address the browser ends on after you approve, and 0b passes it to the login on this machine0b background on: sync history, files and context every 15 minutes (a LaunchAgent on macOS, a systemd user timer on Linux, Task Scheduler on Windows; a crontab line where there is no systemd)0b feedback [message] [--kind problem|idea|other] [--include-logs]: send the 0bridge team a report; it shows you the whole report first (Send feedback)
Drive folders on your computer#
0b drive clone tax-invoices ~/projects/tax-invoices makes a local folder that syncs both ways with the tax-invoices folder of your Drive (--workspace Acme for a team's Drive; "" for all of it). It syncs when 0b drive sync runs in the folder, and only then: run it right before you (or an agent) read or edit the folder, and right after writing, so the next machine gets the change. Nothing syncs Drive folders on a timer. 0b drive status shows what changed here, what changed in Drive, and conflict copies waiting; 0b drive unlink stops syncing and leaves the files in both places. 0b drive ls [folder] lists a Drive folder with its README's status line, its AGENTS.md, skills and email address, and which local folders sync with it.
- Conflicts: a file changed here and in Drive since the last sync keeps this computer's version, which goes up, and Drive's is saved next to it as
<name>.0bridge-<who>-v<n>.<ext>. Merge the two and delete the copy; copies never go up. A file deleted on one side and changed on the other comes back. - What stays here:
.git/,node_modules/,__pycache__/,.venv/,.DS_Store, files over 25 MB, symlinks, and whatever the folder's.driveignorelists (.gitignoresyntax without!). In a git repo, new files git ignores stay here too. Sync never runs a git command that changes anything. - What never comes down: anything into
.git(in any spelling), outside the folder, or under a name this disk would read as something else (:or\, a trailing dot or space,CONand the other device names; on Windows also* ? " < > |). Sync says which ones it skipped. Files come down without the executable bit, except scripts in a skill (.agents/skills/). - Skills and instructions: in every folder with them,
.claude/skills/<name>links to.agents/skills/<name>andCLAUDE.mdlinks toAGENTS.md, so Claude Code in that folder reads them. The links are made here and never sent up (Windows without Developer Mode makes none). - Proposals: in a team, a change to
AGENTS.md,CLAUDE.md,.agents/,.claude/or another instruction path from a member who isn't an owner or admin waits as a proposal in the dashboard (Drive › Proposals). Sync says so once and doesn't propose it again until the file changes here.
0b drive email <folder> prints the folder's email address: mail from you (or, in a team, its members) that passes our DKIM check lands in <folder>/<date> <subject>/, with a receipt. Addresses are made, rotated and turned off in the dashboard (Drive › Email).
Several Claude Code accounts#
A second Claude Code account run with CLAUDE_CONFIG_DIR=~/.claude-b gets what ~/.claude gets: 0b apply writes 0bridge, your MCP servers, skills and instructions there too, and 0b project link adds the project endpoint to that account's settings. Any ~/.claude-* folder Claude Code has used (it has a .claude.json) counts, as does CLAUDE_CONFIG_DIR itself. A second Codex home (~/.codex-*) gets your MCP servers, skills and instructions the same way.
0b use manages them as profiles:
0b use: each account (folder), who it's signed in as, and which one starts here0b use add work: makes~/.claude-work(--tool codex:~/.codex-work;--dirfor another folder) and prints the sign-in command to run once0b use work: this repo (and its other clones) starts Claude Code aswork;--globaleverywhere else too;eval "$(0b use work --shell)"just this shell, which wins over both0b use shims:claudeandcodexstand-ins in~/.0bridge/binthat start the account picked for the repo you're in (0b exec -- claudedoes the same without them)
A running session keeps its account; 0b resume <0b:id> continues it under another. History reads every profile and tags its sessions with the profile's name. On a Mac, Claude Code keeps its sign-in in the keychain: check 0b use shows each profile's own email before you rely on it.
Several 0bridge accounts#
A company's 0bridge account and your own can both be signed in. 0b login while signed in adds another account; 0b account lists them, 0b account use <email> picks the default (the one every AI tool's 0bridge entry uses) and 0b logout <email> signs one out. A repo linked with 0b project link --account <email> belongs to that account: its AI tools use that account's project, and repo commands run inside it (connect, exec, project, …) use that account on their own. --account <email> works on any command.
In the dashboard, the account menu lists the accounts signed in in this browser, switches between them and adds another. The consent screen Claude and ChatGPT open, and the 0b login approval screen, show which account you're using and switch right there. An app that already has your consent goes straight to the account that's active in the browser, so switch first to connect it to another.
Skills from a folder#
0b skill add <folder> adds a skill you wrote or downloaded (a folder with SKILL.md, whose front matter has a name and a description) to your synced skills; 0b apply puts it in every tool. It refuses a folder without them, a repo (.git, node_modules) or one over 20 MB. In Cursor, a skill that's already in Claude Code's or Codex's folder isn't copied to ~/.cursor/skills too, since Cursor reads those folders and would list it twice; with neither tool, Cursor gets its own copy.