goose v1.24.0 Release Notes
✨ Features
- Unified summon extension — replaces subagent and skills with a single, streamlined extension [#6964](#6964)
- Top of Mind (tom) platform extension — new built-in extension enabled by default for contextual awareness [#7073](#7073) [#7111](#7111)
- MCP support for agentic CLI providers — Claude Code, Codex, and Gemini CLI can now use MCP tools [#6972](#6972)
- Claude Code: dynamic model listing and mid-session model switching [#7120](#7120)
- Claude Code: stream-json protocol for persistent sessions [#7029](#7029)
- Reasoning content in API for reasoning models [#6322](#6322)
- Configurable thinking level for Gemini 3 models [#6585](#6585)
- Image support and improved error resilience for Codex [#7033](#7033)
- Google provider:
MessageContent::Imagesupport for user messages [#6986](#6986) - Edit model and extensions of a recipe from the GUI [#6804](#6804)
- Load provider/model specified inside recipe config [#6884](#6884)
- Escape Jinja variables in recipes to include them in prompts [#6975](#6975)
- Session content search via API [#7050](#7050)
- Inline rename for chat sessions in sidebar [#6995](#6995)
- Desktop UI for deleting custom providers [#7042](#7042)
- Custom headers field for custom OpenAI-compatible providers in Desktop [#6681](#6681)
- Display subagent tool calls in CLI and UI [#6535](#6535)
- Type-to-search filtering in CLI select/multiselect dialogs [#6862](#6862)
AGENT_SESSION_IDenv var exposed to extension child processes [#7072](#7072)AGENT=gooseenvironment variable for cross-tool compatibility [#7017](#7017)- Pass env to shell commands [#6863](#6863)
- Global config switch to disable automatic session naming [#7052](#7052)
- Port of Context (pctx) for Code Mode [#6765](#6765)
- Overridable default bat themes using environment variables [#7140](#7140)
- MCP Apps: Permission Policy support for sandbox iframes [#6947](#6947)
- MCP Apps: integrate AppRenderer from @mcp-ui/client SDK [#7013](#7013)
- Upgrade rmcp to 0.15.0 and advertise MCP Apps UI extension capability [#6927](#6927)
- Groq declarative data updated with Preview Models [#7023](#7023)
- ACP: model selection support for
session/newandsession/set_model[#7112](#7112) - Support
extrafield in chat completion tool_calls for Gemini OpenAI compat [#6184](#6184) - Manpage generation for goose-cli [#6980](#6980)
- SLSA build provenance attestations added to release workflows [#7097](#7097)
- CUDA support — allow building with CUDA as the candle backend [#6914](#6914)
- Proper proxy support on Windows & macOS [#6840](#6840)
🐛 Bug Fixes
- Save and run recipe not working [#7186](#7186)
- Local speech/whisper functionality [#7181](#7181)
- Handle keyring fallback as success [#7177](#7177)
- Replace panic with proper error handling in
get_tokenizer[#7175](#7175) - Text editor view broken [#7167](#7167)
- Configure add provider custom headers [#7157](#7157)
- MCP: decode resource content [#7155](#7155)
- Flatpak icon [#7154](#7154)
- Missing content from Langfuse traces [#7135](#7135)
- Extension selector syncing issues [#7133](#7133)
- Claude Code: defensive coding improvements for model switching [#7131](#7131)
- Duplicated output in Code Mode by filtering content by audience [#7117](#7117)
- ACP: per-session Agent for model isolation and
load_sessionrestore [#7115](#7115) - Isolate Claude Code sessions via stream-json
session_id[#7108](#7108) - Windows bundle random failure and optimised canary build [#7105](#7105)
- Goose Desktop missing Calendar and Reminders entitlements [#7100](#7100)
- Strip empty extensions array when deeplink [#7096](#7096)
- Improve text-muted contrast for better readability [#7095](#7095)
- Allow unlisted models for CLI providers [#7090](#7090)
command.process_group(0)for CLI providers, not just MCP [#7083](#7083)- Only send command content to command injection classifier [#7082](#7082)
- Switch to Windows MSVC [#7080](#7080)
- Ensure assistant messages with
tool_callsinclude content field [#7076](#7076) - Remove
Optionfrom model listing return types, propagate errors [#7074](#7074) - Lazy provider creation for goose ACP [#7066](#7066)
- XML tool call parsing fallback for Qwen3-coder via Ollama [#6882](#6882)
- Ensure animated elements are visible when
prefers-reduced-motionis enabled [#7047](#7047) - Show recommended model on failure [#7040](#7040)
snake_casefunction names incode_executioninstructions [#7035](#7035)- Azure OpenAI model listing 404 during configure [#7034](#7034)
- Codex: propagate extended PATH to subprocess [#6874](#6874)
- Handle tool names without underscores [#7015](#7015)
- Hub chat input overlapping SessionInsights on paste [#6719](#6719)
- GCP Vertex AI model mapping handled correctly [#6836](#6836)
- Detect context length errors in GCP Vertex AI provider [#6976](#6976)
- Correct Tailwind
@sourcepaths for tarball builds [#6978](#6978) - 'Edit In Place' feature appending instead of editing messages [#6955](#6955)
- 'Edit In Place' and 'Fork Session' features [#6970](#6970)
- Tool confirmations not showing up mid chat [#6935](#6935)
- Per session working directory isolation [#6920](#6920)
- Session history cards title wrapping early [#6854](#6854)
- Deep links not working in markdown [#6907](#6907)
- Lazy regex to avoid recompile [#6865](#6865)
- Devstral models with correct 262K context length [#6867](#6867)
- Gemini CLI command parsing [#6960](#6960)
- Ask-ai bot hitting tool call limits [#7162](#7162)
- ACP fixtures now raise content mismatch errors [#6912](#6912)
🔧 Improvements
- Smaller system prompt [#6991](#6991)
- Always sync bundled extensions [#7057](#7057)
- Updated ElevenLabs API module and remove button UX [#6781](#6781)
- Custom provider form minor improvements [#6966](#6966)
- Allow copying long strings to the clipboard in the diagnostics viewer [#6951](#6951)
- Ctrl-C behavior like Claude Code [#6900](#6900)
- Don't show new chat placeholders for recipes in sidebar [#6790](#6790)
- Inline worklet source [#7128](#7128)
- PATH detection back in developer extension [#7161](#7161)
- Improve error message logging from Electron [#7130](#7130)
- Update candle to 0.9 [#6913](#6913)
- Fast models on Databricks have 0 retries [#6919](#6919)
- Use Haiku for Databricks [#6943](#6943)
- Bump pctx [#6967](#6967)
- LTO and codegen-units in release build [#6586](#6586)
- Switch
jsonwebtokento useaws-lc-rs[#7189](#7189) - Local speech (Careless Whisper) [#6877](#6877)
- Skills Marketplace UI improvements [#7158](#7158)
- Group dependencies in root
Cargo.toml[#6948](#6948) - Cargo-audit → cargo-deny for advisory scanning [#7032](#7032)
🔒 Security
- Bump
batto 0.26.1 to resolve RUSTSEC-2026-0008 [#7021](#7021) - Trim
batto resolve RUSTSEC-2024-0320 [#7061](#7061) - Bump
tree-sitterto 0.26 and setsqlxdefault-features=false to fix RUSTSEC advisories [#7031](#7031) - Cargo-audit workflow for scanning Rust vulnerabilities [#6351](#6351)
- Upgraded npm packages for latest security updates [#7183](#7183)
- Update
process-wrapto 9.0.3 (9.0.2 is yanked) [#7176](#7176)
📖 Documentation
- AWS Bedrock bearer token auth [#6990](#6990)
- Extended custom provider headers support [#7012](#7012)
- Run extensions in containers [#6971](#6971)
- Custom model definitions [#6910](#6910)
- OVHcloud provider [#6932](#6932)
.gooseignorenegation patterns [#6929](#6929)- Customizable prompt templates [#6908](#6908)
- CLI external editor [#6922](#6922)
- Keyboard shortcut menu [#6928](#6928)
- Duplicate session button and fork command [#6923](#6923)
- Max turns settings for recipes and subagents [#7044](#7044)
- Codex subscription support [#7104](#7104)
- Reasoning effort levels for Codex provider [#6798](#6798)
- GCP Vertex AI org policy filtering [#7125](#7125)
- Keyring fallback to
secrets.yaml[#7165](#7165) - White label guide [#6857](#6857)
- Pin version in CI/CD [#7168](#7168)
- Tool output optimization [#7109](#7109)
- Standalone MCP apps and apps extension [#6791](#6791)