The guide and web manual describe current source. Each release download includes its matching manual. An updated executable takes effect on the next launch; open sessions keep their original code.
Work on a project
Give a model an objective, constraints and project context. Persistent goals carry implementation, testing and follow-through across turns; steering and saved sessions keep that work under your direction. Connect agents across machines and rooms to divide work and exchange findings while each runs tools in its own environment.
Start snajpagent and describe the task. Sessions start in your
home directory; the model manages its working directory. Tools read and
edit files and run commands across the filesystem with your OS
permissions, without per-call approval. Tool details are hidden at the
default verbosity; show them when useful. Read replies and scroll back
normally.
You can type while work continues. Send a correction to change the current task, or queue a follow-up to run afterward. Commands already running stay alive; the model can let them finish or stop them. A submitted correction stays visible in rollout even when the next prompt is blocked.
Foreground slash commands finish before another command runs. Controls
needing a safe boundary acknowledge it. The prompt shows context usage.
/history N shows retained turns; /cat PATH opens
a file in your pager. Current-source keyboard command reports, including
/status and /history, use $PAGER
for scrolling and search. /ro QUERY queues read-only inspection,
and /compact summarizes context while preserving the local log.
Resume continues unfinished work without a new prompt. For scripts, use
snajpagent -e --resume SESSION_ID </dev/null. Calls with
uncertain outcomes retain their original commands for inspection.
Current Linux source starts detachable sessions on ANSI terminals at
least 20 columns wide. Use
/s d to return to the shell while work continues, then
snajpagent --attach SESSION_ID to reconnect with the retained
draft. Without an ID, attach lists running sessions. Current source accepts
-N NAME to name a new session and select it on attach or resume;
/session name NAME names an existing session. --resume attaches to a running owner and restarts a stored session. Session lists show
attached, detached or stored with prompts and IRC nick@endpoint (s/ server, c/ client).
snajpagent -l lists all attached sessions, then all detached
sessions, then the 10 most recent stored sessions, newest activity first
in each group. Use -l N to change the stored count, or
-l 0 for running sessions only.
Resume retains saved settings unless overridden. Terminal file transfers
and local audio stop on disconnect; queued downloads keep their saved state.
Restart microphone capture explicitly after reconnecting.
Set a goal when you want work to continue beyond the next reply. Exit to
stop the program and resume the saved session later. An active goal
continues on resume; pause it before exiting if you want it to stay paused.
/goal resume continues it; /goal clear stops
automatic goal continuation and retains its history.
Resume shows retained public history and continues unfinished work from saved
inputs and tool results, without automatically repeating uncertain commands.
For longer work, have the model keep findings, decisions and corrections
in project files, with pointers in AGENTS.md. Keep the notes
current so later tasks can use what was learned and pick up unfinished work.
Stage images or files with /attach PATH and submit them with
your prompt. Current source provides a workstation wrapper:
snajpagent remote ssh -t target snajpagent.
For stock Mosh use snajpagent remote mosh target snajpagent:
a checked, slower screen-state mode keeps transfer frames out of scrollback.
Detach with /session detach and reconnect through
snajpagent remote ssh -t target snajpagent --attach SESSION_ID.
Omit the ID to choose a running session.
Use /receive to select a workstation file, then review
/attachments before submitting. Use /send PATH
to save a remote file under ~/Downloads. Transfers preserve the conversation. Detached exports stay queued: fast-stream
reattachment delivers them automatically; on Mosh use /send PATH.
Receipts identify local paths. The trzsz-go wrapper remains an alternative
for explicit transfers (brew install trzsz-go on macOS,
then trzsz --dragfile ssh target). See the manual's
Terminal file transfers section.
/dictate inserts speech into your draft. /voice on
starts a voice conversation; /voice mute pauses the microphone
and /voice off stops voice. Use your selected Codex subscription,
codex-lb, or compatible BYOK provider.
Continue speaking and submit another request while coding work runs;
inspect work status or files, steer the active turn, or queue a separate task.
The model handles file changes and can send speech into the open conversation
with voice_output. Rollout labels microphone transcripts and
voice-model replies separately.
Spoken UI commands use the keyboard's command path and preserve the typed draft.
A codex-lb gateway must use its /backend-api/codex base for voice;
a bare /v1 base does not select native voice.
Voice follows the configured HTTP/HTTPS route; use HTTPS or a secure tunnel
outside a trusted network. See the manual for settings and controls.
Coordinate distributed work
People and agents connect through built-in IRC servers and clients.
Each instance can be present in several rooms through separate endpoints;
/connect ENDPOINT joins that endpoint's advertised room.
Empty Tab cycles through rollout and each connected room. Enter sends to
the selected room in chat and directs your own agent in rollout.
Working transcripts stay in rollout; models choose which messages to send to the room.
Start a room and connect another instance in a separate terminal:
snajpagent -s
snajpagent -c
These defaults connect on localhost. Give agents tasks in the room; they can exchange messages and report results. How you divide the work is up to you.
Agents can use project files and Git for code and handoff notes; arrange access to those files separately. IRC has no authentication or TLS. Use localhost, a trusted network, or a secure tunnel. Tools run with your local permissions, without a command-approval sandbox.
Run it where the work is
Download 0.99.8c for Linux, macOS, Windows or BSD, or build from source. The downloads page lists architectures and requirements.
A normal build needs C11/POSIX with pthreads, GNU make, libcurl and Jansson.
./configure probes the compiler and the optional modalities and
reports what it enabled and disabled:
git clone https://github.com/snajpa/snajpagent.git
cd snajpagent
./configure
make
sudo make install
On a fresh launch without configuration or credentials, interactive setup helps you choose a provider and supported model. The README covers setup and platform-specific builds; the manual covers the complete controls and configuration.
Supported providers
Supported connections: OpenAI, ChatGPT/Codex subscription, OpenRouter, and custom providers with an OpenAI-compatible Responses API.
Refresh available models with /model cache. The model's
select_model tool, enabled with [agent] allow_model_change=true
(default off), chooses from the current cache and can refresh
it before selecting a newly listed model.
- OpenAI GPT-5+: recommended; the only model family thoroughly tested and known to work reliably with snajpagent.
- DeepSeek: an open-model option. V4 Pro supports direct Responses streaming with reasoning continuity across tool calls and resume in current source.
- Anthropic: not supported. The project's assessment is that alignment problems make its models unsuitable for long-horizon autonomous work without oversight.
- Other models: use at your own risk. GLM is discouraged, as are open models trained heavily on Anthropic rollouts.