⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣠⣶⣿⣿⣷⣶⡶⣶⣶⣆⠀⠀⠀⣴⣶⣶⠆
⠀⠀⠀⠉⢹⣿⣿⠉⠉⠀⠘⢿⣿⣧⣀⣾⣿⡿⠃⠀ Tiny, open, embeddable, native coding agent.
⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⠻⣿⣿⣿⠟⠀⠀⠀
⠀⠀⠀⢀⣿⣿⠃⠀⠀⠀⠀⢠⣦⠘⢿⣿⣷⡀⠀⠀ curl -fsSL https://fx.sh/setup.sh | bash
⠀⠀⠀⣸⣿⡟⠀⠀⠀⠀⣰⣿⣿⠗⠀⠻⣿⣿⣄⠀
⠀⠀⠀⣿⣿⠇⠀⠀⠀⠾⠿⠿⠋⠀⠀⠀⠘⠿⠿⠦ ⚠ Status: Experimental. Use at your own risk.
⠀⣸⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
fx is a coding agent harness and CLI written in Zig, optimized for research and embeddability as part of larger systems.
It focuses on minimalism and performance across the board, from system prompt design to its tools, feature set, and 7.8 MiB binary.
For end users, its CLI output style and form factor aim to be closer to a Unix shell than a heavy "IDE in the terminal" TUI.
It's open source (Apache-2.0), model-agnostic, and suitable for both local and cloud inference.
curl -fsSL https://fx.sh/setup.sh | bash
To get started, sign in with Vercel:
fx login
Or add an AI Gateway API key:
fx setup
Run fx from a project:
cd your_project
fx
The current directory becomes the primary workspace. Enter a prompt, or run /help
to browse interactive commands.
Run /feedback
to open the feedback form at fx.sh/feedback
. It does not create a diagnostic or change the clipboard.
Run /trace
to create a private Markdown diagnostic with logs, session context, runtime state, permissions, and recent activity. On macOS, fx copies the .md
file to the clipboard; on other platforms, it saves the file and prints its path. Review and redact the trace before sharing it.
Use fx ask
for a single request:
fx ask "explain the changes in this repository"
fx starts in auto
permission mode, which reviews unresolved sensitive actions. See Permissions for other modes and persistent rules.
Inside a saved session, /permissions remember <allow|deny> <tool-name> <arguments-json>
stores an exact confirmed rule without running the action. /permissions
lists stable rule IDs, and /permissions revoke <rule-id>
removes a stored rule even when its original workspace or file state has changed.
fx builds as a native binary or WebAssembly. Applications embedding fx can provide network transport, session storage, configuration, permission handling, and terminal I/O.
| Surface | Use |
|---|---|
fx acp |
|
| Connect the native agent to editors and other Agent Client Protocol clients. | |
createFxAgent() |
|
Embed the agent core in a JavaScript host with fx-core.wasm . |
|
createFxTerminal() |
|
Embed the interactive terminal with fx-term.wasm . |
The WebAssembly SDK is experimental. See the WebAssembly SDK and ACP documentation.
Add reusable instructions with skills, connect external tools through MCP, or delegate independent work to subagents. Project instruction files may link within their scope, and read-only workspace or compatibility skill directories may link within their owning workspace or home; managed skills, SKILL.md
files, resources, and escaping links remain no-follow. fx status
and fx doctor
report an invalid trusted MCP profile without starting its servers.
Read the fx documentation.
Building fx requires Zig 0.16.0+:
git clone https://github.com/vercel-labs/fx.git
cd fx
zig build -Doptimize=ReleaseSafe
./zig-out/bin/fx
Run the test suite with zig build test
. See CONTRIBUTING.md for development and contribution guidelines.
Third-party licenses and attributions are listed in THIRD_PARTY_NOTICES.md.
Interface sounds by cuelume.