Repository navigation
0.10.0 RELEASED #2781
acoliver
announced in
Announcements
0.10.0 RELEASED
#2781
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Release v0.10.0
The biggest release since 0.5. Four months of work, 1,100+ commits, and two changes that touch everyone: we moved off
~/.llxprtto OS-standard directories, and the CLI now runs on Bun instead of compiled Node bundles. Both are handled for you automatically.Installation
Install or upgrade LLxprt Code using npm:
Or use directly with npx:
The Headlines
We moved out of
~/.llxprtand into your OS's standard directories. Your config, data, cache, and logs are now separated the way your platform expects — XDG paths on Linux,~/Library/...on macOS,%APPDATA%/%LOCALAPPDATA%on Windows. On first launch we copy (not move) your existing global~/.llxprtover, so nothing is destroyed and you can roll back. Per-project<project>/.llxprtdirectories are untouched. If you have scripts pointing at~/.llxprt, they need updating — see Breaking Changes.LLxprt runs on Bun now, and there's no build step. The npm package ships TypeScript source plus its own pinned Bun, and a native launcher execs it directly. There's no Node relay process, no
bundle/llxprt.js, nodist/. From your side nothing changes:npm install -g,npx, and Homebrew all work exactly as before, and you do not need to install Bun yourself. Windows users get the biggest win — the old multi-process startup chain is gone.Agent Skills. Entirely new. Drop a
SKILL.mdbundle into<project>/.llxprt/skills, your user skills directory, or ship one in an extension, and the model can pull it in on demand. Only the name and description go into the prompt up front; the full instructions and bundled assets are injected only when the model actually activates the skill, and only after you consent. Manage them with/skills list|enable|disable|reloadin-session orllxprt skills list|install|uninstall|enable|disablefrom the shell — install from a Git repo, a local directory, or a.skillarchive. The status bar shows your enabled/disabled counts.Fresh installs no longer silently pick a provider for you. Previously an unconfigured LLxprt would quietly fall through to Gemini. Now an unconfigured session points you at
/setupto pick a hosted provider, a local model, a custom endpoint, or a saved profile — and non-interactive runs fail with real setup guidance instead of sending a request somewhere you didn't choose. Existing configs are unaffected.A much bigger model roster. Claude Opus 5 (now the Anthropic default), Sonnet 5, and Fable 5. GPT-5.6 Sol / Terra / Luna, with Sol as the Codex default. Kimi K3. Correct GLM 4.x/5.x context sizing. LiteLLM as a first-class provider. Ollama Cloud and Makora aliases. Configurable reasoning-field names so thinking output stops disappearing on OpenAI-compatible endpoints.
Slow models are no longer mistaken for dead ones. This was the single most-reported class of annoyance. The stream watchdog now understands provider-level liveness instead of assuming silence means death, the aggressive inter-chunk timeout is off by default, ESC and timeout aborts no longer poison your next prompt, and first-chunk connection failures actually get retried. Fireworks/Kimi buffering hangs and never-finishing turns are fixed too.
Long sessions survive things that used to kill them. Load-balancer pools exhausted by 429s now reset instead of staying pinned to a dead backend. An all-429 pool stays retryable instead of dumping you back to the prompt. Real quota errors survive to the surface instead of being overwritten by a generic timeout message. Near-limit turns attempt compression before giving up. Revoked or concurrently-refreshed OAuth tokens no longer spin in reauth loops or let a second LLxprt instance revoke your first one's session.
Zed/ACP and the VS Code companion got serious attention. The Zed integration now runs on the same Agent engine as the terminal CLI instead of a hand-rolled chat loop, so retries, tool continuation, provider activation, auth, and subagents all behave identically wherever you drive it from — and the
tasktool crash andtodo_pausecontinuation-loop bug in Zed are fixed. The VS Code companion no longer drops your open files on first connect or wedges on reconnect, andwrite_file/ast_editopen the native diff view again.Synced through gemini-cli 0.26.0, up from 0.23.0 in the 0.9 line.
New Models & Providers
opus-latestresolves here.sonnet-latesthandling and dated-snapshot token limits.maxreasoning effort, Responses API path. Sol is the new Codex default.maxeffort./provider litellmpoints at the OpenAI-compatible proxy on127.0.0.1:4000and readsLITELLM_API_KEY. Thanks @RheagalFire.OLLAMA_API_KEY/MAKORA_API_KEY.reasoning.fieldNamefor Ollama and OpenAI-compatible streaming, with sensible auto-detection ofreasoning_contentthenreasoning.Notable Fixes
Streaming and cancellation
Load balancing, routing, and identity
gemini-2.5-pro; Codex stays labeled Codex instead of turning intogemini:gpt-5.6-sol.Compression and context
/compressdistinguishes "nothing to do", "recently compressed", and actual failure.348,860/262,144.Auth and keychain
/keyautocomplete no longer hits the Keychain on every keystroke and spams you with authorization prompts.Subagents
getModelBehavior is not a function.taskno longer crashes on an unbound scheduler method, andtodo_pauseactually breaks the continuation loop.Windows and terminal
EINVALcrashes from:in credential filenames, and/dev/ttycrashes on a platform that has no/dev/tty. Thanks @HumanBot000.C:drive-letter paths are no longer truncated./copydoesn't crash; Windows Terminal uses OSC-52; an exited PTY no longer crashes on resize.MCP and startup
-iinitial prompt is actually processed instead of just appearing in history.Sessions and memory
--continuerestores normal wrapped chat instead of roughly one token per line.LLXPRT.mdis found when you start LLxprt from a subdirectory, not just the workspace root./profile listsupports directd-key deletion with confirmation, and refuses to delete profiles a load balancer still references. Thanks @Ayush7614.Breaking Changes / Action Required
Global config moved out of
~/.llxprt. Update anything that hard-codes that path..env~/.config/llxprt-code~/Library/Preferences/llxprt-code%APPDATA%\llxprt-code\Config~/.local/share/llxprt-code~/Library/Application Support/llxprt-code%LOCALAPPDATA%\llxprt-code\Data~/.cache/llxprt-code~/Library/Caches/llxprt-code%LOCALAPPDATA%\llxprt-code\Cache~/.local/state/llxprt-code~/Library/Logs/llxprt-code%LOCALAPPDATA%\llxprt-code\LogMigration runs once, copies rather than moves, and records itself in
<data>/.migration-complete.json. Your old~/.llxprtis left alone — delete it yourself once you're satisfied. If you setLLXPRT_CONFIG_HOME, migration is deliberately skipped; unset it for one startup if you want the import. Project-local<project>/.llxprtdoes not move.You must now choose a provider. New and unconfigured users get pointed at
/setup. Automation must configure a provider or profile explicitly — there is no implicit Gemini path anymore.Gemini Code Assist "Login with Google" OAuth is gone. Use
GEMINI_API_KEY/ keyfile or Vertex AI credentials./auth gemini loginis no longer a route.Qwen OAuth is gone — Alibaba discontinued the free OAuth tier. Qwen is API-key-only now via DashScope (
DASHSCOPE_API_KEY) or OpenRouter. OAuth providers are down to three: Gemini, Anthropic, Codex.google_web_searchandgoogle_web_fetchare removed. Useexa_web_searchanddirect_web_fetch. Update any profiles, policies, subagents, or prompts naming them.--experimental-uiand@vybestack/llxprt-ui(OpenTUI) are removed. Ink is the only terminal UI; that's where the effort goes now.GEMINI_YOLO_MODEis no longer honored. Use the--yoloflag (or-y, or--approval-mode yolo) instead. We recommend the flag over an environment variable generally — env vars have a habit of leaking into places you didn't intend, and auto-approving every tool call is not something you want silently inherited by a shell, a CI job, or a child process. Note that gemini-cli interoperability is fully retained:GEMINI.md,.geminiignore,gemini-extension.json,.gemini/extensions, andGEMINI_API_KEYall still work.Anthropic's unpinned default is now Claude Opus 5. Pin a model or profile if you need cost and behavior held stable.
For integrators only: legacy TypeScript aliases were removed. Use
AgentEventType,ServerAgentStreamEvent,ServerAgent*Event,AgentErrorEventValue,ServerFinishedOutcome,InformationalStreamEvent;LlxprtExtensioninstead ofGeminiCLIExtension;LLXPRT_CONFIG_DIRinstead ofGEMINI_DIR.GeminiCodeRequesthas no alias — useContentBlock[]/IContentorToolResultContent. Anything launchingdist/orbundle/llxprt.jsmust switch to the package'sllxprtbin. DirectAuthPrecedenceResolverconsumers must passproviderKeyStorageor usecreateAuthPrecedenceResolver().Thanks
Huge thanks to the contributors who sent pull requests in this release:
/dev/ttycrash fixesAnd to the upstream gemini-cli contributors whose work came in through the 0.24.5, 0.25.2, and 0.26.0 syncs.
All reactions