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))