Overview
The Every CLI (@everyai/cli) gives you and your coding agents command-line access to your Every workspace — people, companies, invoices, proposals, deals, pipeline, payments, and more. Install it once, sign in once, and the same every command works everywhere a shell runs: Claude Code, Codex, Cursor, a plain terminal, or a CI job.
Under the hood the CLI is a client of Every’s MCP server, so it discovers the current tool surface automatically. Keep the CLI current for new client-side behavior such as approval handling.
If you’d rather use Every inside one assistant, you can add the MCP server to it directly — see Connect to Claude & ChatGPT. The CLI is the portable alternative: one install and one login cover every agent and machine context, including CI, where per-assistant MCP config isn’t practical.
Install and sign in
Requires Node.js 18 or newer.1
Install globally
every (primary) and everyai (alias).2
Sign in
3
Confirm who you are
Headless / CI: set the
EVERY_TOKEN environment variable to a valid access token to skip the browser flow entirely. every login requires an interactive terminal and exits with code 3 without one, so it never hangs a script. every signup (below) does not need a terminal.Sign up for Every from the CLI
New to Every?every signup creates your account, or signs you in if you already have one, in one browser step. A coding agent can run it for you: it needs no interactive terminal and never waits for Enter. Requires CLI 0.8.0 or newer.
1
Authorize in the browser
--timeout <seconds> to change it). Sign in or create your account on Every’s own page. The CLI never sees your password or any code.2
Confirm your business name
If the account is new, the CLI reports Only
needs_profile with suggested values for your organization name, description and public links, inferred from your mailbox and the web. Suggestions are unverified: confirm or change them.--org-name is required. The account is ready as soon as this returns; Business DNA and other setup continue in the background.3
Check status any time
ready for an account that is good to go.error.code: "signup_incomplete" and the CLI names the command that finishes it. If the browser step is denied or times out, the command exits 3; run every signup again. every login --create-account still works as an alias for every signup.
Output contract
Every command supports--json. In JSON mode, stdout is exactly one JSON document and nothing else, so it’s safe to pipe and parse:
The
env field on every JSON response tells you whether the command targeted production, staging, or a custom server — a quick way to confirm blast radius.
Safety model
The CLI classifies every tool and gates it locally, then Every applies its server-side approval policy:- Reads run freely.
- Writes (create/update) require
--yes. - Destructive or external-impact actions — sending invoices/proposals, deletes, voids, recording payments — require both
--yesand--allow-destructive. --read-only(or theEVERY_READ_ONLY=1environment variable) blocks anything that isn’t a read, for safe automation.
4 and names the exact flag needed — it never silently prompts and hangs.
How MCP approvals work
Review the exact retry, expiry, and single-use rules
Commands
every invoice create resolves the client by name — if the name is ambiguous it returns exit code 6 with the candidate list (each client_id and name) so a retry with --client-id is mechanical.
