Getting started
Install and first run
Install Snaga Code, sign in, and run your first task. The agent runs on your machine, against your files.
Snaga Code is a coding agent that runs on your machine. It reads and edits files in the directory you start it from, runs commands there, and uses your toolchain. Nothing is uploaded to be executed somewhere else.
That is the thing to understand first, because it explains everything that
follows: why it asks permission before it does certain things, why it can undo
its own edits with git stash, and why you can drive it from your phone while
the work still happens on your computer.
Install
macOS and Linux
curl -fsSL https://snaga.ai/install.sh | bash
The installer detects your OS and architecture, downloads the matching tarball
from https://snaga.ai/dist/, verifies it against the published SHA-256 sums,
installs snaga into ~/.snaga/bin, and adds that directory to your PATH via
your shell profile. No sudo required.
Options, if you need them:
--version 1.3.0 | install a specific version instead of the latest |
--dir /usr/local/bin | install somewhere else (same as INSTALL_DIR=) |
--libc gnu | Linux only — use the dynamic glibc build instead of static musl |
--help | print the installer's own documentation |
# a specific version
curl -fsSL https://snaga.ai/install.sh | bash -s -- --version 1.3.0
# system-wide
curl -fsSL https://snaga.ai/install.sh | INSTALL_DIR=/usr/local/bin sudo -E bash
Linux users: the default build is statically linked against musl, so the same
binary runs on Ubuntu 18.04+, Debian, CentOS 7+, Alpine, Amazon Linux and others
with no glibc version constraint. Pass SNAGA_LIBC=gnu only if you specifically
want the dynamic build, which needs glibc 2.30 or newer.
Direct download
Every release publishes signed binaries for seven targets — macOS x86_64 and
ARM64, Linux x86_64 and ARM64 (both glibc and musl), and Windows x86_64 — plus a
.deb package. Each artifact ships with a cosign signature (.sig) and
certificate (.pem), and the release carries a sha256sums.txt.
Download them from the releases page.
There is no ARM64 Windows build: the cryptography library Snaga depends on ships no assembly for that target.
Verify the install
snaga --version
Sign in
snaga login
You get two choices:
- Email — Snaga sends a one-time code to your address and you paste it back.
- API token — paste a token that starts with
uarp_. Create one in account settings.
Credentials are stored in the macOS Keychain where available, and in
~/.snaga/credentials.json otherwise. To check what account a machine is using:
snaga whoami
About the model
There is no model picker. Snaga runs on the Stels platform and the platform chooses the model. There is no flag to point the CLI at a different endpoint.
This is deliberate, not a missing feature. The platform's choice moves as models improve, and a pinned model name silently diverges from that the moment it does. Streaming, tool calling, and failover to a backup model are handled for you; when a failover happens, the session tells you it happened without naming what it switched to.
Your first session
Change into a project directory and start it:
cd ~/projects/my-app
snaga
You get an interactive prompt. Type what you want in plain language:
> what does the authentication middleware do?
The agent reads the files it needs and answers. Ask it to change something and it edits the files directly.
Start in Plan mode if you are nervous
The first thing worth knowing is that you can stop the agent from writing anything at all:
> /mode plan
Plan mode is read-only. The agent can read files, search the codebase, and tell you what it would do — but every tool that writes a file or runs a command is refused. It is the right way to get comfortable with an agent in a repository you care about.
Switch back when you are ready:
> /mode act
Undo
Before every destructive action, Snaga snapshots your working tree with
git stash. To roll the last one back:
> /rewind
Up to 20 checkpoints are kept per session. This works without you approving each individual write, which is the point — you are not asked to sign off on every edit, but nothing is unrecoverable.
A single task without the prompt
For scripting, or when you know exactly what you want:
snaga -p "add a test for the empty-list case in cart.rs"
Add --output-format json for one result object, or --output-format stream-json
for one JSON event per line as the turn runs. With either, stdout carries
nothing but the machine-readable payload — banners, notices and progress all go
to stderr, so you can pipe it straight into another tool.
snaga -p --output-format json "list the public API of this crate" | jq .
Picking a session back up
snaga --continue # reopen the most recent session here
snaga sessions list # see the session ids
snaga --resume <id> # reopen a specific one
A resumed session keeps its transcript: new turns append to the same session rather than starting a new one.
Where things live
| Path | What |
|---|---|
~/.snaga/bin/snaga | the binary |
~/.snaga/credentials.json | saved credentials (when not in the Keychain) |
.snaga/sessions/ | transcripts and event logs, per project |
.snaga/tools/ | tools the agent has written for itself |
SNAGA.md | project memory — notes the agent keeps about your repo |
Everything under .snaga/ is per-project and lives in the directory you started
the agent from.
Keeping it current
snaga update
Next
- Working with the agent — modes, slash commands, memory
- Permissions and safety — what the agent asks before doing, and how to change that
- Control from your phone — run tasks on this machine from the web or a mobile app