Release notes
Fx v0.0.8
fx is smaller, simpler, and faster. libfx initialization in Node / browser is over 40× faster; fx binary is 7.49% smaller. fx uses a smaller three-action shell, context compaction is optimized per model, and Enter steers active turns instead of queuing follow-ups.
Breaking Changes
- fx now uses a smaller shell tool with 75% fewer actions (3 vs 12), replacing the old terminal tool.
- Enter now steers active turns instead of queuing follow-ups, and ctrl+enter does the same.
- The subagent interface now has 67% fewer commands (2 vs 6), with direct delegation replacing the ctrl+x manager.
- The memory tool has been removed without deleting existing saved memories.
- createFxAgent() now exposes prompt, checkpoint, and close instead of the old session, model, and config APIs.
- createFxAgent() now takes apiKey and an optional model directly; Agent configuration through env is no longer accepted.
- capability_search replaces the retired skill_search and mcp_search_tools.
- The public --record startup flag has been removed.
New Features
Compaction now keeps recent tool exchanges intact, preserves the full transcript, and continues the same turn in a fresh context window.
fx can run one-off tasks or continue named agents directly from the conversation.
The shell now supports up to 64 live executions.
/mcp now opens a terminal browser for servers, tools, resources, prompts, authentication, and project trust.
MCP tool images now reach supported models and remain available after resume.
JavaScript hosts can now add their own tools, MCP clients, and skills across Node, Bun, and browsers.
The libfx package has no runtime dependencies; host-supplied tools and MCP clients may have their own.
ACP image prompts now support up to 3.75 MiB per image.
/provider, /setup, and /login now open the same column picker for providers, sign-in methods, API keys, and Vercel teams.
libfx now provides listModels() for explicit model discovery without creating an Agent.
Embedding hosts can use FX_AUTH_MODE=host-managed without reading or writing local provider credentials.
--full-access and /permissions full-access replace YOLO in the UI and commands; the old aliases still work.
fx ask --json now reports input and output tokens.
libfx now supports both ESM imports and CommonJS
require()in Node.Native libfx Agents now run in Next.js 15 and 16 server routes without extra bundler configuration.
getBackendInfo()now reports available libfx backends and loading errors without creating an Agent.fx session recover <id>can recover damaged conversations into a new session while leaving the original intact.
Improvements
Native Agent initialization is tens of times faster, dropping from hundreds of milliseconds to single digits.
Native streaming no longer waits on the polling bridge.
Synthetic native host-tool round trips measured 3.10 ms in Node and 1.56 ms in Bun at p95.
In the current benchmark, all 22 measured TUI interactions complete within 15 ms at p95 across 50 samples each.
CLI startup now takes about 0.5 ms before terminal initialization.
ctrl+o now shows timestamps, complete tool details, errors, and per-turn token usage in one view.
Skill and MCP searches now reject weak matches while preserving exact names and technical terms.
AI Gateway now uses Exa by default for web searches, with Parallel as the fallback.
AI Gateway caching is now enabled automatically for agent conversations.
New sessions use shorter 12-character IDs while existing IDs remain resumable.
File and model pickers remain available while fx is working, and model changes apply to the next turn.
Steering messages now appear in chat immediately and wait only while a tool is running.
Codex and Grok model lists refresh in open terminal and ACP sessions without requiring their CLIs.
Stable Wasm sources compile once per JavaScript realm while each Agent keeps separate state and memory.
MCP servers now connect independently, and optional servers start only when needed.
Subagent tasks and replies now appear in chat, with failures and partial results preserved.
The /resume picker now reuses cached session summaries instead of rescanning every time.
Terminal tabs now show the fx version and workspace folder.
libfx now pauses large streams when hosts fall behind instead of losing output.
ctrl+c now clears the composer first and cancels active work only when the composer is empty.
Long saved conversations now resume faster, including repeated
fx -ccontinuation.Scoped project instructions now refresh before continued turns, including rules changed since the last tool call.
Bug Fixes
Models with native image support no longer receive the redundant vision tool.
Terminal fx ask now loads approved MCP servers before the first model request.
The footer now shows Fast mode only when it matches the active model.
fx now keeps replies in the language of the latest user request.
AI Gateway requests can run for up to 30 minutes, and timed-out streams pause instead of retrying automatically.
Partial command output and known process status are preserved when output reading fails.
Forced shell termination now stops waiting after 6 seconds and reports when termination cannot be confirmed.
Tools that fail before execution now show why they did not run.
Cancelling an ACP prompt now stops the work instead of leaving it running.
Gateway, Codex, and Grok no longer fall back to another credential source when the selected one is unavailable.
New sessions remain saved when another fx process is updating session history.
Older sessions now upgrade without losing conversation history or tool output.
Explicitly requested skills now load completely and show their status before the reply begins.
Cancellation feedback now appears immediately after esc, while completed tool results remain intact.
Invalid shell requests now explain the argument problem and suggest a correction only when the repair is unambiguous.
Recovered responses no longer join text from separate attempts or repeat completed tool calls.
Provider selection remains responsive while credentials and models load, and sign-in can resume after logout, cancellation, or credential failures.
Large session reads no longer block concurrent saves.
Cancelled libfx prompts stop waiting on host tools and cannot affect later turns.
Native streaming preserves Unicode split across output chunks and continues after delayed cleanup.
Closed libfx Agents now release native threads, notification descriptors, and Wasm instances.
Pending MCP authentication no longer blocks a newer reload.
ctrl+o history now survives ctrl+l, terminal resizing, reopening, compaction, and resume without missing or duplicate entries.
Provider streams and parallel tool calls no longer lose or duplicate text, reasoning, and tool results.
Prompt images now survive tool calls and resume without falsely exhausting context.
Image recovery now uses saved attachments after restart, even if the original files move or change.
Missing or corrupt saved images now report an error without discarding the pending request.
Manual compaction now refreshes the selected login and keeps the conversation unchanged if sign-in fails.
Cancelled tools no longer prevent manual or automatic compaction, including after resume.
Long reasoning sessions no longer hit false context limits or leave too little room for compaction.
fx -cnow skips incomplete sessions and reports errors for the selected session instead of opening an older conversation.
…