A terminal UI tool for managing agents, built with Rust and Ratatui.
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/opencloudtool/agentty/releases/latest/download/agentty-installer.sh | shcargo install agenttynpm install -g agenttyRun without installing:
npx agentty- Rust nightly toolchain (configured via
rust-toolchain.toml) - Git (required for session worktree integration)
- One supported agent CLI installed:
gemini,claude, orcodex
Agent, model, and permission mode are configured per session, and the latest selection becomes the default for newly created sessions.
- New sessions start with the most recently used
agent+model+permission_mode. - On a fresh setup (no previous session changes), defaults are
gemini+gemini-3-flash-preview+auto_edit. - In prompt mode, type
/modelas the first input token to open the multistep picker:- choose agent (
gemini,codex,claude) - choose model from that agent's curated model list
- choose agent (
- In prompt mode, press
Up/Downto iterate previously sent messages for the active session and quickly resend/edit them. - Press
Shift+Tabin chat view or prompt mode to toggle permission mode for the current session. - Permission modes:
auto_edit(default): runs with standard edit permissions.autonomous: runs with elevated autonomy (backend-specific flags such as--yoloor skipping permission prompts).plan: asks the agent for a detailed plan instead of implementation.
- After a plan response in chat view, an inline action bar appears:
Implement the plan: switches that session toauto_editand sends an implementation prompt.Type feedback: opens prompt input so you can send feedback while keepingplanmode.- Use
Left/Rightarrows to choose andEnterto confirm.
- The active mode is shown in the session chat title.
- Changes are persisted for that session and used as defaults for future sessions.
Agentty creates isolated worktrees for each session:
- Isolated Branches: Each session gets its own branch named
agentty/<hash>based on your current branch - Separate Working Directory: Sessions work in isolated directories under
~/.agentty/wt/ - Diff View: Press
din the chat view to see real-time changes made by the agent - Rebase Action: Press
rin the chat view to rebase the session branch onto its base branch - Sync Action: Press
sin the session list to run session sync (pull --rebase+push) for review sessions- Sync is available only when the active project branch is
main - Sync is blocked until
mainhas no uncommitted changes
- Sync is available only when the active project branch is
- Automatic Cleanup: Worktrees and branches are automatically removed when sessions are deleted
This allows agents to work on code changes without affecting your main working directory.
- Agent responses in chat view now render a markdown subset with terminal styling.
- Supported formatting includes headings, bold/italic text, inline code, fenced code blocks, lists, blockquotes, and horizontal rules.
- User prompt lines (
› ...) remain visually distinct in cyan bold styling.
- The
Statstab now includes a GitHub-style activity heatmap for session creation activity over the last 53 weeks. - Heatmap intensity scales with daily session counts and now includes month labels for easier timeline scanning.
- A right-side summary panel highlights favorite model usage, the longest session duration, and per-model input/output token totals.
- The per-session token table and overall totals remain available below the heatmap.
- On startup, Agentty checks npmjs for the latest
agenttyversion. - If a newer version exists, an inline
vX.Y.Z version available update with npm i -g agentty@latestnotice is shown:- in the top status bar next to the current version
- on the onboarding screen when there are no sessions
git clone <repo-url>
cd agentty
cargo run # Builds and runs the 'agentty' binaryagentty.xyz is a Zola site stored in docs/site/ and deployed through GitHub Pages.
# Preview locally
zola serve --root docs/site
# Build static output
zola build --root docs/sitecargo test
cargo clippy -- -D warnings
cargo fmt --all -- --check
cargo shearApache-2.0
