# Fx: Unix Like Coding Agent

> Source: <https://github.com/vercel-labs/fx>
> Published: 2026-08-18 22:38:56+00:00



```
 ⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀
 ⠀⠀⠀⠀⠀⢰⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
 ⠀⠀⠀⣠⣶⣿⣿⣷⣶⡶⣶⣶⣆⠀⠀⠀⣴⣶⣶⠆
 ⠀⠀⠀⠉⢹⣿⣿⠉⠉⠀⠘⢿⣿⣧⣀⣾⣿⡿⠃⠀             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](https://fx.sh/docs/configure-fx/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](/vercel-labs/fx/blob/main/sdk/README.md) and [ACP documentation](https://fx.sh/docs/using-fx/acp).

Add reusable instructions with [skills](https://fx.sh/docs/capabilities/skills), connect external tools through [MCP](https://fx.sh/docs/capabilities/mcp), or delegate independent work to [subagents](https://fx.sh/docs/capabilities/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](https://fx.sh/docs).

Building fx requires [Zig 0.16.0+](https://ziglang.org/download/):

```
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](/vercel-labs/fx/blob/main/CONTRIBUTING.md) for development and contribution guidelines.

Third-party licenses and attributions are listed in
[THIRD_PARTY_NOTICES.md](/vercel-labs/fx/blob/main/THIRD_PARTY_NOTICES.md).

Interface sounds by [cuelume](https://github.com/Danilaa1/cuelume).
