An AI coding agent that lives in your terminal. Codename YiHuaKaiTian — "one stroke opens the heavens."
FuXi is a fast, self-contained AI developer terminal — a coding agent you drive from a rich TUI. It reads your codebase, edits files, runs commands, drives tools, and routes every request across multiple LLM providers with cost-aware routing and automatic failover. Written in Go, it ships as a single static binary with no runtime dependencies.
Homepage: https://www.fuxicode.com
- Multi-LLM routing — one agent, many providers. First-class support for:
- Anthropic (native Messages API) and Anthropic on AWS Bedrock / Google Vertex
- OpenAI-compatible endpoints (OpenAI, Azure OpenAI, and any OpenAI-style API)
- Google Gemini
- Popular open/China-hosted models via OpenAI-compatible endpoints — **GLM **, DeepSeek, Qwen, Hunyuan, Doubao, Ernie, Grok (xAI), and more
- Intelligence layer — cost-aware routing, automatic failover to a healthy provider, optional racing of primary vs. fallback, and role-based model tiers (fast / primary / reasoning) resolved from your config.
- A deep tool suite — file read/edit/write, shell (
bash/ PowerShell) with a safety classifier, web fetch, code search, LSP-backed diagnostics, Jupyter notebooks, computer/browser use via MCP, background tasks, and parallel sub-agents. - MCP client — connect any Model Context Protocol server (stdio, HTTP, or WebSocket) and its tools become available to the agent.
- Extensible — hooks, skills, plugins, and user-defined slash commands.
- Durable sessions — persistent transcripts, checkpoints/resume, an idle "dreaming" memory, and automatic context compaction for long conversations.
- Bring your own key, or log in — use a provider API key, or sign in with FuXi OAuth. Keys are never required for the FuXi-managed path.
- Self-updating — a background version check and a one-command
fuxi updatekeep your install current, with checksum verification before it ever replaces the running binary.
curl -fsSL https://releases.fuxicode.com/bootstrap.sh | bashirm https://releases.fuxicode.com/bootstrap.ps1 | iexcurl -fsSL https://releases.fuxicode.com/install.cmd -o "%TEMP%\fuxi-install.cmd" && "%TEMP%\fuxi-install.cmd"All three install to ~/.local/bin (%USERPROFILE%\.local\bin on Windows) and add
it to your user PATH if it isn't there already. Running the same command again
later upgrades an existing install in place — it's the same command for install and
upgrade.
By default they install the latest version; pin a specific one with an argument, e.g.
./bootstrap.sh 2.202.194 or ./bootstrap.ps1 2.202.194.
Requires Go 1.26+:
git clone <this-repo>
cd fuxi
go build -o fuxi ./cmd/fuxifuxi --version
fuxi doctor # environment sanity checks (config, API key, git, ripgrep, ...)# macOS / Linux
rm -f "$HOME/.local/bin/fuxi"
rm -rf "$HOME/.fuxi" # optional: also drop config/state
# Windows (PowerShell)
Remove-Item -Force "$env:USERPROFILE\.local\bin\fuxi.exe"
Remove-Item -Recurse -Force "$env:USERPROFILE\.fuxi" # optionalLaunch the TUI:
fuxiOn first run FuXi creates its config under ~/.fuxi/. You need a model to talk to,
via one of two paths:
-
Sign in —
fuxi loginopens a browser to authenticate with your FuXi account, which provisions FuXi-managed models automatically. No API key needed. -
Bring your own key — set a provider API key via environment variable, or write
~/.fuxi/config.yamldirectly (fuxi initgenerates a starter template, auto-detecting a provider from whatever env vars are already set):provider: openapi base_url: https://your-endpoint/v1 api_key: <your-key> # or export FUXI_API_KEY instead model: glm-4.6
Managing several providers/models instead of one? Use the layered schema — a
providers:catalog plus amodel:selection layer:providers: custom: type: openapi base_url: https://your-endpoint/v1 api_key: <your-key> models: - id: deepseek-v4-pro-260425 model_canonical_name: deepseek-v4-pro # optional: for capability lookup model: active: { provider: custom, id: deepseek-v4-pro-260425 }
See
config.full.example.yamlfor the full layered schema (multiple providers, per-model capability overrides, routing roles).Or run
fuxi wizardfor an interactive setup flow (pick a provider, enter the base URL/key, choose a model, test the connection).
Once a model is configured, pick it any time with /model, and manage the rest of
your settings with /config — everything (permissions, hooks, skills, plugins) is
driven from inside the TUI via slash commands.
The most commonly used flags when launching fuxi:
| Flag | Purpose |
|---|---|
-m, --model <name> |
Override the model for this run |
-k, --api-key <key> |
Override the API key for this run |
-b, --base-url <url> |
Override the base URL (enables the OpenAPI provider) |
-P, --provider <type> |
Provider type: anthropic | openapi |
-r, --resume <sessionId> |
Resume a specific past conversation |
-c, --continue |
Continue the most recent conversation in this directory |
-d, --dir <path> |
Working directory |
--permission-mode <mode> |
default | plan | bypassPermissions |
--auto |
Auto-approve safe tool calls (classifier-gated, with a circuit breaker) |
--dangerously-skip-permissions |
Skip all permission checks (use with care) |
--worktree |
Create a git worktree for this session |
--thinking <mode> |
enabled | adaptive | disabled |
--mcp-config <configs...> |
Load MCP servers from JSON strings or file paths |
--status |
Print resolved provider status and exit |
--config |
Print resolved configuration and exit |
--debug [pattern] |
Enable debug logging, optionally filtered by tag |
-v, --version / -h, --help |
Version / full flag & command reference |
Run fuxi --help for the complete list (there are many more — sampling controls,
tool restrictions, system-prompt overrides, hook triggers, and swarm/agent flags).
| Command | What it does |
|---|---|
fuxi |
Launch the interactive TUI (same as fuxi tui) |
fuxi login |
Sign in to a FuXi account and configure credentials |
fuxi setup-token |
Sign in and print a token for FUXI_OAUTH_TOKEN (headless/CI) |
fuxi wizard |
Interactive setup wizard: provider, base URL, key, model, connection test |
fuxi init [--force] |
Generate a ~/.fuxi/config.yaml template |
fuxi doctor |
Diagnose your environment (config, key, git, ripgrep, env overrides) |
fuxi verify |
Verify connectivity to the configured provider |
fuxi info |
Show resolved provider and model information |
fuxi update [version] |
Download, checksum-verify, and install a new version |
fuxi agents |
List configured agents grouped by source |
fuxi proxy |
Start the local Anthropic↔OpenAI smart-routing proxy |
fuxi launch [args] |
Launch another tool through the proxy, using your FuXi config |
fuxi mcp serve |
Run FuXi itself as an MCP stdio server |
fuxi remote-control |
Run as a cloud remote-control worker (alias for --remote-control) |
Type / and press Enter (or Tab-autocomplete) to browse all commands. The
essentials:
| Command | What it does |
|---|---|
/help, /commands, /menu |
Show or search all commands |
/model |
Switch the active model |
/config |
Open configuration |
/status |
Show provider status |
/context |
Show current context-window usage |
/cost, /usage |
Session cost / plan usage limits |
/compact |
Compact conversation history to free up context |
/clear |
Clear the conversation |
/history, /resume |
Browse or resume a past session/checkpoint |
/tools |
List available tools |
/permissions |
Show the current permission configuration |
/memory |
Show the project memory file |
/fork |
Show sub-agent (fork) stats |
/commit |
Create a git commit |
/review |
Review code / open a PR |
/doctor |
Run diagnostic checks |
/copy, /paste |
Copy the last reply / send clipboard text as the next prompt |
/exit |
Quit |
Keyboard: / then Enter opens the command browser · Tab autocompletes a slash
command · Ctrl+R searches prompt history · terminal paste / bracketed paste is
supported for large pastes.
FuXi checks for new versions in the background and prints a one-line notice when one is available. Update in place with:
fuxi update # latest
fuxi update 2.203.0 # a specific versionfuxi update downloads the target build, verifies its SHA-256 against the
published manifest, and atomically replaces the running binary — it never leaves
you with a partially-installed version. Suppress the background check with
--no-update-notifier or NO_UPDATE_NOTIFIER=1.
- Config directory:
~/.fuxi/(override withFUXI_CONFIG_DIR). - Config file:
~/.fuxi/config.yaml— provider, model, thinking/effort, intelligence routing, redaction, and per-endpoint capability overrides. Changes hot-reload while FuXi is running. Seeconfig.full.example.yamlin this repo for every available field with inline documentation. - Precedence: environment variables >
config.yaml> built-in defaults. - Project settings: a checked-in
.claude/settings.json(permissions, hooks) is honored per-project. - Plugins: first-party marketplace at
fuxicode.com/plugins.
Key environment variables:
| Variable | Purpose |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API key |
FUXI_BASE_URL / FUXI_API_KEY / FUXI_MODEL |
OpenAPI-compatible provider config |
ANTHROPIC_MODEL |
Model name for the Anthropic provider |
FUXI_THINKING_MODE / FUXI_THINKING_EFFORT |
auto|enabled|disabled / low|medium|high|max |
FUXI_CONFIG_DIR |
Override the config directory (default ~/.fuxi) |
FUXI_TEMPERATURE / FUXI_TOP_P / FUXI_SEED |
Sampling controls |
Run fuxi --help for the full environment-variable reference, including bridge/
remote-control, sandbox limits, and MCP resource caps.
FuXi is a single Go module. The entry point is cmd/fuxi; the bulk of the system
lives under internal/ — the agent engine, TUI, tools, providers, MCP, session
and memory services, the intelligence router, and the permission system.
Proprietary. Copyright © 2026 FUXI (Shanghai YiTai Technology Co., Ltd.). All rights reserved.