goose CLI
Goose CLI is a powerful command-line tool that enables developers to interact with AI language models directly from their terminal environment. Built by Block, it provides seamless integration with various LLM providers, allowing users to execute AI-powered tasks, generate code, analyze files, and automate workflows without leaving their development environment. The tool features customizable prompts, session management, file processing capabilities, and support for multiple AI models. Goose CLI excels in code review automation, documentation generation, debugging assistance, and rapid prototyping scenarios. Its lightweight architecture and extensible plugin system make it ideal for developers seeking to integrate AI assistance into their daily workflows, CI/CD pipelines, and development processes while maintaining full control over their local environment.
Latest Releases
All releases- Prompt for goose mode during first-time configure [#12629](https://github.com/aaif-goose/goose/pull/12629)
- HTML session export with an interactive viewer [#11977](https://github.com/aaif-goose/goose/pull/11977)
๐ Bug Fixes
- Adaptive thinking for Claude Sonnet and Haiku 5.5 [#12761](https://github.com/aaif-goose/goose/pull/12761)
- Treat a client extension selection as the exact session set [#12548](https://github.com/aaif-goose/goose/pull/12548)
- Support hyphenated GPT 6.1 Sol effort aliases [#12689](https://github.com/aaif-goose/goose/pull/12689)
- Use a system Node.js in the Windows npx wrapper [#12176](https://github.com/aaif-goose/goose/pull/12176)
- Show thinking when GOOSECLISHOW_THINKING is set to any value [#12454](https://github.com/aaif-goose/goose/pull/12454)
- Price Databricks GLM aliases from the zhipuai catalog [#12673](https://github.com/aaif-goose/goose/pull/12673)
- Read messages from config for tom [#12634](https://github.com/aaif-goose/goose/pull/12634)
- Preserve the service total when folding cache input tokens for Bedrock [#12586](https://github.com/aaif-goose/goose/pull/12586)
- Refresh revoked Copilot tokens when listing models [#12627](https://github.com/aaif-goose/goose/pull/12627)
- Refresh revoked GitHub Copilot API token once [#12616](https://github.com/aaif-goose/goose/pull/12616)
- Recognize ASAR when validating update target [#12599](https://github.com/aaif-goose/goose/pull/12599)
- Stamp the implemented protocol version in initialize [#12580](https://github.com/aaif-goose/goose/pull/12580)
- Session naming/"none" reasoning effort fails for gpt-6.1-sol [#12605](https://github.com/aaif-goose/goose/pull/12605)
- Reflect loading state of chats [#12603](https://github.com/aaif-goose/goose/pull/12603)
- Read cache write tokens from Responses API usage [#12509](https://github.com/aaif-goose/goose/pull/12509)
๐ง Improvements
- Route every extension operation through a lease [#12723](https://github.com/aaif-goose/goose/pull/12723)
- Foreground subagents in the state machine loop [#12632](https://github.com/aaif-goose/goose/pull/12632)
- Resolve extensions into a per-inference lease [#12161](https://github.com/aaif-goose/goose/pull/12161)
- Remove Nostr session sharing from goose core [#12453](https://github.com/aaif-goose/goose/pull/12453)
- Detect vision support [#12594](https://github.com/aaif-goose/goose/pull/12594)
- Upgrade rust to 1.99.0 [#12714](https://github.com/aaif-goose/goose/pull/12714)
๐ Documentation
- Update Desktop permission mode instructions [#12626](https://github.com/aaif-goose/goose/pull/12626)
- Clarify self-serve LLM provider path [#12552](https://github.com/aaif-goose/goose/pull/12552)
- Resizable Picture-in-Picture window for MCP Apps [#12417](https://github.com/aaif-goose/goose/pull/12417)
- Fetch model metadata from models.dev live with bundled fallback [#12560](https://github.com/aaif-goose/goose/pull/12560)
- Quoting action to append selected conversation text to composer [#12536](https://github.com/aaif-goose/goose/pull/12536)
- Lean ACP-only Goose binary [#11961](https://github.com/aaif-goose/goose/pull/11961)
- Model discovery API for GDK Provider [#12497](https://github.com/aaif-goose/goose/pull/12497)
- Meta Muse Code provider [#11765](https://github.com/aaif-goose/goose/pull/11765)
- Support for Opus 5.5, GPT-6-sol, GPT-6-luna [#12447](https://github.com/aaif-goose/goose/pull/12447)
- Session rename command in CLI [#12236](https://github.com/aaif-goose/goose/pull/12236)
- Show working directory in session remove command [#12232](https://github.com/aaif-goose/goose/pull/12232)
- GDK agent loop runs on wasm32 [#12569](https://github.com/aaif-goose/goose/pull/12569)
๐ Bug Fixes
- Session naming and "none" reasoning effort for GPT-6.1-sol [#12605](https://github.com/aaif-goose/goose/pull/12605)
- Strip inert parameters from session snapshots in recipes [#11988](https://github.com/aaif-goose/goose/pull/11988)
- Preserve session context across reply lifecycle [#12516](https://github.com/aaif-goose/goose/pull/12516)
- Report max_tokens truncation and flush tool calls for Bedrock [#11872](https://github.com/aaif-goose/goose/pull/11872)
- Require a terminal for elicitation input in CLI [#12542](https://github.com/aaif-goose/goose/pull/12542)
- Keep tool results consecutive when OpenAI-compatible tool images are emitted [#12233](https://github.com/aaif-goose/goose/pull/12233)
- GDK tools with no args still advertise empty params input schema [#12527](https://github.com/aaif-goose/goose/pull/12527)
- Passing thinking effort to Ollama models [#12555](https://github.com/aaif-goose/goose/pull/12555)
- Estimate costs through canonical provider aliases [#11916](https://github.com/aaif-goose/goose/pull/11916)
- Resolve vision support from the canonical catalog for all providers [#12522](https://github.com/aaif-goose/goose/pull/12522)
- Send Databricks v2 Claude model services through the Anthropic route [#12486](https://github.com/aaif-goose/goose/pull/12486)
- Show tool output for tools without a priority annotation [#12436](https://github.com/aaif-goose/goose/pull/12436)
- Treat an unavailable prompt classifier as no signal [#12452](https://github.com/aaif-goose/goose/pull/12452)
- Guard MCP streamable-HTTP client redirects against SSRF [#11501](https://github.com/aaif-goose/goose/pull/11501)
- Resolve vision support from the canonical catalog in GDK so tool result images reach the model [#12440](https://github.com/aaif-goose/goose/pull/12440)
- Prevent Extension Manager from disabling itself [#12270](https://github.com/aaif-goose/goose/pull/12270)
- Rename deepseek-v4-flash to deepseek-flash [#12269](https://github.com/aaif-goose/goose/pull/12269)
- Auto-compact at tool boundaries in the unrolled agent loop [#12444](https://github.com/aaif-goose/goose/pull/12444)
- Remediate GHSA-6mg9-3cvh-9939 security vulnerability [#12537](https://github.com/aaif-goose/goose/pull/12537)
๐ง Improvements
- Suppress warning when ending on a successful tool call [#12468](https://github.com/aaif-goose/goose/pull/12468)
- Update rmcp to 3.4.1 [#12483](https://github.com/aaif-goose/goose/pull/12483)
- Remove MCP sampling code [#12193](https://github.com/aaif-goose/goose/pull/12193)
- Remove production code only reachable from tests [#12504](https://github.com/aaif-goose/goose/pull/12504)
- Pin remaining GitHub Actions to commit SHAs [#11989](https://github.com/aaif-goose/goose/pull/11989)
๐ Documentation
- Warn about keyring hang in unattended ACP environments [#12173](https://github.com/aaif-goose/goose/pull/12173)
- Route Desktop to state-machine loop via ACP prompt meta [#11247](https://github.com/aaif-goose/goose/pull/11247)
- EUrouter as a declarative provider [#11619](https://github.com/aaif-goose/goose/pull/11619)
- Connect external backend ACP socket to redirect-resolved backend URL [#11829](https://github.com/aaif-goose/goose/pull/11829)
- GPT-live API support [#12011](https://github.com/aaif-goose/goose/pull/12011)
- Operator allowlist for gateway pairing [#11979](https://github.com/aaif-goose/goose/pull/11979)
- Opt-in terminal bell when a turn finishes or approval is needed [#10182](https://github.com/aaif-goose/goose/pull/10182)
- Report real cause of external backend connection failures [#11828](https://github.com/aaif-goose/goose/pull/11828)
- Scope Toolshim to custom providers [#11414](https://github.com/aaif-goose/goose/pull/11414)
๐ Bug Fixes
- Treat auto-compact 100% as disabled [#11932](https://github.com/aaif-goose/goose/pull/11932)
- Validate recipes consistently in scheduler [#11561](https://github.com/aaif-goose/goose/pull/11561)
- MCP preferred version and HTTP retries [#12066](https://github.com/aaif-goose/goose/pull/12066)
- Require Developer extension for doctor command [#11437](https://github.com/aaif-goose/goose/pull/11437)
- Keep streamed thinking ahead of text and tool calls [#11837](https://github.com/aaif-goose/goose/pull/11837)
- Preserved-thinking compliance for Anthropic provider layer [#11836](https://github.com/aaif-goose/goose/pull/11836)
- Context management dependency resolution [#11768](https://github.com/aaif-goose/goose/pull/11768)
- Stop mapping Astra Off to reasoning.effort none [#11976](https://github.com/aaif-goose/goose/pull/11976)
- Return failure for interrupted headless runs [#11938](https://github.com/aaif-goose/goose/pull/11938)
- Send session ID header for OpenCode Go [#11944](https://github.com/aaif-goose/goose/pull/11944)
- Pair Google functionResponse names with preceding request [#11888](https://github.com/aaif-goose/goose/pull/11888)
- Show output for failed tool calls in desktop [#11940](https://github.com/aaif-goose/goose/pull/11940)
- Translate session actions menu in missing locales [#11894](https://github.com/aaif-goose/goose/pull/11894)
- Stop re-nudging on every tool call for goals [#11697](https://github.com/aaif-goose/goose/pull/11697)
- Bound image response bodies in developer extension [#11411](https://github.com/aaif-goose/goose/pull/11411)
- Bind MCP app tools to extension owners [#11416](https://github.com/aaif-goose/goose/pull/11416)
- Protect gateway pairing codes [#11427](https://github.com/aaif-goose/goose/pull/11427)
- Bound local audio resampling for dictation [#11379](https://github.com/aaif-goose/goose/pull/11379)
- Restrict session storage permissions [#11613](https://github.com/aaif-goose/goose/pull/11613)
- Build recipes from one validated snapshot [#11612](https://github.com/aaif-goose/goose/pull/11612)
- Filter scheduled session content [#11603](https://github.com/aaif-goose/goose/pull/11603)
- Stream chat completions by default for LiteLLM [#11870](https://github.com/aaif-goose/goose/pull/11870)
๐ง Improvements
- Preserve resource links that cannot be inlined in ACP [#11941](https://github.com/aaif-goose/goose/pull/11941)
- Remove planning mode from the CLI [#12061](https://github.com/aaif-goose/goose/pull/12061)
- Remove create recipe command in CLI [#11942](https://github.com/aaif-goose/goose/pull/11942)
- RTL support for chat content [#11851](https://github.com/aaif-goose/goose/pull/11851)
- Use ่ฏๅ /่ฉๅ for model tokens in Chinese localization [#11945](https://github.com/aaif-goose/goose/pull/11945)
- Guard recipe-before-inference ordering on scheduled runs [#11502](https://github.com/aaif-goose/goose/pull/11502)
๐ Documentation
- Remove Inkeep search integration [#12085](https://github.com/aaif-goose/goose/pull/12085)
- Clarify extension directory policy [#11923](https://github.com/aaif-goose/goose/pull/11923)
- RISC-V build support [#11933](https://github.com/aaif-goose/goose/pull/11933)
- Revert model updates for patch release
- Roll back MCP default version selection update [#6d8152a](https://github.com/aaif-goose/goose/commit/6d8152a99adbd149783d9d0cc2b43ce2755cca95)
Installation
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash