v1.21.0
aaif-goose/goosev1.21.0Jan 22, 2026by github-actions[bot]
AI Summary
Introduces multi-chat support, Flatpak packaging for Linux, and standalone MCP apps. Enhances GCP Vertex AI with organization policy filtering and adds CLI permission prompts.
Key Highlights
- Multi-chat support for managing sessions
- Standalone MCP applications
- Flatpak support for Linux distributions
- GCP Vertex model list with org policy filtering
- Parallel sessions with isolated agent state
- CLI permission prompts
- Customizable new line keybinding in CLI
New Features
- Multi-chat support
- Standalone MCP apps
- User configurable templates
- Flatpak support for Linux
- GCP Vertex model list filtering
- Parallel sessions with isolated agent state
- CLI permission prompts
- Customizable new line keybinding
- Graceful fallback for keyring failures
- Format large/small token counts for readability
- Support prefersBorder option for MCP Apps
- Exclude subagent tool from code_execution filtering
- Standardize agent-session-id for correlation
- MCP server for recipes
- Optional request params from GOOSE_PREDEFINED_MODELS
Full Release Notes
## Features - **Multi-chat support** - Added ability to manage multiple chat sessions ([#6428](https://github.com/block/goose/pull/6428)) ([@zanesq](https://github.com/zanesq)) - **Standalone MCP apps** - Support for standalone MCP applications ([#6458](https://github.com/block/goose/pull/6458)) ([@DOsinga](https://github.com/DOsinga)) - **User configurable templates** - Allow users to customize templates ([#6420](https://github.com/block/goose/pull/6420)) ([@DOsinga](https://github.com/DOsinga)) - **Flatpak support for Linux** - Added Flatpak packaging for Linux distributions ([#6387](https://github.com/block/goose/pull/6387)) ([@The-Best-Codes](https://github.com/The-Best-Codes)) - **GCP Vertex model list with org policy filtering** - Enhanced model listing with organization policy support ([#6393](https://github.com/block/goose/pull/6393)) ([@rabi](https://github.com/rabi)) - **Parallel sessions with isolated agent state** - Enable parallel sessions in goose-acp ([#6392](https://github.com/block/goose/pull/6392)) ([@codefromthecrypt](https://github.com/codefromthecrypt)) - **CLI permission prompts** - Ask for permission in the CLI ([#6475](https://github.com/block/goose/pull/6475)) ([@DOsinga](https://github.com/DOsinga)) - **Customizable new line keybinding in CLI** - Allow customizing the new line keybinding ([#5956](https://github.com/block/goose/pull/5956)) ([@trobrock](https://github.com/trobrock)) - **Graceful fallback for keyring failures** - Better handling when keyring is unavailable ([#5808](https://github.com/block/goose/pull/5808)) ([@sheikhlimon](https://github.com/sheikhlimon)) - **Format large/small token counts for readability** - Improved token count display in UI ([#6449](https://github.com/block/goose/pull/6449)) ([@aharvard](https://github.com/aharvard)) - **Support prefersBorder option for MCP Apps** - UI enhancement for MCP apps ([#6465](https://github.com/block/goose/pull/6465)) ([@aharvard](https://github.com/aharvard)) - **Exclude subagent tool from code_execution filtering** - Allow subagent delegation in code execution mode ([#6531](https://github.com/block/goose/pull/6531)) ([@rabi](https://github.com/rabi)) - **Standardize agent-session-id for session correlation** - Improved session tracking across providers ([#6626](https://github.com/block/goose/pull/6626)) ([@codefromthecrypt](https://github.com/codefromthecrypt)) - **MCP server for recipes** - Added MCP server support for recipes ([#6552](https://github.com/block/goose/pull/6552)) ([@dianed-square](https://github.com/dianed-square)) - **Optional request params and context limit from GOOSE_PREDEFINED_MODELS** - Extended model configuration options ([#6489](https://github.com/block/goose/pull/6489)) ([@zanesq](https://github.com/zanesq)) ## Bug Fixes - **Fix: exclude platform_schedule_tool in CLI** ([#6442](https://github.com/block/goose/pull/6442)) ([@lifeizhou-ap](https://github.com/lifeizhou-ap)) - **Fix: apply subrecipes when using slash commands** ([#6460](https://github.com/block/goose/pull/6460)) ([@angiejones](https://github.com/angiejones)) - **Fix: handle model quirks with tool calls in code_execution** ([#6352](https://github.com/block/goose/pull/6352)) ([@rabi](https://github.com/rabi)) - **Fix: clean up result recording for code mode** ([#6343](https://github.com/block/goose/pull/6343)) ([@alexhancock](https://github.com/alexhancock)) - **Fix: Handle Gemini thoughtSignature for tool calls on OpenRouter** ([#6370](https://github.com/block/goose/pull/6370)) ([@rabi](https://github.com/rabi)) - **Fix: Recipe slash command doesn't work with single optional parameter** ([#6235](https://github.com/block/goose/pull/6235)) - **Fix: support global .gooseignore and negation patterns** ([#6157](https://github.com/block/goose/pull/6157)) ([@leocavalcante](https://github.com/leocavalcante)) - **Fix: require auth when running goose on non loopback address** ([#6478](https://github.com/block/goose/pull/6478)) ([@michaelneale](https://github.com/michaelneale)) - **Fix: Improve error messages for invalid tool calls** ([#6483](https://github.com/block/goose/pull/6483)) ([@jasoncarr0](https://github.com/jasoncarr0)) - **Fix: make tool_call arguments optional and fix silent stream termination (OpenAI)** ([#6309](https://github.com/block/goose/pull/6309)) ([@rabi](https://github.com/rabi)) - **Fix: serialize record_result output as JSON in code_execution** ([#6495](https://github.com/block/goose/pull/6495)) ([@rabi](https://github.com/rabi)) - **Fix: 0 token in OpenRouter streaming** ([#6493](https://github.com/block/goose/pull/6493)) ([@lifeizhou-ap](https://github.com/lifeizhou-ap)) - **Fix: correctly parse extension name from tool call for MCP apps** ([#6482](https://github.com/block/goose/pull/6482)) ([@aharvard](https://github.com/aharvard)) - **Fix: deeplink UI repeat on refresh** ([#6469](https://github.com/block/goose/pull/6469)) ([@Yorisoft](https://github.com/Yorisoft)) - **Fix: popular topics not starting chat when clicked** ([#6508](https://github.com/block/goose/pull/6508)) ([@zanesq](https://github.com/zanesq)) - **Fix: don't add escaping to the command field** ([#6519](https://github.com/block/goose/pull/6519)) ([@jamadeo](https://github.com/jamadeo)) - **Fix: omit structured_content when None instead of serializing as null** ([#6499](https://github.com/block/goose/pull/6499)) ([@aharvard](https://github.com/aharvard)) - **Fix: update ui/message to use ContentBlock[] for content for MCP apps** ([#6546](https://github.com/block/goose/pull/6546)) ([@aharvard](https://github.com/aharvard)) - **Fix: Missing instructions in goose/CONTRIBUTING.md** ([#6565](https://github.com/block/goose/pull/6565)) - **Fix: scrollbar flicker in sidebar animation** ([#6564](https://github.com/block/goose/pull/6564)) ([@The-Best-Codes](https://github.com/The-Best-Codes)) - **Fix: sync all MCP prompt messages to session before agent reply** ([#6566](https://github.com/block/goose/pull/6566)) ([@angiejones](https://github.com/angiejones)) - **Fix: undo regressions for extension loading** ([#6568](https://github.com/block/goose/pull/6568)) ([@michaelneale](https://github.com/michaelneale)) - **Fix: resolved all the extensions to load in CLI** ([#6464](https://github.com/block/goose/pull/6464)) ([@lifeizhou-ap](https://github.com/lifeizhou-ap)) - **Fix: path for global agent skills** ([#6591](https://github.com/block/goose/pull/6591)) ([@emma-squared](https://github.com/emma-squared)) - **Fix: actually set the working dir for extensions from session** ([#6612](https://github.com/block/goose/pull/6612)) ([@zanesq](https://github.com/zanesq)) - **Fix: accumulated token count** ([#6587](https://github.com/block/goose/pull/6587)) ([@lifeizhou-ap](https://github.com/lifeizhou-ap)) - **Fix: propagate session_id across providers and MCP** ([#6584](https://github.com/block/goose/pull/6584)) ([@codefromthecrypt](https://github.com/codefromthecrypt)) - **Fix: fixed line breaks** ([#6459](https://github.com/block/goose/pull/6459)) ([@angiejones](https://github.com/angiejones)) ## Improvements - **Performance: avoid accumulating thoughtSignatures across conversation history (Google)** ([#6462](https://github.com/block/goose/pull/6462)) ([@rabi](https://github.com/rabi)) - **UI: Goose branding on desktop** ([#6563](https://github.com/block/goose/pull/6563)) ([@angiejones](https://github.com/angiejones)) - **UI: add back goose branding to home** ([#6617](https://github.com/block/goose/pull/6617)) ([@zanesq](https://github.com/zanesq)) - **UI: Update session name in UI in real-time** ([#6533](https://github.com/block/goose/pull/6533)) ([@arielahdoot](https://github.com/arielahdoot)) - **UI: Use Intl.NumberFormat for token formatting in SessionsInsights** ([#6466](https://github.com/block/goose/pull/6466)) ([@aharvard](https://github.com/aharvard)) - **Don't show MCP UI/Apps until tool is approved** ([#6492](https://github.com/block/goose/pull/6492)) ([@DOsinga](https://github.com/DOsinga)) - **Encourage extension searching** ([#6582](https://github.com/block/goose/pull/6582)) ([@michaelneale](https://github.com/michaelneale)) - **Upgrade rmcp** ([#6516](https://github.com/block/goose/pull/6516)) ([@alexhancock](https://github.com/alexhancock)) - **Remove unused dependencies in cargo.toml** ([#6561](https://github.com/block/goose/pull/6561)) ([@lsytj0413](https://github.com/lsytj0413)) - **Install goose-mcp crate dependencies** ([#6632](https://github.com/block/goose/pull/6632)) ([@jamadeo](https://github.com/jamadeo)) ## Documentation - **Add Ralph Loop tutorial for multi-model iterative development** ([#6455](https://github.com/block/goose/pull/6455)) ([@blackgirlbytes](https://github.com/blackgirlbytes)) - **Remove gitignore fallback from gooseignore docs** ([#6480](https://github.com/block/goose/pull/6480)) ([@emma-squared](https://github.com/emma-squared)) - **Fix extensions page** ([#6484](https://github.com/block/goose/pull/6484)) ([@dianed-square](https://github.com/dianed-square)) - **Manual config for JetBrains** ([#6490](https://github.com/block/goose/pull/6490)) ([@dianed-square](https://github.com/dianed-square)) - **ACP MCP support** ([#6491](https://github.com/block/goose/pull/6491)) ([@dianed-square](https://github.com/dianed-square)) - **Copilot instruction to flag prerelease docs** ([#6504](https://github.com/block/goose/pull/6504)) ([@dianed-square](https://github.com/dianed-square)) - **Clarify directory in /documentation readme** ([#6541](https://github.com/block/goose/pull/6541)) ([@dianed-square](https://github.com/dianed-square)) - **Temp correction for agent directory** ([#6544](https://github.com/block/goose/pull/6544)) ([@dianed-square](https://github.com/dianed-square)) - **Add short link for Council of Mine MCP tutorial** ([#6545](https://github.com/block/goose/pull/6545)) ([@EbonyJLouis](https://github.com/EbonyJLouis)) - **Add MCP sampling blog** ([#6547](https://github.com/block/goose/pull/6547)) ([@EbonyJLouis](https://github.com/EbonyJLouis)) - **Prevent docs deploy from being cancelled by PR previews** ([#6553](https://github.com/block/goose/pull/6553)) ([@blackgirlbytes](https://github.com/blackgirlbytes)) - **HTTP proxy environment variables** ([#6594](https://github.com/block/goose/pull/6594)) ([@dianed-square](https://github.com/dianed-square)) - **Max tokens config** ([#6596](https://github.com/block/goose/pull/6596)) ([@dianed-square](https://github.com/dianed-square)) - **Added goose doc map md file for goose agent to find relevant doc easily** ([#6598](https://github.com/block/goose/pull/6598)) ([@lifeizhou-ap](https://github.com/lifeizhou-ap)) - **Todo tutorial update** ([#6613](https://github.com/block/goose/pull/6613)) ([@dianed-square](https://github.com/dianed-square)) - **Tweak release docs** ([#6571](https://github.com/block/goose/pull/6571)) ([@michaelneale](https://github.com/michaelneale)) - **Mobile apps consolidation and roadmap blog** ([#6580](https://github.com/block/goose/pull/6580)) ([@michaelneale](https://github.com/michaelneale))