Introduction

agentty is a native C++26 terminal coding agent — a drop-in alternative to claude-code that ships as a single 8.8 MB static binary.

It signs in with your existing Claude Pro/Max OAuth subscription (or an ANTHROPIC_API_KEY), runs every shell call in a sandbox by default, and can drive an agent on an air-gapped host through a single SSH command. No Node, no Python, no Electron, no npm install.

Who it's for

  • You want a single-binary Claude client with zero runtime dependencies.
  • You care about cold-start speed and a TUI that never pauses for GC.
  • You need to run an agent on an air-gapped host through an SSH tunnel.
  • You want shell calls sandboxed by default, not as an afterthought.

TipAlready convinced? Jump straight to Installation or the Quick Start.

Design principles

  • Native speed. C++26, statically linked, posix_spawn everywhere. Spawns in microseconds, no GC pauses mid-stream.
  • One static binary. 8.8 MB. curl | chmod +x | run. No version drift between machines.
  • Sandbox by default. Every shell/build runs inside bwrap (Linux) / sandbox-exec (macOS). ~/.ssh, /etc, other projects stay read-only.
  • One-command SSH air-gap. Relay bytes over SOCKS5-over-SSH; TLS pins end-to-end on the real upstreams.
  • Reads like a single function. The reducer is one std::visit over a closed event sum; the permission matrix is a constexpr with static_asserts — change a policy cell and the build breaks.

How it works, in one paragraph

agentty is a pure-functional update loop: (Model, Msg) → (Model, Cmd). The view is a single function Model → Element, rendered by maya, a sister TUI engine. The Anthropic provider speaks HTTP/2 + SSE directly through an in-house nghttp2 + OpenSSL stack. Subprocesses use posix_spawn + poll(2) with in-process kill deadlines. See Architecture for the full tour.

Project status

Works on Linux, macOS, and Windows — all three actively tested and built daily. Prebuilt release binaries ship for Linux (x86_64, aarch64) and Windows (x86_64); macOS builds from source in seconds. Pre-1.0 and moving fast.