AI pair programming in your terminal
One static binary. Sub-millisecond startup. Any model.
curl -fsSL https://raw.githubusercontent.com/1ay1/agentty/master/install.sh | sh
cd your-project
agentty
First launch opens auth — OAuth (uses your Claude Pro/Max subscription) or paste an API key. Once you're in, a first-run welcome card suggests a few things to try; just type and hit Enter.
| Cold start under 1ms. No Node, no Python, no npm install. Just a static binary. Claude, GPT, Groq, OpenRouter, Ollama, or any OpenAI-compatible endpoint. Switch live with Every shell call runs inside bwrap (Linux) / sandbox-exec (macOS). File tools refuse paths outside your workspace. | Run on a box with no internet. Your laptop relays the bytes over SSH with TLS pinned end-to-end. read · write · edit · bash · grep · glob · git · web · search_docs · task — each with a purpose-built widget. Agent Skills + remember/forget memory. Teach it once, every session knows your conventions. |
agentty # Claude (default)
agentty --provider openai -m gpt-4o # GPT
agentty --provider groq -m llama-3.3-70b # Groq
agentty --provider ollama -m qwen2.5-coder # Local model
agentty --provider openrouter # Any model via OpenRouter
--provider
persists. Switch live in-app with ^P
.
| Key | Action | Key | Action |
|---|---|---|---|
Enter |
|||
| Send | ^K |
||
| Command palette | |||
Esc |
|||
| Cancel / reject | ^J |
||
| Thread list | |||
S-Tab |
|||
| Cycle profile | ^P |
||
| Model picker | |||
Alt+Enter |
|||
| Newline | ^N |
||
| New thread | |||
^G |
|||
| Run code block | ^←/→ or Alt+←/→ |
||
| Cycle threads |
Installation options
Linux
curl -fsSLO https://github.com/1ay1/agentty/releases/latest/download/agentty_amd64.deb
sudo dpkg -i agentty_amd64.deb
sudo dnf install https://github.com/1ay1/agentty/releases/latest/download/agentty-x86_64.rpm
sudo zypper install https://github.com/1ay1/agentty/releases/latest/download/agentty-x86_64.rpm
yay -S agentty-bin
curl -fsSLO https://github.com/1ay1/agentty/releases/latest/download/agentty-x86_64.apk
sudo apk add --allow-untrusted agentty-x86_64.apk
macOS
brew tap 1ay1/tap && brew install agentty
Windows
scoop bucket add 1ay1 https://github.com/1ay1/scoop-bucket; scoop install agentty
winget install agentty.agentty
Anywhere (no package manager)
curl -fsSL https://raw.githubusercontent.com/1ay1/agentty/master/install.sh | sh
From source (needs a C++26 toolchain — GCC 14+ / recent Clang / MSVC)
git clone --recursive git@github.com:1ay1/agentty.git
cd agentty && cmake -B build && cmake --build build -j
All binaries are a single fully-static executable (x86_64 + aarch64 on Linux, Intel + Apple Silicon on macOS). Packaging details: packaging/README.md.
Air-gapped hosts
agentty airgap --setup user@host # first time: copies credentials
agentty airgap user@host # every time after
Your laptop relays via SOCKS5-over-SSH. TLS pins on real upstreams — the network in between can't MITM you.
Inside Zed (ACP)
agentty speaks the Agent Client Protocol — the same protocol Zed uses for Claude Code. Add to Zed's settings:
{
"agent_servers": {
"agentty": {
"command": "agentty",
"args": ["acp"]
}
}
}
Run code blocks from replies (Ctrl+G)
The AI hands you a fenced block of commands — don't copy-paste it. ^G
lists
the blocks from the last reply; Enter
(or a digit) runs one interactively
on your real terminal: the TUI suspends, sudo password prompts work, output
streams live, Ctrl+C
kills the command (not agentty). When it exits, a
result card lets you attach the captured output to the composer as a
collapsed chip (a
), copy it (y
), or discard (Esc
) — so "it failed with X" reaches the model without you re-typing anything.
Runs the right shell per block on every OS: sh
/bash
blocks through
/bin/sh
on Linux/macOS, powershell
/pwsh
and cmd
/bat
blocks through
PowerShell / cmd.exe
on Windows. Prompt $
markers are stripped, a block
your platform can't run offers edit/copy instead, and capture is capped at
2 MB. Details: docs/RUN_CODE_BLOCK.md
Agent Skills
Drop a SKILL.md
anywhere under .agentty/skills/
or ~/.agentty/skills/
— it's live next turn. Compatible with Claude Code's .claude/skills/
format.
On codebases with internal DSLs or tribal conventions, agent accuracy jumps from ~20% to ~85% with curated skills (research).
Architecture
Pure-functional update loop: (Model, Msg) -> (Model, Cmd)
. View is Model -> Element
, rendered by maya. Process management via posix_spawn
poll(2)
. File writes are atomic (write
-
fsync -
rename
).
Deep dive: docs/ARCHITECTURE.md ·
docs/RENDERING.md
Releasing (maintainers)
Cutting a release is one command:
scripts/cut-release.sh X.Y.Z # POSIX / macOS / Linux / Git-Bash
scripts\cut-release.cmd X.Y.Z # Windows cmd.exe
It bumps project(agentty VERSION …)
in CMakeLists.txt
(the single source
of truth every manifest derives from), promotes CHANGELOG.md
's [Unreleased]
section to [X.Y.Z]
, commits, tags vX.Y.Z
, and pushes. The tag push fires
GitHub Actions, which builds every binary + OS package (Linux x86_64/aarch64
on native runners, macOS Intel/ARM, Windows .exe
/.msi
) and auto-submits to
winget, Homebrew, Scoop, and the AUR — nix/snap/gentoo manifests are attached
to the release. --dry-run
previews without writing anything.
MIT — see LICENSE.