fxrs
fxrs is a compact Rust rewrite of vercel-labs/fx. It preserves the coding-agent semantics reachable through ACP while keeping providers, authentication, tools, persistence, and host effects behind independent boundaries.
It includes a fast full-screen terminal interface and an ACP stdio server. The TUI is itself an ACP client, so interactive use and editor integrations share the same provider, authentication, session, tool, and permission semantics.
Quick start
Start the terminal interface in the current workspace:
Enter sends a prompt, Shift+Enter inserts a newline, Esc cancels an
active turn, Ctrl+M selects a model, and Shift+Tab cycles the session mode.
Use /help for the complete keyboard and command reference. Notable commands
include /login, /model, /mode, /resume, /new, /clear, and /quit.
The interface streams Markdown responses and reasoning, updates tool cards in
place, provides foldable scrollback, queues follow-up prompts, and presents ACP
permission requests as keyboard- and mouse-operable cards. Set NO_COLOR=1
for a monochrome theme.
The focus, scrollback, and contextual-permission interactions take inspiration from xAI's grok-build; fxrs keeps its implementation and runtime architecture independent.
Install
Install the complete command set from crates.io:
Prebuilt archives are also available from GitHub Releases. Both methods install the same four executables, which must remain in the same directory:
fxrs
fx-tui
fx-acp
fx-terminal-host
fx-tui is the interactive frontend. fx-acp and fx-terminal-host are
private companions; the latter retains PTYs and monitors across sessions.
To build from source:
Resume a durable session or select a different workspace with:
ACP integration
Configure an ACP client to launch fxrs with acp as its first argument. An
optional model route can be selected explicitly:
Authentication
The ACP initialize response advertises the codex:chatgpt authentication
method. An ACP client can invoke authenticate to open the browser-based
ChatGPT OAuth flow. fxrs stores credentials it owns under
~/.fx/credentials, with private permissions, process locks, and atomic
replacement.
If no fxrs-owned credential exists, the Codex Provider can read a valid
~/.codex/auth.json created by codex login. That ambient credential is never
refreshed, rewritten, or deleted by fxrs.
In the TUI, run /login to invoke the advertised authentication method; when
multiple providers advertise methods, fxrs opens a provider picker.
Authentication remains provider-owned, and the frontend contains no
Codex-specific credential logic.
Architecture
Codex is the first concrete Provider. The registry supports multiple providers
at once and routes models as provider/model, so adding OpenAI API-key,
Anthropic, or other adapters does not change the agent loop, ACP projection,
credential store, or child-agent model selection.
ACP-reachable capabilities include durable event-log sessions, streaming and cancellation, permission review, filesystem tools, PTY sessions and monitors, web search/fetch, skills, memory, stored tool results, MCP stdio/Streamable HTTP tools, scoped project instructions, and durable subagents.
See the architecture, migration map, release procedure, and frozen Zig source inventory.
Development
See the contribution guidelines and security policy.
License
Licensed under the Apache License 2.0.