Release notes
Fx v0.0.11
fx now supports custom model connections and themes. Resume, file lookup and request handling are up to 100× faster, long turns use 17× less memory, and libfx adds steering, images, web search and model controls.
Breaking Changes
- Automatic recovery:
/continuehas been removed. fx now retries and continues on its own.
New Features
- Default model: fx now uses Grok 4.7 as its default model. Fast mode remains opt-in.
- Custom connections: fx now supports named OpenAI Chat Completions connections for local servers and other gateways. Configure them in
~/.fx/settings.json, then select one withfx provider <name>orFX_PROVIDER. - Provider routing: Gateway users can set
provider_orderandprovider_strict, or pass--provider-orderand--provider-strict, to prefer or restrict which providers serve a model. - Interactive flags: Interactive sessions accept
--provider,--model,--effort, and--fast;fx askaccepts--model,--effort, and--fastfor one run without changing saved preferences. Grok models now support Fast mode. - Slack bot: fx can now install and manage your Slack workspace bot from the CLI.
- Custom themes: fx now loads custom TUI themes from
~/.fx/themes/<name>.json, including VS Code themes. Setthemein~/.fx/settings.jsonor useFX_THEME. - Image reading:
read_filenow attaches PNG, JPEG, GIF, and WebP files to supported vision models. - libfx steering: libfx turns support
turn.steer()for mid-turn guidance. Applied steering arrives as auser_messageevent and remains in checkpoints. - libfx model controls:
createFxAgent()now accepts image blocks pluseffortandfastoptions. libfx now supportsweb_search. - libfx activity: libfx hosts receive
transport.activitywhile responses stream, andtool_startnow includes tool input or a bounded preview. - libfx tool boundaries: libfx now keeps host tools separate from fx's built-in tools, even when they share a name.
Improvements
- Recovery: Transient model failures now retry until the connection recovers. Silent streams use liveness checks, and retries slow to once a minute after 15 minutes.
- Session resume:
/resumeopens up to 60× faster with better session caching. - File suggestions:
@file suggestions are 6–40× faster with a saved index and background scanning. - Gateway setup: Gateway connection setup is up to 48× faster by warming and reusing connections across turns.
- Usage tracking: Usage tracking is over 100× faster on large local histories.
- Memory use: Long tool-heavy turns use over 17× less memory in the release benchmark.
- Compaction: Compaction now preserves conversation history more accurately for better continuation afterward.
- Syntax highlighting: Shell commands and code blocks now have better syntax highlighting across more languages.
- MCP errors: MCP now shows clearer startup and authentication errors, including what to do next.
- MCP forms: Small MCP forms with one choice and up to three options submit directly from the terminal prompt.
- Diagnostics: Logs in
/traceandctrl+oare cleaner and more useful for diagnosing session issues. - Subagents: Subagent rows show the child's model, effort, token use, and task status. Exact and unambiguous partial model names now work in subagent overrides.
- Faster exits: Double
Ctrl+Cexits up to 40× faster when MCP servers are stuck, and no longer waits on upgrade downloads. - Command rendering: Command rows now resize with the terminal, giving long shell commands cleaner rendering.
Bug Fixes
- Multiple images: Reading multiple images in one turn no longer crashes fx, and images returned by tools now reach vision models through Gateway.
- Image accounting: Tool images no longer count as text during request estimation. Automatic compaction now uses the real image cost.
- Session titles: Resuming an untitled session now generates a title from its first committed prompt instead of preserving
Untitled session. - Session saving: A completed turn that fails to save no longer exits fx. The response stays in memory and the save error remains visible.
- Workspace search:
grep_filesandglob_filesno longer end an otherwise completed turn when searching from the workspace root. - Full-screen views: Typing while
ctrl+oor another full-screen view is open no longer disturbs the main conversation. Queued prompt previews also stay clear of active transcript rows. - Tool recovery: Tool failures now name the unresolved path and tell the model when to reread a file or choose another approach instead of retrying blindly.
- Cancelled recovery: Cancelling response recovery no longer revives the stopped turn on resume. After restarting, the model is also told that old background shell sessions no longer exist.
- MCP capabilities: MCP resources and prompts no longer fail the whole tool call when a server never advertised that capability.
- MCP authentication: Rejected or expired MCP credentials now show
needs_authand the right re-authentication command instead of appearing authenticated. - Terminal resume: Resumed terminal rows show the recorded launch command, including after moving the workspace, instead of raw session IDs or fixed-width text.
- Transcript retention: Transcript retention no longer overwrites finalized conversation rows or loses pending rows during resize and full-transcript viewing.
- Fast mode fallback: When the model catalog is unavailable, fx reports that the requested Fast mode could not be enabled and continues normally.
- Steering recovery: Steering and response recovery no longer lose buffered assistant output or completed turn summaries.
Security
- Custom connection credentials: Custom connections read credentials only from their named environment variable, and committed project configuration cannot define model endpoints. Saved sessions refuse to resume against a changed endpoint or authentication identity.
- Review model: Set
review_modelorFX_REVIEW_MODELto choose the model used for auto-mode safety reviews. Review transport failures and malformed replies retry once; cautions never retry for approval, and an unresolved action stays blocked. - Safe tool errors: Tool failure details now redact secrets and escape terminal control sequences before rendering.