Jobs from your terminal
Run Operator’s jobs and plans from your shell, scripts, CI or own agent, with the same login, rights and approvals as the app.
Get started
Three commands to start
All you need is Node 20 or later, with no install step, config file or keys to paste.
01Run it with npx
npx fetches the latest operator command and runs it. Install it globally if you’d rather type less.
Terminal$npx @allocator-one/operator02Log in once
Your browser opens on Infra One. Sign in as usual and every shell on this machine is logged in.
Terminal$operator login03Describe the outcome you want
Describe the outcome. Operator reads your record, asks for approval before it changes anything, and checks the result.
Terminal$operator run "List Fund II LPs with overdue tasks" --watch
Command reference
All commands on one page
Every command takes --json for scripts and runs as you, with your rights.
Jobs
One outcome, from ask to verified result
- operator run "<outcome>" [--budget <usd>] [--skill /name] [--watch]
- Start a job, optionally with one of your skills
- operator jobs [--status running|waiting|done] [--mine]
- What’s running, and what needs you
- operator job <id>
- Status, progress, budget, effects and checks
- operator watch <id>
- Follow a job until it finishes or needs a person
- operator steer <id> "<instruction>"
- Correct a job while it runs
- operator cancel <id>
- Stop a job; nothing unapproved is applied
Plans
Chains of steps that run for days or weeks
- operator plan create --file <plan.yaml> [--idempotency-key <key>]
- Create a plan, held until you release it
- operator plan show <id>
- Every step, who runs it and what it’s waiting for
- operator plan edit <id> --file <ops.yaml>
- Change steps or budgets; edited steps go back on hold
- operator plan release <id> [--spend-budget-cents <n>] [--collaborator <who>]
- Start it, within a budget
- operator plan hold <id>
- Pause every step
Gates
Sign-offs that steps wait for
- operator gate satisfy <step> <gate>
- Tick a sign-off; the step starts if nothing else holds it
- operator gate unsatisfy <step> <gate>
- Take a sign-off back
Tools & skills
What Operator can do in your organization
- operator tools [--domain <name>]
- Every tool Operator can use, by domain
- operator tools search "<query>"
- Find the right tool
- operator tool <id>
- What it reads or changes, and its inputs
- operator skills
- Your organization’s skills assigned to Operator
Account
One login for every shell
- operator login [--no-browser]
- Sign in through your browser
- operator whoami
- Who you are, which organization, which host
- operator logout
- Revoke this machine’s login
Agents
Operator for any MCP client
- operator mcp
- Serve Operator’s tools to your agent over MCP
Every command takes --json
Exit 0 done · 1 refused · 2 usage · 3 networkMCP
Operator for your agent
Add Operator’s MCP server to any MCP client, and your agent gets the CLI’s commands under your login and hands you the link when a change needs approval.
{
"mcpServers": {
"operator": {
"command": "npx",
"args": ["-y", "@allocator-one/operator", "mcp"]
}
}
}11 tools your agent gets
- runStart a job
- jobs_listWhat’s running and what needs you
- job_showA job’s progress, effects and checks
- plan_createDraft a plan, held until released
- plan_showEvery step and what it waits for
- plan_editChange steps or budgets
- plan_releaseStart a plan within a budget
- plan_holdPause every step
- gate_setTick or untick a sign-off
- tools_searchFind the right tool
- skills_listYour organization’s skills
Built for scripts
Operator behaves like the tools in your shell, so it fits into scripts, cron jobs and CI without glue.
Same rules as the app
The CLI and the MCP server enforce everything the app enforces.
- Every command runs with your access
- Every command runs as you and checks your access in that moment, exactly as the app does. Your agent gets no more than you have.
- One organization per token
- A token belongs to one organization. Nothing you run can reach another organization’s records, plans or jobs.
- Approval stays in the app
- The terminal and your agent start, follow, steer and stop work. Approving a change happens in the app, where you see exactly what will change.
- Budgets and off switches apply
- Plans run inside the budget you release them with and your organization’s monthly cap. Pausing Operator in the app pauses it here too.
- Every command has a JSON form
- Human-readable by default, --json for scripts. Exit codes tell a usage error from a refusal from a network problem.
- MCP tools match the CLI commands
- The MCP tools are the CLI’s commands with typed inputs. Anything you can do with the operator command, your agent can do too.
More on Operator
Four views of Operator
Each page covers one part of how Operator works.
Plans
Plans across Operator and your team
Chains of work that run for days or weeks, across Operator and your team, with the waits between them.
See plansApprovals
Every write waits for your approval
Every write waits for an exact approval, and every change is checked after it lands.
See approvalsTools
402 tools across your fund
Operator can use every tool on your record, from CRM search to capital calls.
See the tools
Common questions
Only Node 20 or later. npx @allocator-one/operator fetches the latest version each time; install it globally if you prefer a plain operator command.
Yes. Create a token for one organization with the scopes the job needs, set it in your CI’s secrets, and run the same commands headless.
No. An agent, like the CLI, can start, follow and stop work. Approving a change always happens in the app, by a person who can see it.
Any MCP client. Point it at operator mcp and it gets Operator’s tools under your login.
Yes. It’s one package: teams who already use harness for their plans keep that name, and operator works alongside it with the same login.
The CLI prints an estimate before a plan starts and the cost when a job finishes. The W-8BEN job at the top of this page took 2m 14s and cost $0.41.
Run your first job
Run the CLI with npx, log in once and start a job from your terminal.