Camy in your terminal.
Triage the inbox, draft the replies, chase the invoice, hold the calendar,
review the diff, run the tests, publish the site, schedule the rest.
One binary, in every shell, pipe, and cron job you already have.
Install · Quick start · Docs · Reference · Scripting · Security
Ask. It reads, it answers, and it stops at the amber box until you say y. Real output, sample data.
# macOS and Linux, arm64 and amd64. No sudo.
curl -fsSL https://camy.ai/cli/install.sh | sh
# or, with Homebrew
brew tap trycamy/tap && brew install camy
# or, with npm
npm install -g @camy/cliNothing unpacks until its checksum matches. Installation
covers manual downloads, pinning a version,
camy update, and uninstalling.
The installer, as it runs.
camy auth login # browser handoff; a scoped, expiring key lands in your keychain
camy status # what is happening right now
camy chat "what needs me before noon?" # one turn, streamed, with every tool call
git diff | camy chat "review this" # stdin is context, stdout is the reply
camy approvals # what is waiting on you
camy inbox --needs-you # the rows that need a decision
camy vm exec -- pytest -q # your cloud workspace; the exit code is mirroredNo --api-key flag exists. Sign in once; the key lives in your keychain, and
scripts read CAMY_API_KEY. Bare camy opens the full-screen app.
Quick start walks the whole minute.
camy status: what needs you, and the command that opens it.
|
Chat Ask; watch every tool call stream. Anything risky stops for you. -c continues, stdin is context.
|
Approvals The pauses. Approve, deny, or answer from anywhere; --wait streams the resumed turn.
|
Inbox A verdict on every message: needs you, handled, filed. Reply, undo, restore. A sweep dial from off to auto. |
|
Workspace Your cloud computer. vm exec hands you the exit code, ssh-style; vm shell is a live PTY.
|
Local bridge The same agent in the project you are standing in. One card per action; secrets and destructive commands refused. |
Automation Schedules, durable jobs, tasks, capture, webhooks. The same binary, in cron or CI. |
|
Canvas What a chat built, on disk: files, snapshots, published sites. |
Scripts--json everywhere, --jq and --template built in, NDJSON streams, frozen exit codes.
|
Terminal Truecolor to plain. NO_COLOR, --accessible, hyperlinks and inline images where supported.
|
camy inbox: a verdict on every row.
Anything risky pauses for a human. The pause is the safety model, not a setting.
- It fails closed. Headless, with
--no-input,--json, or no terminal, the approval stays pending and the exit is4with its id. Timeouts never approve and never deny. - It reads
/dev/tty, never stdin. Piped input cannot answer a prompt. There is no yes-to-everything flag. - The local bridge asks per action. Reads run; every write and every command shows the exact command or diff first.
.env,~/.ssh, keys, credential stores,sudo, andrm -rfon root-like targets are refused, whatever anyone approved.
Approvals · The local bridge · SECURITY.md
stdout is data. stderr is everything else. --json on any command, --jq
and --template built in, streams as NDJSON. Exit codes, frozen for 1.x:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
255 |
|---|---|---|---|---|---|---|---|---|---|
| ok | runtime | usage | auth | approval pending | rate limited | plan | unavailable | approval denied | vm exec itself failed |
camy inbox --needs-you --json --jq '.[].subject'
camy api GET /v1/jobs --jq '.[].id'
camy chat --no-input "post the nightly summary" # exit 4: waiting on you, not a failure
Every guide is in docs; every command and flag is in the
reference, generated from the binary. camy docs
carries the topics offline, and every command answers --help.
Support · Security · Changelog · Conduct · Third-party notices · License
© 2026 CamyAI, Inc. All rights reserved.