mcp
Find a file
Filip Kujawa f971a6f167
Some checks are pending
Cargo Deny / deny (push) Waiting to run
Unused Dependencies / machete (push) Waiting to run
feat(core): build the compaction request as a cache prefix of the conversation
Record the last routed request's header (system prompt, tools) per
session in a bounded in-process registry, then build the summarization
request as that request plus the compaction instruction as the final
user message, with the prompt cache enabled and the session's thinking
config inherited. This replaces the standalone summarizer shape for
session compaction; a session with no recorded header summarizes the
same way with an empty header. The unused compaction.md template leaves
the template registry and docs; a stale user override warns toward
compaction_prefix.md and compaction_summary.md.

When the summarizer overflows, tool-response contents are elided
middle-out in progressively larger fractions, keeping every tool
request/response pair intact. A response that is not a summary (a tool
call, or no text) gets one corrective retry on the same cached prefix,
with rejected tool calls paired to stub results and a re-instruction;
a second rejection fails compaction with an error that carries the
billed usage of each rejected attempt, which every loop records per
attempt so cost is kept and the context gauge is not inflated.

Toolshim sessions convert tool traffic to text at send time (so elision
still sees native tool responses) and interpret the summarizer's
response like any session response, so a textual shim-protocol tool
call is rejected and corrected instead of accepted as the summary.
2026-08-20 16:40:04 -07:00
.cargo build: raise default stack reserve to 8 MB (#8234) 2026-04-02 13:54:52 +00:00
.devcontainer fix(devcontainer): install protoc to fix build (#3267) 2025-07-08 05:02:03 +08:00
.github add MCP conformance tests to goose CI (combines #10800 + #10801) (#10940) 2026-08-20 21:51:53 +00:00
.intersect [FEAT] Introduce PR level security scans (#968) 2025-01-31 17:08:12 +11:00
bin use pnpm for Desktop Electron App (#7679) 2026-03-11 12:46:05 +00:00
crates feat(core): build the compaction request as a cache prefix of the conversation 2026-08-20 16:40:04 -07:00
documentation feat(core): build the compaction request as a cache prefix of the conversation 2026-08-20 16:40:04 -07:00
evals/harbor fix(harbor): rename compare_tasks skill to a spec-valid name (#11068) 2026-08-12 08:31:36 +00:00
examples feat: Hooks (#9093) 2026-05-11 16:02:44 +00:00
oidc-proxy fix(oidc-proxy): enforce exp independently of MAX_TOKEN_AGE_SECONDS (#8832) (#8839) 2026-05-12 23:41:10 +00:00
recipe-scanner chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
scripts chore(deps): bump aiohttp from 3.14.1 to 3.14.3 in /scripts/provider-error-proxy (#10945) 2026-08-08 16:47:37 +02:00
services/ask-ai-bot feat: allow askai bot to read issues and PRs (#10398) 2026-07-11 23:07:17 +00:00
ui feat(desktop): sort configured providers to the top of the provider list (#11409) 2026-08-20 18:52:42 +00:00
vendor/v8 Fix Windows MSVC linking issues (#7511) 2026-02-25 22:59:32 +00:00
workflow_recipes/release_risk_check chore: Remove stale crates/goose-server and update docs (#10224) 2026-07-07 23:45:18 +00:00
.dockerignore Add Docker support for Goose in CI/CD pipelines (#4434) 2025-09-03 10:14:41 -04:00
.gitattributes Some system prompt tidying (#5313) 2025-10-24 20:22:27 -04:00
.gitignore add build and maven publish for kotlin ffi (#10375) 2026-07-14 16:55:57 +00:00
.goosehints fix: outdated clippy command in goosehints (#7590) 2026-02-28 12:47:39 +00:00
AGENTS.md Unrolled agent loop (#9574) 2026-08-06 22:32:44 +00:00
BUILDING_DOCKER.md chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
BUILDING_LINUX.md feat(installer): detect Termux and select musl portable build (#10568) 2026-08-05 10:16:23 -04:00
Cargo.lock chore(deps): bump pctx_code_mode from 0.4.1 to 0.5.0 (#11245) 2026-08-20 13:19:20 +00:00
Cargo.toml fix(update): fetch attestation bundles from bundle_url (#10557) 2026-08-20 12:33:17 +00:00
CLAUDE.md agents: add CLAUDE.mds to mirror AGENTS.mds (#9029) 2026-05-05 18:53:52 +00:00
clippy.toml Remove clippy too_many_lines lint and decompose long functions (#7064) 2026-02-07 04:10:24 +00:00
CODE_OF_CONDUCT.md docs: add Code of Conduct (#10424) 2026-07-14 17:32:21 +00:00
CONTRIBUTING.md Unrolled agent loop (#9574) 2026-08-06 22:32:44 +00:00
CUSTOM_DISTROS.md chore: Remove stale crates/goose-server and update docs (#10224) 2026-07-07 23:45:18 +00:00
deny.toml Disable thinking for tool call labels (#11207) 2026-08-19 23:23:18 +00:00
Dockerfile chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
download_cli.ps1 Add Windows CUDA release artifacts (#8750) 2026-04-27 19:51:11 +00:00
download_cli.sh feat(installer): detect Termux and select musl portable build (#10568) 2026-08-05 10:16:23 -04:00
flake.lock Set up direnv and update flake inputs (#6526) 2026-02-17 15:26:04 +00:00
flake.nix fix(flake): add cudaforge hash for git dependency (#10910) 2026-08-20 06:12:56 +00:00
goose-self-test.yaml feat(core): build the compaction request as a cache prefix of the conversation 2026-08-20 16:40:04 -07:00
GOVERNANCE.md chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
I18N.md feat(i18n): language selection feature (#9405) 2026-06-17 00:40:38 +00:00
Justfile add MCP conformance tests to goose CI (combines #10800 + #10801) (#10940) 2026-08-20 21:51:53 +00:00
LICENSE chore: Update LICENSE (#53) 2024-09-09 14:56:30 -04:00
MAINTAINERS.md bring MAINTAINERS.md up to date (#9053) 2026-05-06 14:56:44 +00:00
MERGE_FIXES.md Unrolled agent loop (#9574) 2026-08-06 22:32:44 +00:00
README.md docs: update Discord invite (#10863) 2026-07-31 22:49:19 +00:00
RELEASE.md chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
RELEASE_CHECKLIST.md Update release testing instructions (#10122) 2026-07-01 14:18:06 +00:00
rust-toolchain.toml Update Rust toolchain and raise recursion limit (#10303) 2026-07-07 22:41:04 +00:00
SECURITY.md chore(aaif): rename a bunch of repository references (#8152) 2026-04-07 15:34:48 +10:00
test_acp_client.py feat(acp): support loading sessions in acp (#5942) 2025-12-02 05:20:21 -06:00

goose

your native open source AI agent — desktop app, CLI, and API — for code, workflows, and everything in between

Discord CI Packaging status

aaif-goose%2Fgoose | Trendshift

goose is a general-purpose AI agent that runs on your machine. Not just for code — use it for research, writing, automation, data analysis, or anything you need to get done.

A native desktop app for macOS, Linux, and Windows. A full CLI for terminal workflows. An API to embed it anywhere. Built in Rust for performance and portability.

goose works with 15+ providers — Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, Bedrock, and more. Use API keys or your existing Claude, ChatGPT, or Gemini subscriptions via ACP. Connect to 70+ extensions via the Model Context Protocol open standard.

goose is part of the Agentic AI Foundation (AAIF) at the Linux Foundation.

Get started

Download the desktop app for macOS, Linux, and Windows.

Or install the CLI:

curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash

Quick links

Need help?

a little goose humor 🪿

Why did the developer choose goose as their AI agent?

Because it always helps them "migrate" their code to production! 🚀

goose around with us