An alternative terminal frontend for Claude Code, written in Rust. Your conversation stays in your terminal's own scrollback, without flicker.
Claude Code Rust (claude-rs) is a terminal UI for Claude Code built on Ratatui. It runs your sessions through Anthropic's official Agent SDK via a local bridge, with the same account, models, tools, file edits, permissions, MCP servers, skills and session history as Claude Code itself. Only the interface is different.
Install the Claude Code CLI and keep claude on PATH for some functionality not yet supported by the Anthropic SDK. See the dependency and feature overview for details.
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/srothgan/claude-code-rust/main/scripts/install/install.sh | shWindows PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm 'https://raw.githubusercontent.com/srothgan/claude-code-rust/main/scripts/install/install.ps1' | iex"Already have Node.js 24+? Use npm instead
npm install -g claude-code-rustThe package ships prebuilt platform binaries and its own Bun runtime for the Agent SDK bridge, so no Rust toolchain, Bun install, or postinstall script is needed. Node.js 24+ is still required to run the claude-rs launcher.
See the installation guide for release pinning, custom install locations, switching install methods, uninstall, and troubleshooting.
claude-rs
claude-rs --model opus --permission-mode plan "Review this project"
claude-rs --continueFollow Your first session for a complete walkthrough. See the CLI reference for startup flags, shell completions and man pages.
Stock Claude Code offers two renderers, and each one gives something up. The classic renderer keeps the conversation in your terminal's scrollback but redraws it as output streams, which can flicker, jump the scroll position, or duplicate output in long sessions. The fullscreen renderer fixes that by moving the conversation to the alternate screen, where your terminal's search, tmux copy mode and native text selection no longer see it.
Claude Code Rust renders inline. Finished messages and tool output are written into your terminal's scrollback once, and only the live area at the bottom (the streaming reply, the composer and the footer) is redrawn.
| Stock classic | Stock fullscreen | Claude Code Rust | |
|---|---|---|---|
| Conversation lives in | Terminal scrollback | Alternate screen | Terminal scrollback |
| Flicker while streaming | Can flicker | No | No |
| Terminal search and tmux copy mode | Yes | Only after exporting from transcript mode | Yes |
| Native text selection | Yes | Mouse is captured by default | Yes |
| Mouse controls in the app | No | Yes | No |
That makes it a good fit if you:
- scroll, search and copy with your terminal or tmux rather than inside the app;
- work in tmux, over SSH, or in Windows Terminal;
- resize windows or split panes while Claude is working;
- prefer a keyboard-driven interface with a single native binary.
It is not a feature-for-feature copy of Claude Code. Some stock features are unavailable, and a few account and plugin operations still call the claude CLI. The feature overview lists both. There are no benchmarks against the stock interface yet; the comparison above describes how each renderer works, not measured speed or memory.
- Core Claude Code workflow: tool calls, inline edit diffs, permission prompts, plan mode, subagents and background tasks, MCP authorization, skills and SDK slash commands.
- Session tools: a searchable
/resumepicker with forking,/rewind,/compact,/exportto Markdown, and/btwside questions while a turn runs. - Fullscreen views when you want them: a Git diff viewer (
/diff), subagent view (/agents), settings (/config), status, usage and help. These open on demand and close back to the inline chat. - Supportability:
claude-rs doctor, redacted debug bundles, shell completions and man pages.
Choose a path through the documentation:
- Start using the app: Install and complete your first session.
- Work with it: Conversations, configuration, and MCP servers and plugins.
- Look something up: CLI reference, slash commands, and settings reference.
- Resolve a problem: Troubleshooting and diagnostics.
- Contribute or maintain: Development, testing, architecture, and contribution policy.
For the design history, including the move from fullscreen to inline rendering in 0.12.0, see I rebuilt Claude Code's terminal UI in Rust. Then I deleted 12,000 lines of it.
This project is pre-1.0 and under active development. See CONTRIBUTING.md for how to get involved.
Development follows new Agent SDK releases and problems found in daily use. The weekly Dependency Monitor tracks SDK updates. There is no fixed feature roadmap or date for 1.0.
Startup is still constrained by the upstream Claude Agent SDK runtime that this TUI wraps. The Rust interface itself is fast, but end-to-end readiness can still take noticeable time before a session is fully available. Improving that remains an active area of work.
This app uses Anthropic's Agent SDK. See the billing note for the current upstream policy source and account-dependent limits.
This project is licensed under the Apache License 2.0. Apache-2.0 was chosen to keep usage and redistribution straightforward for individual users, downstream packagers, and commercial adopters.
This project is not affiliated with, endorsed by, or supported by Anthropic.
A quick note on where this project stands, since I know people worry about this kind of thing: claude-code-rust is a terminal UI that I wrote from scratch in Rust. It is not a fork, copy or port of the latest Claude Code source leak. It talks to Anthropic's official Agent SDK as a runtime dependency instead, the same way any other third-party tool would. No Anthropic source code was read or used as reference at any point during development.
The project authenticates through your existing Claude Code account via the Agent SDK, and the Agent SDK's terms allow building on top of it. Billing, credits, limits, and overage behavior are controlled by Anthropic, including any future changes Anthropic may make to how Agent SDK usage is metered. Other community projects do the same. As far as I can tell, using this project is fine, but I am a single maintainer, not a lawyer. If anything changes on Anthropic's end, I will update this section and adjust the project accordingly.
This project's source code is licensed under Apache-2.0. The Agent SDK itself is proprietary and governed by Anthropic's Commercial Terms of Service.
For official Claude documentation, see https://claude.ai/docs.
