#Workspace and account
| Command | Purpose |
|---|---|
vatio init [SLUG] [--name NAME] | Create or use the remote workspace, write a starter manifest in the current directory, and add a Vatio section to its AGENTS.md |
vatio login [--base-url URL] | Sign this machine in from the browser — email link, Google or GitHub; creates the account if there is none |
vatio logout | Revoke the saved token on Vatio and remove it from this machine |
vatio doctor | Show Node version, config location, workspace, and token presence |
vatio version | Show CLI and Node versions |
vatio docs [--save [PATH]] | Fetch the docs; print them or save to vatio-docs.md / PATH |
vatio feedback "TEXT" | Tell the Vatio team what got in the way; also reads TEXT from stdin |
vatio share-session ["FEEDBACK"] [--yes] [--save FILE] [--list] [--id ID] | Send this project's Claude Code session to the Vatio team, after showing what goes and asking; feedback is optional |
vatio share-session --should-ask / --never | Whether a coding agent should offer to send the session now / stop coding agents from offering |
vatio config show / get KEY / set KEY VALUE / unset KEY | Manage local base_url and token settings |
init writes vatio.yml in the current directory and asks for no account:
you can write the whole agent without signing up. Identity is what vatio push
needs, because it is the first thing that makes something run on a server, and
there the CLI opens the browser on a sign-in page for this terminal and prints
the terminal's code. Sign in with your email (Vatio mails a link that works on
any device) or with Google or GitHub, check the page shows the same code, and
confirm. On a machine with no browser the CLI prints the link instead; a
coding agent running it shows that link to you. If the wait is cut off,
running the same command again picks up the same sign-in page instead of
starting over. Every other command finds the nearest
vatio.yml at or above the current directory and reads workspace from it —
there is no --workspace flag and no VATIO_WORKSPACE override.
Reach for doctor before anything else when a command cannot find the
workspace or the token: it prints all four things that decide that, and prints
no secrets, so it is the safe one to paste into an issue.
#Feedback
vatio feedback is for coding agents as much as for people: when the docs or
an error left you guessing, say what you were trying to do and what got in the
way, in a sentence or two. It reaches the Vatio team with the commands this
session ran before it, so there is no need to repeat them. It works before
vatio login, and with telemetry turned off.
vatio feedback "push said the tool was invalid but not which field, so I tried three things"
#Share a session
When a sentence is not enough, vatio share-session sends the whole Claude
Code session to the Vatio team: what you asked, what your coding agent ran and
what it was shown. It takes the session the coding agent running it is in
(Claude Code tells it which, in CLAUDE_CODE_SESSION_ID), or else the most
recent Claude Code session for this directory or one above it.
The session goes on its own. Feedback in your words rides along if you have some — what got in the way, what you expected — and at a terminal it asks for it after you say yes (Enter skips it):
vatio share-session
vatio share-session "I expected push to tell me which tool field was wrong"
Before anything leaves your machine it drops images and Claude Code's own
bookkeeping, replaces anything that looks like a key, token, password or
private key with [REDACTED], email addresses and phone numbers written with
a country code (+56 9 …) with [EMAIL] and [PHONE], and your home
directory with ~, then shows which session it is, how many messages, from
when to when and how large, and asks. Names, and numbers without a +, are
left as they are: --save shows what goes. Off a terminal it sends only with
--yes: a coding agent passes it after asking the person it works for.
A coding agent's own permission checks can refuse to send it — Claude Code's
auto mode may treat it as sending data out. Run it yourself then, with the
session id it showed (vatio share-session --id ID --yes); --list marks each
session already sent with its number, so your coding agent can check that it
went.
| Flag | What it does |
|---|---|
--save FILE | Write exactly what would be sent to FILE, and send nothing |
--list | List the recent Claude Code sessions for this project, marking the ones already sent (sent #N, when) |
--id ID | Send that session instead (a prefix of the id is enough) |
--yes | Send without asking; for a coding agent that already asked you |
--should-ask | Print yes or no and why: whether a coding agent should offer to send the session now. Sends nothing |
--never | Stop coding agents from offering. Sends nothing |
It needs you signed in, with the same browser sign-in as the first
vatio push. Only the Vatio team reads it, to see where developers and their
coding agents get stuck, through an internal tool that logs every read. It is
deleted 30 days after it arrives — the CLI prints the date when it sends —
and what stays is who sent one, when, and your feedback. To have it deleted
sooner, write to dpo@vatio.ai. Claude Code sessions only, for now; from another
coding agent, vatio feedback says it in a sentence. In Claude Code the
vatio-share-session skill runs it for you:
/vatio-share-session.
#When your coding agent offers it
With the Vatio skills, Claude Code offers to send the session when it finishes
building or improving an agent, with three answers: send it, not now, or
don't ask again. Before offering it runs vatio share-session --should-ask,
which says no when you chose don't ask again (--never), when it already
offered in this session or in the last week, outside Claude Code, in CI, and
with telemetry turned off. The answer is kept in ~/.vatio/share-session.json;
delete it to be offered again. vatio share-session still sends a session
whenever you run it.
#Telemetry
So the Vatio team can see where coding agents get stuck, the CLI reports how
each command ended — its name (push, kb write), the exit code and, when it
failed, the error it printed — and sends the same name with
each API request. Both carry the CLI version, which coding agent is running it
(from the environment it sets, such as CLAUDECODE) and a random session id
that groups the commands run in one directory until 30 minutes pass without
one.
The first command on a machine says so on stderr, once, before anything is
sent. Never sent: arguments, file contents, secret values, or anything a chat said.
Set VATIO_TELEMETRY=0 (or DO_NOT_TRACK=1) to turn it off; requests then
carry only the CLI version. VATIO_AGENT=NAME names a coding agent the CLI
does not recognize.
#Issues
Report problems on the public repositories; see Troubleshooting for which one and what to include.