On this page

#Workspace and account

CommandPurpose
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 logoutRevoke the saved token on Vatio and remove it from this machine
vatio doctorShow Node version, config location, workspace, and token presence
vatio versionShow 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 / --neverWhether a coding agent should offer to send the session now / stop coding agents from offering
vatio config show / get KEY / set KEY VALUE / unset KEYManage 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.

FlagWhat it does
--save FILEWrite exactly what would be sent to FILE, and send nothing
--listList the recent Claude Code sessions for this project, marking the ones already sent (sent #N, when)
--id IDSend that session instead (a prefix of the id is enough)
--yesSend without asking; for a coding agent that already asked you
--should-askPrint yes or no and why: whether a coding agent should offer to send the session now. Sends nothing
--neverStop 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.

Last updated:

Latest CLI version: 0.79.0 · Changelog · The whole contract as Markdown: /docs/docs.md · or vatio docs