diff --git a/documentation/blog/2025-04-08-vibe-code-responsibly/index.md b/documentation/blog/2025-04-08-vibe-code-responsibly/index.md
index 16ba53789..b068fd4a0 100644
--- a/documentation/blog/2025-04-08-vibe-code-responsibly/index.md
+++ b/documentation/blog/2025-04-08-vibe-code-responsibly/index.md
@@ -139,4 +139,4 @@ Download [goose](https://goose-docs.ai/docs/getting-started/installation/), and
-
\ No newline at end of file
+
diff --git a/documentation/blog/2025-05-20-goose-gets-a-drivers-license/index.md b/documentation/blog/2025-05-20-goose-gets-a-drivers-license/index.md
index 0bd67d0df..796c2099e 100644
--- a/documentation/blog/2025-05-20-goose-gets-a-drivers-license/index.md
+++ b/documentation/blog/2025-05-20-goose-gets-a-drivers-license/index.md
@@ -110,7 +110,7 @@ This starts up a local web server (the command line output will tell you which p
## Goose learns how to drive!
-Following our [mbot MCP tutorial](/docs/mcp/mbot-mcp/) we can set up our MCP extension just like we ran our Java JAR file with the environment variables.
+Following the [mbotmcp project setup](https://github.com/deemkeen/mbotmcp), we can set up our MCP extension just like we ran our Java JAR file with the environment variables.
Now we can give Goose commands like "drive in a square pattern by making left turns and moving forward, and beeping before you turn" and it will send the commands to the mbot2 rover via MQTT.
diff --git a/documentation/blog/2026-02-23-goose-v1-25-0/index.md b/documentation/blog/2026-02-23-goose-v1-25-0/index.md
index f12f44ddd..3a905d1c6 100644
--- a/documentation/blog/2026-02-23-goose-v1-25-0/index.md
+++ b/documentation/blog/2026-02-23-goose-v1-25-0/index.md
@@ -20,7 +20,7 @@ Let's break down what's new.
**The headline feature of v1.25.0 is security sandboxing for goose Desktop on macOS.**
-When you give an AI agent access to your shell and file system, trust matters. With this release, goose Desktop now runs inside a [macOS sandbox](https://goose-docs.ai/docs/guides/sandbox) powered by [seatbelt](https://github.com/michaelneale/agent-seatbelt-sandbox), the same underlying technology Apple uses to sandbox its own apps.
+When you give an AI agent access to your shell and file system, trust matters. With this release, goose Desktop now runs inside a macOS sandbox powered by [seatbelt](https://github.com/michaelneale/agent-seatbelt-sandbox), the same underlying technology Apple uses to sandbox its own apps.
What does this mean in practice?
diff --git a/documentation/docs/getting-started/using-extensions.md b/documentation/docs/getting-started/using-extensions.md
index 954d66b6c..73ddd7cbf 100644
--- a/documentation/docs/getting-started/using-extensions.md
+++ b/documentation/docs/getting-started/using-extensions.md
@@ -33,13 +33,15 @@ goose operates autonomously by default. Combined with the Developer extension's
### Built-in Platform Extensions
-Platform extensions are built-in extensions that provide global features like conversation search, task tracking, and extension management. These extensions are always available and can be toggled on or off as needed.
+Platform extensions are built-in extensions that provide global features like code analysis, conversation search, task tracking, and extension management. They can be toggled on or off as needed.
+- [Analyze](/docs/guides/codebase-analysis): Analyze code structure, file details, and symbol call graphs (enabled by default)
- [Apps](/docs/mcp/apps-mcp): Create, manage, and launch custom HTML apps in standalone windows
- [Chat Recall](/docs/mcp/chatrecall-mcp): Search conversation content across all your session history
-- [Code Mode](/docs/mcp/code-mode-mcp): Execute JavaScript code for tool discovery and tool calling
+- [Code Mode](/docs/mcp/code-mode-mcp): Execute JavaScript code for tool discovery and tool calling, when included in the current build
- [Extension Manager](/docs/mcp/extension-manager-mcp): Discover, enable, and disable extensions dynamically during sessions (enabled by default)
-- [Summon](/docs/mcp/summon-mcp): Load skills and recipes, and delegate tasks to subagents (enabled by default)
+- [Skills](/docs/guides/context-engineering/using-skills): Discover and load skill instructions from built-in and filesystem skills (enabled by default)
+- [Summon](/docs/mcp/summon-mcp): Load knowledge sources and delegate tasks to subagents (enabled by default)
- [Todo](/docs/mcp/todo-mcp): Manage task lists and track progress across sessions (enabled by default)
- [Top of Mind](/docs/mcp/tom-mcp): Inject persistent instructions into goose's working memory every turn
diff --git a/documentation/docs/guides/codebase-analysis.md b/documentation/docs/guides/codebase-analysis.md
index c4037b3f9..87f55461a 100644
--- a/documentation/docs/guides/codebase-analysis.md
+++ b/documentation/docs/guides/codebase-analysis.md
@@ -5,7 +5,7 @@ description: Understand codebases with semantic analysis and call graphs
sidebar_position: 111
---
-The [Developer extension](/docs/mcp/developer-mcp) includes an `analyze` tool that helps you understand code structure, track symbol usage, and explore call graphs across your codebase. It's automatically available when the Developer extension is enabled and supports file types for [multiple programming languages](https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/developer/analyze/languages/mod.rs).
+The Analyze platform extension provides an `analyze` tool that helps you understand code structure, track symbol usage, and explore call graphs across your codebase. It is enabled by default and supports file types for [multiple programming languages](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/agents/platform_extensions/analyze/languages.rs).
Example analysis: Tracking a function across files
@@ -103,13 +103,13 @@ analyze path="." focus="UserClass" follow_depth=3
| `focus` | None | Name of the symbol to track. For cross-file tracking, `path` must be a directory. |
| `follow_depth` | 2 | How many steps to trace from the focused symbol (0=where defined, 1=immediate callers/callees, 2=their callers/callees, etc.). Used with the `focus` parameter. |
| `max_depth` | 3 | How many subdirectory levels to analyze when `path` is a directory (0=unlimited) |
-| `force` | false | Receive full analysis results (otherwise, only a warning message is shown when the results exceed 1000 lines) |
+| `force` | false | Receive full analysis results (otherwise, only a warning message is shown when the results exceed 50,000 characters) |
## Best Practices
### Handling Large Outputs
-If the analysis results exceed 1000 lines, the tool returns a warning message instead of the analysis. Options for managing large outputs:
+If the analysis results exceed 50,000 characters, the tool returns a warning message instead of the analysis. Options for managing large outputs:
- **Use `force=true`** to bypass the warning and see the full output (may consume significant conversation context)
- **Narrow your scope** by analyzing a specific subdirectory or file
@@ -120,4 +120,4 @@ If the analysis results exceed 1000 lines, the tool returns a warning message in
- Start with smaller scopes (specific files or subdirectories) before analyzing entire projects
- Use `max_depth=1` or `max_depth=2` to limit directory traversal depth
-- Use `.gitignore` files to exclude unnecessary files from analysis, such as `node_modules/` and build artifacts
\ No newline at end of file
+- Use `.gitignore` files to exclude unnecessary files from analysis, such as `node_modules/` and build artifacts
diff --git a/documentation/docs/guides/context-engineering/prompt-templates.md b/documentation/docs/guides/context-engineering/prompt-templates.md
index dcca2421b..2ade1cf6f 100644
--- a/documentation/docs/guides/context-engineering/prompt-templates.md
+++ b/documentation/docs/guides/context-engineering/prompt-templates.md
@@ -98,6 +98,8 @@ The following default templates can be customized.
| [plan.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/plan.md) | Instructions for creating detailed, actionable plans with clarifying questions | CLI only |
| [recipe.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/recipe.md) | Prompt for generating recipe files from conversations | Desktop and CLI |
| [subagent_system.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/subagent_system.md) | System prompt for subagents spawned to handle specific tasks | Desktop and CLI |
+| [tiny_model_system.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/tiny_model_system.md) | System prompt for tiny local models using shell command emulation | CLI |
+| [session_name.md](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompts/session_name.md) | Prompt for generating short session names from conversation history | Desktop and CLI |
Customizable templates are enumerated in the `TEMPLATE_REGISTRY` array in [`prompt_template.rs`](https://github.com/aaif-goose/goose/blob/main/crates/goose/src/prompt_template.rs).
diff --git a/documentation/docs/guides/context-engineering/using-skills.md b/documentation/docs/guides/context-engineering/using-skills.md
index c0425d5d7..d964fc70d 100644
--- a/documentation/docs/guides/context-engineering/using-skills.md
+++ b/documentation/docs/guides/context-engineering/using-skills.md
@@ -7,17 +7,21 @@ sidebar_label: Agent Skills
Skills are reusable sets of instructions and resources that teach goose how to perform specific tasks. A skill can range from a simple checklist to a detailed workflow with domain expertise, and can include supporting files like scripts or templates. Example use cases include deployment procedures, code review checklists, and API integration guides.
:::info
-This functionality requires the built-in [Summon extension](/docs/mcp/summon-mcp), available in v1.25.0+.
+This functionality uses the built-in Skills platform extension, which is enabled by default.
:::
-When a session starts, goose adds any skills that it discovers to its instructions. During the session, goose automatically loads a skill when:
+When a session starts, goose adds discovered skill names and descriptions to its instructions. During the session, goose can load a skill's full instructions when:
- Your request clearly matches a skill's purpose
- You explicitly ask to use a skill, for example:
- "Use the code-review skill to review this PR"
- "Follow the new-service skill to set up the auth service"
- "Apply the deployment skill"
-You can also ask goose what skills are available, or use the CLI `/skills` command to list available skills and load one or more by name (e.g. `/skills code-review edge-case-finder`).
+You can also ask goose what skills are available, run `goose skills list`, or use the CLI `/skills` command to list available skills and load one or more by name:
+
+```bash
+/skills code-review edge-case-finder
+```
:::info Claude Compatibility
goose skills are compatible with Claude Desktop and other [agents that support Agent Skills](https://agentskills.io/home#adoption).
diff --git a/documentation/docs/guides/goose-cli-commands.md b/documentation/docs/guides/goose-cli-commands.md
index af3d1babd..d02b821c9 100644
--- a/documentation/docs/guides/goose-cli-commands.md
+++ b/documentation/docs/guides/goose-cli-commands.md
@@ -8,7 +8,7 @@ toc_max_heading_level: 4
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-goose provides a command-line interface (CLI) with several commands for managing sessions, configurations and extensions. This guide covers all available CLI commands and interactive session features.
+goose provides a command-line interface (CLI) with commands for managing sessions, configurations and extensions. This guide covers the main CLI commands and interactive session features.
## Flag Naming Conventions
@@ -466,6 +466,51 @@ goose run --recipe recipe.yaml --max-turns 10
---
+#### review [options] [range]
+Review the current git diff using goose. By default, `goose review` reviews the working tree against `HEAD`; pass a range such as `main...HEAD` to review a specific diff.
+
+`goose review` can discover review checks from `.agents/checks/*.md` and scoped review instructions from `.agents/REVIEW.md`.
+
+**Options:**
+- **`--prompt `**: Use a custom base review prompt
+- **`--model `**: Set the default model for the main review agent and checks that do not declare their own model
+- **`--provider `**: Set the provider for the main review agent
+- **`--override-model `**: Force every discovered check to use this model
+- **`--turn-limit `**: Set the default turn limit for orchestrated review subprocesses and checks
+- **`--dry-run`**: Print the assembled review prompt and discovered checks without running the review
+- **`-q, --quiet`**: Suppress non-result output from the underlying agent
+- **`--no-orchestrate`**: Disable the default Rust-driven parallel orchestrator and use the single-prompt path
+- **`-i, --instructions `**: Add free-form review instructions
+- **`-f, --files ...`**: Restrict the review to specific files
+- **`-c, --check-filter ...`**: Run only checks with matching names
+- **`-s, --check-scope `**: Search a specific directory for `.agents/checks/*.md`
+- **`--checks-only`**: Skip the main correctness pass and run only check subagents
+- **`--summary-only`**: Print only the diff summary
+- **`--severity `**: Minimum severity to display. Defaults to `medium`; use `low` to show every finding
+
+**Usage:**
+```bash
+# Review the working tree against HEAD
+goose review
+
+# Review a branch range
+goose review main...HEAD
+
+# Add review intent
+goose review --instructions "This is a refactor; flag behavior changes"
+
+# Review only selected files
+goose review --files crates/goose/src/agents/agent.rs documentation/docs/guides/goose-cli-commands.md
+
+# Preview the assembled prompt and discovered checks
+goose review --dry-run
+
+# Run only named checks
+goose review --check-filter security performance --checks-only
+```
+
+---
+
#### recipe
Used to validate recipe files, manage recipe sharing, list available recipes, and open recipes in goose desktop.
@@ -538,6 +583,52 @@ Installed plugins are stored under `~/.agents/plugins//`. For more
---
+#### skills
+List skills available to the goose agent.
+
+**Commands:**
+- **`list`**: List installed and discoverable skills, including token counts and source locations
+
+**Usage:**
+```bash
+goose skills list
+```
+
+---
+
+#### local-models
+Search, download, list, and delete local inference models.
+
+:::info
+This command is available in goose builds that include local inference support.
+:::
+
+**Commands:**
+- **`search `**: Search Hugging Face for compatible GGUF and MLX models
+ - **`-l, --limit `**: Maximum number of results to show. Defaults to `10`
+- **`download `**: Download and register a model from a search result, such as `user/repo:Q4_K_M`
+- **`list`**: List downloaded local models
+- **`delete `**: Delete a downloaded local model
+
+**Alias:** `lm`
+
+**Usage:**
+```bash
+# Search for local models
+goose local-models search qwen --limit 5
+
+# Download a model from a search result
+goose local-models download 'user/repo:Q4_K_M'
+
+# List downloaded models
+goose local-models list
+
+# Delete a downloaded model
+goose local-models delete user/repo:Q4_K_M
+```
+
+---
+
#### schedule
Automate recipes by running them on a [schedule](/docs/guides/recipes/session-recipes.md#schedule-recipe).
@@ -603,10 +694,40 @@ This command is automatically invoked by ACP-compatible clients and is not typic
---
+#### serve [options]
+Start goose as an Agent Client Protocol (ACP) server over HTTP and WebSocket.
+
+**Options:**
+- **`--host `**: Host to bind to. Defaults to `127.0.0.1`
+- **`--port `**: Port to listen on. Defaults to `3284`
+- **`--with-builtin `**: Enable built-in extensions by name. Can be passed multiple times or as a comma-separated list. Defaults to `developer` when omitted.
+- **`--dangerously-unauthenticated`**: Run without ACP authentication. Use only for local trusted clients.
+
+**Usage:**
+```bash
+# Set a secret before starting the server
+export GOOSE_SERVER__SECRET_KEY=$(openssl rand -hex 32)
+
+# Start the ACP server on localhost:3284
+goose serve
+
+# Bind to a different host and port
+goose serve --host 0.0.0.0 --port 3284
+
+# Start with specific built-in extensions
+goose serve --with-builtin developer,memory
+```
+
+:::warning
+`goose serve` requires `GOOSE_SERVER__SECRET_KEY` unless you pass `--dangerously-unauthenticated`. Only use `--dangerously-unauthenticated` with local trusted clients.
+:::
+
+---
+
### Project Management
#### project
-Start working on your last project or create a new one. For detailed usage examples and workflows, see [Managing Projects Guide](/docs/guides/managing-projects).
+Start working on your last project or create a new one.
**Alias**: `p`
@@ -631,8 +752,42 @@ goose projects
### Terminal Integration
+#### term
+Set up and use terminal-integrated sessions. Terminal integration gives each shell a persistent goose session through `AGENT_SESSION_ID`, and can create the `@goose` and `@g` aliases.
+
+**Commands:**
+- **`init `** - Print the shell integration script for `bash`, `zsh`, `fish`, `nu`, or `powershell`
+- **`run `** - Send a prompt to the terminal-integrated session
+- **`info`** - Print compact session information for shell prompt integration
+
+**Options:**
+- **`-n, --name `** - Set the terminal session name when running `init`
+- **`--default`** - Ask goose to handle unknown commands in supported shells
+
+**Usage:**
+```bash
+# Set up zsh integration
+eval "$(goose term init zsh)"
+
+# Set up zsh integration and ask goose about unknown commands
+eval "$(goose term init zsh --default)"
+
+# Set up nushell integration
+let init = ($nu.cache-dir | path join "goose-term-init.nu")
+goose term init nu | save --force $init
+source $init
+
+# Send a prompt to the current terminal session
+goose term run why did the last command fail
+
+# Print session info for prompt integration
+goose term info
+```
+
+---
+
#### @goose / @g
-Ask goose questions directly from your shell prompt, with command history included in the context. These aliases are created when you set up [terminal integration](/docs/guides/terminal-integration.md).
+Ask goose questions directly from your shell prompt, with command history included in the context. These aliases are created by `goose term init` when you set up [terminal integration](/docs/guides/terminal-integration.md).
**Examples:**
```bash
@@ -664,7 +819,7 @@ Once you're in an interactive session (via `goose session` or `goose run --inter
- **`/recipe [filepath]`** - Generate a recipe from the current conversation and save it to the specified filepath (must end with .yaml). If no filepath is provided, it will be saved to ./recipe.yaml
- **`/compact`** - Compact and summarize the current conversation to reduce context length while preserving key information
- **`/r`** - Toggle full tool output display (show complete tool parameters without truncation)
-- **`/skills`** - List available skills
+- **`/skills [...]`** - List available skills, or load one or more skills by name
- **`/t`** - Toggle between `light`, `dark`, and `ansi` themes. [More info](#themes).
- **`/t `** - Set theme directly (light, dark, ansi)
diff --git a/documentation/docs/guides/managing-projects.md b/documentation/docs/guides/managing-projects.md
deleted file mode 100644
index e56751b91..000000000
--- a/documentation/docs/guides/managing-projects.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-sidebar_position: 5
-title: Managing Projects
-sidebar_label: Managing Projects
----
-
-goose Projects automatically track your working directories and associated sessions, making it easy to resume work across multiple codebases with full context preservation.
-
-A **project** in goose is a record of a working directory where you've used goose. Every time you run goose, it automatically tracks the current directory as a project, storing:
-
-- **Path**: The absolute path to the project directory
-- **Last accessed**: When you last worked on this project
-- **Last instruction**: The most recent command you gave to goose
-- **Session ID**: The associated session for context continuity
-
-Projects are stored in `~/.local/share/goose/projects.json`.
-
-:::info CLI Only Feature
-Projects are currently available only through the goose CLI. Desktop support is planned for future releases.
-:::
-
-## Basic Usage
-
-**Resume your most recent project:**
-
-```bash
-goose project
-```
-
-**Browse all your projects:**
-
-```bash
-goose projects
-```
-:::tip
-When resuming a project, you can continue the previous session or start fresh in that directory.
-:::
-
-For complete command syntax and options, see the [CLI Commands Guide](/docs/guides/goose-cli-commands#project).
-
-## Workflow Example
-
-Let's follow Sarah, a developer working on multiple projects throughout her day:
-
-### Morning: API Development
-```bash
-cd ~/projects/ecommerce-api
-goose session --name "api-auth-work"
-```
-*Sarah asks goose to help implement JWT token refresh logic*
-
-### Mid-Morning: Mobile App Bug Fix
-```bash
-cd ~/projects/mobile-app
-goose session
-```
-*Sarah gets help debugging an iOS crash in the login screen*
-
-### Afternoon: Admin Dashboard
-```bash
-cd ~/projects/admin-dashboard
-goose session --name "dashboard-ui"
-```
-*Sarah works on creating user management interface components*
-
-### Next Day: Quick Resume
-```bash
-# From any directory, quickly resume the most recent project
-goose project
-```
-
-goose shows:
-```
-┌ goose Project Manager
-│
-◆ Choose an option:
-│ ○ Resume project with session: .../admin-dashboard
-│ Continue with the previous session
-│ ○ Resume project with fresh session: .../admin-dashboard
-│ Change to the project directory but start a new session
-│ ○ Start new project in current directory: /Users/sarah
-│ Stay in the current directory and start a new session
-└
-```
-
-### Later: Browse All Projects
-```bash
-goose projects
-```
-
-goose displays:
-```
-┌ goose Project Manager
-│
-◆ Select a project:
-│ ○ 1 .../admin-dashboard (2025-01-07 09:15:30) [create user management interface]
-│ ○ 2 .../mobile-app (2025-01-06 11:45:20) [login screen crashing on iOS]
-│ ○ 3 .../ecommerce-api (2025-01-06 09:30:15) [JWT token refresh logic]
-│ ○ Cancel
-└
-```
-
-Sarah can see her recent projects with timestamps and context, making it easy to choose where to continue working.
-
-## Benefits
-
-:::tip Time Savings
-Projects eliminate the typical 2-5 minutes lost when switching between codebases, especially valuable for developers working on multiple projects daily.
-:::
-
-- **Eliminate context switching friction** - Jump between projects instantly without manual navigation
-- **Preserve work context** - Resume exactly where you left off with full conversation history
-- **Seamless session integration** - Maintain continuity across different codebases
-
diff --git a/documentation/docs/guides/sandbox.md b/documentation/docs/guides/sandbox.md
deleted file mode 100644
index f25b9dc62..000000000
--- a/documentation/docs/guides/sandbox.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-title: macOS Sandbox for goose Desktop
-sidebar_label: Sandbox for goose Desktop
-description: Optional sandboxing for goose Desktop to control file access, filter network traffic, and enforce security policies on macOS
----
-
-goose Desktop includes an optional macOS sandbox that you can enable when you need stricter control and visibility over what goose can access on your system. Use it to:
-
-- **Restrict file system access** — Block writes to SSH keys, shell configs, and goose configuration files
-- **Control network connections** — Force all traffic through a filtering proxy that blocks unapproved domains
-- **Prevent security bypasses** — Block tunneling tools, raw sockets, and other techniques that could circumvent restrictions
-- **Audit and enforce policies** — Log all network activity and enforce compliance requirements
-
-goose runs with full tool access, but the sandbox uses two layers of protection:
-- **File access control** - Apple's `sandbox-exec` restricts file and network access at the system level
-- **Outbound connections** - A local egress proxy filters and logs outgoing connections
-
-:::info macOS Requirement
-The sandbox relies on `/usr/bin/sandbox-exec`, which is only available on macOS and is also known as Apple's seatbelt technology.
-:::
-
-## Quick Start
-
-To enable the sandbox, launch goose Desktop from the terminal with the environment variable set. For example:
-
-```bash
-export GOOSE_SANDBOX=true
-open -a Goose
-```
-
-When the app starts with sandboxing enabled, it will:
-
-1. Generate a seatbelt sandbox profile
-2. Start a local HTTP CONNECT proxy on localhost
-3. Launch the `goosed` backend for goose Desktop inside `sandbox-exec`, forcing all traffic through the proxy
-
-The sandbox remains active until you quit goose Desktop. To disable it, quit the app and relaunch normally (or set `GOOSE_SANDBOX=false` when opening from the terminal).
-
-## Configuration
-
-All configuration is via environment variables. Defaults are designed to be secure out of the box, but you can adjust them to match your security requirements.
-
-### Core
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `GOOSE_SANDBOX` | `false` | Set to `true` or `1` to enable the sandbox. See [Quick Start](#quick-start) for launch instructions. |
-
-----
-
-### File System
-
-The [seatbelt sandbox profile](https://github.com/aaif-goose/goose/blob/main/ui/desktop/src/sandbox/index.ts) blocks write operations to these sensitive files:
-
-- `~/.ssh/` - Prevent SSH key tampering
-- `~/.bashrc`, `~/.zshrc`, `~/.bash_profile`, `~/.zprofile` - Prevent shell config injection
-- `~/.config/goose/sandbox/` - Protect sandbox config from the sandboxed process
-- `~/.config/goose/config.yaml` - Protect goose config
-
-
-#### Environment Variables
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `GOOSE_SANDBOX_PROTECT_FILES` | `true` | Write-protect sensitive files listed above. Set to `false` to disable |
-
-----
-
-### Direct Network Access
-
-The seatbelt sandbox denies all direct network access, forcing traffic through the proxy. The only allowed connections are:
-
-- **Localhost** — Allows the `goosed` process to reach the egress proxy and its own server port
-- **Unix sockets** — For local inter-process communication (IPC)
-- **mDNSResponder** — For DNS resolution
-
-:::info Not Configurable
-These restrictions are always active when the sandbox is enabled.
-:::
-
-----
-
-### Process Restrictions
-
-The seatbelt sandbox blocks tools and system calls that could bypass security controls:
-
-- **Tunneling tools** — `nc`, `ncat`, `netcat`, `socat`, `telnet` are blocked to prevent bypassing the proxy
-- **Raw sockets** — `SOCK_RAW` on `AF_INET`/`AF_INET6` is blocked to prevent raw packet crafting
-- **Kernel extensions** — `system-kext-load` is denied
-
-#### Environment Variables
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `GOOSE_SANDBOX_BLOCK_RAW_SOCKETS` | `true` | Block `SOCK_RAW`. Set to `false` to disable |
-| `GOOSE_SANDBOX_BLOCK_TUNNELING` | `true` | Block `nc`/`netcat`/`socat`/`telnet`. Set to `false` to disable |
-
-----
-
-### Network Filtering
-
-The egress proxy inspects and filters all outgoing connections. You can customize filtering rules through the blocklist file and configuration variables.
-
-The egress proxy checks connections in this order:
-
-1. **Loopback detection** — Prevents using the proxy as a relay back to localhost
-2. **Raw IP blocking** — Connections to bare IP addresses (no domain) are blocked
-3. **Domain blocklist** — Domains listed in `blocked.txt` are denied (including all subdomains)
-4. **SSH/Git host restrictions** — SSH ports (22, 2222, 7999) are restricted to known git hosts
-
-For optional LaunchDarkly-based egress control, see [LaunchDarkly](#launchdarkly-optional).
-
-#### Environment Variables
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `GOOSE_SANDBOX_ALLOW_IP` | `false` | Set to `true` to allow connections to raw IP addresses |
-| `GOOSE_SANDBOX_BLOCK_LOOPBACK` | `false` | Set to `true` to block loopback relay through the proxy |
-| `GOOSE_SANDBOX_ALLOW_SSH` | `true` | Set to `false` to block all SSH traffic |
-| `GOOSE_SANDBOX_GIT_HOSTS` | built-in list | Comma-separated list of allowed SSH git hosts (e.g. `github.com,gitlab.com`) |
-| `GOOSE_SANDBOX_SSH_ALL_HOSTS` | `false` | Set to `true` to allow SSH to any host (not just git hosts) |
-
-#### Managing the Domain Blocklist
-
-The file `~/.config/goose/sandbox/blocked.txt` controls which domains are blocked by the proxy. It's created automatically on first run from a bundled template.
-
-```
-# One domain per line. Subdomains are blocked automatically.
-# Lines starting with # are comments.
-evil.com # blocks evil.com and *.evil.com
-pastebin.com
-transfer.sh
-webhook.site
-```
-
-:::tip Live Reload
-Changes to `blocked.txt` take effect immediately — the proxy watches the file with `fs.watch` and reloads it automatically. No restart needed.
-:::
-
-#### Using Git Over SSH
-
-SSH git operations (e.g. `git clone git@github.com:...`) work through the sandbox via a bundled `connect-proxy.pl` script that acts as an SSH `ProxyCommand`. This routes SSH connections through the egress proxy, which then applies the same allowlist rules.
-
-By default, SSH is only allowed to well-known git hosting domains (e.g. GitHub, GitLab, Bitbucket). To customize:
-
-```bash
-# Add custom git hosts
-export GOOSE_SANDBOX_GIT_HOSTS="github.com,gitlab.com,your-gitea.internal.com"
-
-# Or allow SSH to all hosts
-export GOOSE_SANDBOX_SSH_ALL_HOSTS=true
-```
-
-----
-
-### LaunchDarkly (Optional)
-
-For enterprise environments, LaunchDarkly provides optional dynamic egress control. If not configured, the sandbox uses the local `blocked.txt` blocklist.
-
-#### Environment Variables
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `LAUNCHDARKLY_CLIENT_ID` | — | LD client SDK key to enable dynamic egress control |
-| `GOOSE_SANDBOX_LD_FAILOVER` | — | Failover mode if LD is unreachable: `allow`, `deny`, or `blocklist` |
-
-## Example Configurations
-
-### Maximum security
-
-```bash
-export GOOSE_SANDBOX=true
-# All protections enabled (defaults)
-```
-
-### Allow raw IP connections (e.g. for internal APIs)
-
-```bash
-export GOOSE_SANDBOX=true
-export GOOSE_SANDBOX_ALLOW_IP=true
-```
-
-### Disable SSH entirely
-
-```bash
-export GOOSE_SANDBOX=true
-export GOOSE_SANDBOX_ALLOW_SSH=false
-```
-
-### Relaxed mode (fewer restrictions)
-
-```bash
-export GOOSE_SANDBOX=true
-export GOOSE_SANDBOX_PROTECT_FILES=false
-export GOOSE_SANDBOX_BLOCK_RAW_SOCKETS=false
-export GOOSE_SANDBOX_BLOCK_TUNNELING=false
-export GOOSE_SANDBOX_ALLOW_IP=true
-export GOOSE_SANDBOX_SSH_ALL_HOSTS=true
-```
-
-### With LaunchDarkly egress control
-
-```bash
-export GOOSE_SANDBOX=true
-export LAUNCHDARKLY_CLIENT_ID=sdk-your-key-here
-export GOOSE_SANDBOX_LD_FAILOVER=blocklist # fall back to local blocklist if LD is down
-```
-
-## Troubleshooting
-
-- **Error: "GOOSE_SANDBOX=true but sandbox-exec is not available (macOS only)"**
- You're not on macOS, or `/usr/bin/sandbox-exec` is missing. The sandbox only works on macOS.
-
-- **Extensions or tools can't reach the network**
- Check if the destination domain is in `~/.config/goose/sandbox/blocked.txt`, or if you need to enable `GOOSE_SANDBOX_ALLOW_IP=true` for IP-based endpoints.
-
-- **git clone over SSH fails**
- The target host may not be in the default Git hosts allowlist. Add it with `GOOSE_SANDBOX_GIT_HOSTS=your-host.com` or set `GOOSE_SANDBOX_SSH_ALL_HOSTS=true`.
-
-- **Want to inspect what the proxy is blocking?**
- Check the [Desktop application logs](/docs/guides/logs#desktop-application-log). Blocked connections are logged with the prefix `[sandbox-proxy]` and include the reason for blocking.
-
diff --git a/documentation/docs/guides/security/index.mdx b/documentation/docs/guides/security/index.mdx
index 917d49992..8aa90acaf 100644
--- a/documentation/docs/guides/security/index.mdx
+++ b/documentation/docs/guides/security/index.mdx
@@ -30,11 +30,6 @@ import styles from '@site/src/components/Card/styles.module.css';
description="API specification for self-hosting ML-based prompt injection detection endpoints."
link="/docs/guides/security/classification-api-spec"
/>
-
diff --git a/documentation/docs/guides/sessions/session-management.md b/documentation/docs/guides/sessions/session-management.md
index b7ae3b702..9c86db6dc 100644
--- a/documentation/docs/guides/sessions/session-management.md
+++ b/documentation/docs/guides/sessions/session-management.md
@@ -329,7 +329,7 @@ While you can resume sessions, we recommend creating new sessions for new tasks
Project-based sessions are only available through the CLI.
- You can use the [`project`](/docs/guides/goose-cli-commands#project) and [`projects`](/docs/guides/goose-cli-commands#projects) commands to start or resume sessions from a project, which is a tracked working directory with session metadata. For a complete guide to using Projects, see [Managing Projects Guide](/docs/guides/managing-projects).
+ You can use the [`project`](/docs/guides/goose-cli-commands#project) and [`projects`](/docs/guides/goose-cli-commands#projects) commands to start or resume sessions from a project, which is a tracked working directory with session metadata.
diff --git a/documentation/docs/guides/sessions/smart-context-management.md b/documentation/docs/guides/sessions/smart-context-management.md
index 64b7038e7..a8637e86d 100644
--- a/documentation/docs/guides/sessions/smart-context-management.md
+++ b/documentation/docs/guides/sessions/smart-context-management.md
@@ -19,13 +19,13 @@ When working with [Large Language Models (LLMs)](/docs/getting-started/providers
## How goose Manages Context
goose uses a two-tiered approach to context management:
-1. **Auto-Compaction**: Proactively summarizes conversation when approaching token limits
+1. **Auto-Compaction**: Proactively compacts conversation history when approaching token limits
2. **Context Strategies**: Backup strategy used if the context limit is still exceeded after auto-compaction
This layered approach lets goose handle token and context limits gracefully.
## Automatic Compaction
-goose automatically compacts (summarizes) older parts of your conversation when approaching token limits, allowing you to maintain long-running sessions without manual intervention.
+goose automatically compacts older parts of your conversation into a summary when approaching token limits, allowing you to maintain long-running sessions without manual intervention.
Auto-compaction is triggered by default when you reach 80% of the token limit in goose Desktop and the goose CLI.
Control the auto-compaction behavior with the `GOOSE_AUTO_COMPACT_THRESHOLD` [environment variable](/docs/guides/environment-variables.md#session-management).
@@ -39,14 +39,14 @@ export GOOSE_AUTO_COMPACT_THRESHOLD=0.6
When you reach the auto-compaction threshold:
1. goose will automatically start compacting the conversation to make room.
2. Once complete, you'll see a confirmation message that the conversation was compacted and summarized.
- 3. Continue the session. Your previous conversation remains visible, but only the compacted conversion is included in the active context for goose.
+ 3. Continue the session. Your previous conversation remains visible, but only the compacted conversation is included in the active context for goose.
:::tip Customize Compaction
You can customize how goose summarizes conversations during compaction by editing the `compaction.md` [prompt template](/docs/guides/context-engineering/prompt-templates).
:::
:::tip Tool Output Summarization
-To help maintain efficient context usage, goose summarizes older tool call outputs in the background while keeping recent calls in full detail. By default, this happens when you have more than 10 tool calls in a session. For advanced tuning, see [`GOOSE_TOOL_CALL_CUTOFF`](/docs/guides/environment-variables#session-management).
+To help maintain efficient context usage, goose summarizes older tool call outputs in the background while keeping recent calls in full detail. By default, goose computes the cutoff from the model context limit and auto-compaction threshold. For advanced tuning, see [`GOOSE_TOOL_CALL_CUTOFF`](/docs/guides/environment-variables#session-management).
:::
### Manual Compaction
@@ -58,7 +58,7 @@ You can also trigger compaction manually before reaching context or token limits
1. Point to the token usage indicator dot next to the model name at the bottom of the app
2. Click `Compact now` in the context window that appears
3. Once complete, you'll see a confirmation message that the conversation was compacted and summarized.
- 4. Continue the session. Your previous conversation remains visible, but only the compacted conversion is included in the active context for goose.
+ 4. Continue the session. Your previous conversation remains visible, but only the compacted conversation is included in the active context for goose.
:::info
You must send at least one message in the chat before the `Compact now` button is enabled.
@@ -67,18 +67,20 @@ You can also trigger compaction manually before reaching context or token limits
-To proactively trigger summarization before reaching context limits, use the `/summarize` command:
+To proactively compact the conversation before reaching context limits, use the `/compact` command:
```sh
-( O)> /summarize
-◇ Are you sure you want to summarize this conversation? This will condense the message history.
+( O)> /compact
+◇ Are you sure you want to compact this conversation? This will condense the message history.
│ Yes
│
-Summarizing conversation...
-Conversation has been summarized.
+Compacting conversation...
+Conversation has been compacted.
Key information has been preserved while reducing context length.
```
+`/summarize` still works as a deprecated alias for `/compact`, but `/compact` is the command to use in new docs and workflows.
+
diff --git a/documentation/docs/guides/tips.md b/documentation/docs/guides/tips.md
index ca7f43258..1051cc443 100644
--- a/documentation/docs/guides/tips.md
+++ b/documentation/docs/guides/tips.md
@@ -36,6 +36,9 @@ Consider enabling [Code Mode](/docs/guides/managing-tools/code-mode), an alterna
### Teach goose your preferences
Help goose remember how you like to work by using [`.goosehints` or other context files](/docs/guides/context-engineering/using-goosehints) or [skills](/docs/guides/context-engineering/using-skills) for permanent project preferences and the [Memory extension](/docs/mcp/memory-mcp) for things you want goose to dynamically recall later. Both can help save valuable context window space while keeping your preferences available.
+### Protect sensitive files
+Use [permission modes](/docs/guides/managing-tools/goose-permissions) and [tool permissions](/docs/guides/managing-tools/tool-permissions) when working around files you do not want goose to change.
+
### Version Control
Commit your code changes early and often. This allows you to rollback any unexpected changes.
diff --git a/documentation/docs/mcp/_template_.mdx b/documentation/docs/mcp/_template_.mdx
index 8dc1dfbb8..812cddd42 100644
--- a/documentation/docs/mcp/_template_.mdx
+++ b/documentation/docs/mcp/_template_.mdx
@@ -64,7 +64,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="npx"
args={["-y", "@package/name"]}
- timeout={300}
envVars={[
{ name: "API_KEY", label: "Description or placeholder value" }
]}
diff --git a/documentation/docs/mcp/agentql-mcp.md b/documentation/docs/mcp/agentql-mcp.md
index f66398571..5ca478152 100644
--- a/documentation/docs/mcp/agentql-mcp.md
+++ b/documentation/docs/mcp/agentql-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the [AgentQL MCP Server](https://github.com/tiny
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=agentql-mcp&id=agentql&name=AgentQL&description=Transform%20unstructured%20web%20content%20into%20structured%20data&env=AGENTQL_API_KEY%3DAgentQL%20API%20Key)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=agentql-mcp&id=agentql-mcp&name=AgentQL&description=Transform%20unstructured%20web%20content%20into%20structured%20data&env=AGENTQL_API_KEY%3DAgentQL%20API%20Key)
**Command**
@@ -40,7 +40,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby&name=Alby&description=Connect%20goose%20to%20your%20Bitcoin%20Lightning%20Wallet&env=NWC_CONNECTION_STRING%3DNWC%20Connection%20Secret)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40getalby%2Fmcp&id=alby-mcp&name=Alby&description=Connect%20goose%20to%20your%20Bitcoin%20Lightning%20Wallet&env=NWC_CONNECTION_STRING%3DNWC%20Connection%20Secret)
**Command**
@@ -50,7 +50,7 @@ You'll need [Node.js](https://nodejs.org/) installed on your system to run this
- Add a `Remote Extension (Streaming HTTP)` extension type with:
+ Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
diff --git a/documentation/docs/mcp/asana-mcp.md b/documentation/docs/mcp/asana-mcp.md
index 9c5cbd819..d628fc85b 100644
--- a/documentation/docs/mcp/asana-mcp.md
+++ b/documentation/docs/mcp/asana-mcp.md
@@ -17,7 +17,7 @@ This tutorial covers how to add the [Asana MCP Server](https://github.com/roychr
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40roychri%2Fmcp-server-asana&id=asana&name=Asana&description=enable%20task%20automation%2C%20project%20tracking%2C%20and%20team%20collaboration&env=ASANA_ACCESS_TOKEN%3DAsana%20Access%20Token)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40roychri%2Fmcp-server-asana&id=asana-mcp&name=Asana&description=enable%20task%20automation%2C%20project%20tracking%2C%20and%20team%20collaboration&env=ASANA_ACCESS_TOKEN%3DAsana%20Access%20Token)
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
@@ -421,4 +420,3 @@ To test it, run: open index.html
Or start a local server: python3 -m http.server 8000 and visit http://localhost:8000
```
-
diff --git a/documentation/docs/mcp/blender-mcp.md b/documentation/docs/mcp/blender-mcp.md
index 5d414931e..c46b68046 100644
--- a/documentation/docs/mcp/blender-mcp.md
+++ b/documentation/docs/mcp/blender-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Blender MCP Server](https://github.com/ahuj
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=uvx&arg=blender-mcp&id=blender&name=Blender&description=Blender%203D%20scene%20creation%20integration)
+ [Launch the installer](goose://extension?cmd=uvx&arg=blender-mcp&id=blender-mcp&name=Blender&description=Blender%203D%20scene%20creation%20integration)
**Command**
@@ -54,7 +54,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
- [Launch the installer](goose://extension?cmd=npx&arg=@browserbasehq/mcp&id=browserbase&name=Browserbase&description=Automate%20web%20browsing%20and%20data%20extraction&env=BROWSERBASE_PROJECT_ID%3DBrowserbase%20Project%20ID&env=BROWSERBASE_API_KEY%3DBrowserbase%20API%20Key)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40browserbasehq%2Fmcp&id=browserbase-mcp&name=Browserbase&description=Automate%20web%20browsing%20and%20data%20extraction&env=BROWSERBASE_PROJECT_ID%3DBrowserbase%20Project%20ID&env=BROWSERBASE_API_KEY%3DBrowserbase%20API%20Key&env=GEMINI_API_KEY%3DGemini%20API%20Key)
**Command**
```sh
- npx @browserbasehq/mcp
+ npx -y @browserbasehq/mcp
```
@@ -27,6 +27,7 @@ This tutorial covers how to add the Browserbase MCP Server as a goose extension
```
BROWSERBASE_PROJECT_ID:
BROWSERBASE_API_KEY:
+ GEMINI_API_KEY:
```
:::
@@ -39,14 +40,15 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
- Obtain your Browserbase credentials and paste them in.
+ Obtain your Browserbase credentials and Gemini API key and paste them in.
>
}
/>
@@ -131,4 +134,4 @@ Let's use the Browserbase extension to gather information about trending MCP-rel
**Stars Today**: 10.2k stars
**README Excerpt**: A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
-```
\ No newline at end of file
+```
diff --git a/documentation/docs/mcp/chrome-devtools-mcp.md b/documentation/docs/mcp/chrome-devtools-mcp.md
index 7653001f5..59a357e89 100644
--- a/documentation/docs/mcp/chrome-devtools-mcp.md
+++ b/documentation/docs/mcp/chrome-devtools-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the Chrome DevTools MCP Server as a goose extens
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=chrome-devtools-mcp%40latest&id=chrome-devtools&name=Chrome%20DevTools&description=Browser%20automation%20and%20web%20performance%20testing%20capabilities)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=chrome-devtools-mcp%40latest&id=chrome-devtools-mcp&name=Chrome%20DevTools&description=Browser%20automation%20and%20web%20performance%20testing%20capabilities)
**Command**
@@ -36,13 +36,11 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
diff --git a/documentation/docs/mcp/cloudinary-asset-management-mcp.md b/documentation/docs/mcp/cloudinary-asset-management-mcp.md
index 43d55e0ea..48afa100e 100644
--- a/documentation/docs/mcp/cloudinary-asset-management-mcp.md
+++ b/documentation/docs/mcp/cloudinary-asset-management-mcp.md
@@ -17,7 +17,7 @@ This tutorial covers how to add the [Cloudinary Asset Management MCP Server](htt
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=--package&arg=@cloudinary/asset-management&arg=--&arg=mcp&arg=start&id=cloudinary&name=Cloudinary%20Asset%20Management&description=Powerful%20media%20processing%20and%20transformation&env=CLOUDINARY_URL%3DCloudinary%20URL)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=--package&arg=@cloudinary/asset-management&arg=--&arg=mcp&arg=start&id=cloudinary-asset-management-mcp&name=Cloudinary%20Asset%20Management&description=Powerful%20media%20processing%20and%20transformation&env=CLOUDINARY_URL%3DCloudinary%20URL)
**Command**
@@ -41,7 +41,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
-```
-:::
-
-## Configuration
-
-:::info
-Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on your system to run this command, as it uses `uv`.
-:::
-
-
-
-
-**Install Cognee:**
-
-```bash
-# Clone and install Cognee
-git clone https://github.com/topoteretes/cognee
-cd cognee/cognee-mcp
-uv sync --dev --all-extras --reinstall
-
-# On Linux, install additional dependencies
-sudo apt install -y libpq-dev python3-dev
-```
-
-**Configure the extension:**
-
-
- Replace /path/to/cognee-mcp with the actual path to your cloned cognee-mcp directory.
- >
- }
- infoNote={
- <>
- Obtain an API key for your LLM provider and paste it in. By default, this is an OpenAI API key.
- >
- }
-/>
-
-
-
-:::info
-See the [Cognee MCP documentation](https://docs.cognee.ai/how-to-guides/deployment/mcp) for supported configuration options.
-:::
-
-## Example Usage
-
-Cognee provides knowledge graph memory capabilities for goose, allowing it to remember and connect information across conversations and documents.
-
-### goose Prompt
-
-> _goose, please cognify this information: "I prefer Python for data analysis and use pandas extensively. My current project involves analyzing customer behavior data." Then search for information about my programming preferences._
-
-### goose Output
-
-:::note CLI
-
-
- Tool Calls
-
- ─── cognee_cognify | abcdefgh ──────────────────────────
-
- data: I prefer Python for data analysis and use pandas extensively. My current project involves analyzing customer behavior data.
-
-
- ─── cognee_search | abcdefgh ──────────────────────────
-
- search_query: programming preferences Python data analysis
-
- search_type: GRAPH_COMPLETION
-
-
-
-I'll help you store that information in the knowledge graph and then search for your programming preferences.
-
-First, let me cognify the information about your preferences:
-
-**Cognify Status:**
-Background process launched due to MCP timeout limitations. The information about your Python and pandas preferences for data analysis has been added to the knowledge graph.
-
-Now let me search for information about your programming preferences:
-
-**Search Results:**
-Based on the knowledge graph, I found information about your programming preferences:
-
-- **Language Preference**: You prefer Python for data analysis
-- **Key Libraries**: You use pandas extensively for data manipulation
-- **Current Focus**: Your current project involves analyzing customer behavior data
-- **Domain**: Data science and analytics workflows
-- **Technical Stack**: Python + pandas for data analysis tasks
-
-The knowledge graph has successfully stored and can now retrieve your programming preferences and project context for future conversations.
-
-:::
diff --git a/documentation/docs/mcp/container-use-mcp.md b/documentation/docs/mcp/container-use-mcp.md
index 6012bfc18..c48ee9e40 100644
--- a/documentation/docs/mcp/container-use-mcp.md
+++ b/documentation/docs/mcp/container-use-mcp.md
@@ -44,9 +44,6 @@ You'll need [Docker](https://www.docker.com/) installed on your system. If you w
description="Run container automation with container-use"
command="npx"
args={["-y", "mcp-remote", "https://container-use.com/mcp"]}
- cliCommand="npx -y mcp-remote https://container-use.com/mcp"
- timeout={300}
- note="Requires Node.js and Docker installed; see [container-use.com/quickstart](https://container-use.com/quickstart)."
/>
@@ -70,9 +67,6 @@ You'll need [Docker](https://www.docker.com/) installed on your system. If you w
description="Run container automation with container-use"
command="container-use"
args={["stdio"]}
- cliCommand="container-use stdio"
- timeout={300}
- note="Requires Docker installed; see [container-use.com/quickstart](https://container-use.com/quickstart)."
/>
diff --git a/documentation/docs/mcp/context7-mcp.mdx b/documentation/docs/mcp/context7-mcp.mdx
index a9c5c9e20..31250ddf7 100644
--- a/documentation/docs/mcp/context7-mcp.mdx
+++ b/documentation/docs/mcp/context7-mcp.mdx
@@ -43,8 +43,6 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
description="Context7 MCP server for up-to-date code and docs"
command="npx"
args={["-y", "@upstash/context7-mcp"]}
- cliCommand="npx -y @upstash/context7-mcp"
- timeout={300}
/>
diff --git a/documentation/docs/mcp/datahub-mcp.mdx b/documentation/docs/mcp/datahub-mcp.mdx
index 544bc40de..8616386a4 100644
--- a/documentation/docs/mcp/datahub-mcp.mdx
+++ b/documentation/docs/mcp/datahub-mcp.mdx
@@ -68,7 +68,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="uvx"
args={["mcp-server-datahub@latest"]}
- timeout={300}
envVars={[
{ name: "DATAHUB_GMS_URL", label: "DataHub GMS URL (e.g., https://your-instance.acryl.io or http://localhost:8080)" },
{ name: "DATAHUB_GMS_TOKEN", label: "DataHub Personal Access Token" }
@@ -255,4 +254,3 @@ If `uvx` is not found:
1. Ensure `uv` is installed: `curl -LsSf https://astral.sh/uv/install.sh | sh`
2. Restart your terminal or source your shell configuration
3. Verify installation: `which uvx`
-
diff --git a/documentation/docs/mcp/dev.to-mcp.md b/documentation/docs/mcp/dev.to-mcp.md
index 565e1508f..51ad50662 100644
--- a/documentation/docs/mcp/dev.to-mcp.md
+++ b/documentation/docs/mcp/dev.to-mcp.md
@@ -20,7 +20,7 @@ This tutorial covers how to add the [Dev.to MCP Server](https://github.com/nicky
[Launch the installer](goose://extension?type=streamable_http&url=http%3A%2F%2Flocalhost%3A3000%2Fmcp&id=dev-to&name=Dev.to&description=Access%20Dev.to%20articles%20and%20content)
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
diff --git a/documentation/docs/mcp/developer-mcp.md b/documentation/docs/mcp/developer-mcp.md
index 239005c66..f849f6928 100644
--- a/documentation/docs/mcp/developer-mcp.md
+++ b/documentation/docs/mcp/developer-mcp.md
@@ -184,10 +184,12 @@ The Developer extension provides these tools:
| Tool | Description | Use Cases | Risk Level |
|------|-------------|-----------|------------|
| `shell` | Execute shell commands | Running tests, installing packages, git operations | ⚠️ High Can run any system command with your user privileges |
-| `text_editor` | Read, write, and edit files | Code refactoring, creating files, updating configs | ⚠️ High Can modify any accessible file |
-| `analyze` | Analyze code structure | Understanding codebase, finding dependencies | ✅ Low Read-only code analysis |
-| `screen_capture` | Take screenshots | Debugging UI issues, documenting state | ✅ Low Visual information only |
-| `image_processor` | Process and resize images | Optimizing assets, format conversion | ✅ Low Image manipulation only |
+| `write` | Create or overwrite files | Creating files, updating generated assets, writing configs | ⚠️ High Can modify any accessible file |
+| `edit` | Replace exact text in files | Code refactoring, targeted edits, deleting matched text | ⚠️ High Can modify any accessible file |
+| `tree` | List directory trees with line counts | Understanding project structure before reading files | ✅ Low Read-only file listing |
+| `read_image` | Read a local or remote image for model inspection | Inspecting screenshots, diagrams, and visual assets | ✅ Low Read-only image access |
+
+For code structure analysis, use the separate [Analyze platform extension](/docs/guides/codebase-analysis).
### Access Control Features
diff --git a/documentation/docs/mcp/elevenlabs-mcp.md b/documentation/docs/mcp/elevenlabs-mcp.md
index 73f37c468..6dd512e22 100644
--- a/documentation/docs/mcp/elevenlabs-mcp.md
+++ b/documentation/docs/mcp/elevenlabs-mcp.md
@@ -17,7 +17,7 @@ This tutorial covers how to add the [ElevenLabs MCP Server](https://github.com/e
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=uvx&arg=elevenlabs-mcp&id=elevenlabs&name=ElevenLabs&description=ElevenLabs%20voice%20synthesis%20server&env=ELEVENLABS_API_KEY)
+ [Launch the installer](goose://extension?cmd=uvx&arg=elevenlabs-mcp&id=elevenlabs-mcp&name=ElevenLabs&description=ElevenLabs%20voice%20synthesis%20server&env=ELEVENLABS_API_KEY)
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
-:::
\ No newline at end of file
+:::
diff --git a/documentation/docs/mcp/excalidraw-mcp.md b/documentation/docs/mcp/excalidraw-mcp.md
index 0da70e123..2ec393f08 100644
--- a/documentation/docs/mcp/excalidraw-mcp.md
+++ b/documentation/docs/mcp/excalidraw-mcp.md
@@ -19,7 +19,7 @@ This tutorial covers how to add the [Excalidraw MCP App](https://github.com/exca
[Launch the installer](goose://extension?cmd=http&id=excalidraw&name=Excalidraw&url=https%3A%2F%2Fexcalidraw-mcp-app.vercel.app%2Fmcp&description=Excalidraw%20MCP%20App%20for%20AI-powered%20diagramming)
- Add a `Remote Extension (Streaming HTTP)` extension type with:
+ Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -75,4 +75,3 @@ Hey Goose review my video automation recipe and create a visual of the automatio
```

-
diff --git a/documentation/docs/mcp/figma-mcp.md b/documentation/docs/mcp/figma-mcp.md
index e816f373e..249e0b466 100644
--- a/documentation/docs/mcp/figma-mcp.md
+++ b/documentation/docs/mcp/figma-mcp.md
@@ -22,7 +22,7 @@ The MCP Server requires a Dev or Full seat on Professional, Organization, or Ent
[Launch the installer](goose://extension?type=streamable_http&url=http%3A%2F%2F127.0.0.1%3A3845%2Fmcp&id=figma&name=Figma&description=Convert%20Figma%20designs%20into%20code%20and%20extract%20design%20context)
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
@@ -162,4 +162,4 @@ export default function Component2() {
The component maintains the exact visual hierarchy and styling from your Figma design while being fully responsive and ready to integrate into a React application with Tailwind CSS.
-:::
\ No newline at end of file
+:::
diff --git a/documentation/docs/mcp/github-mcp.md b/documentation/docs/mcp/github-mcp.md
index 402120ac2..9b44997c2 100644
--- a/documentation/docs/mcp/github-mcp.md
+++ b/documentation/docs/mcp/github-mcp.md
@@ -16,10 +16,10 @@ This tutorial covers how to add the [GitHub MCP Server](https://github.com/githu
:::tip Quick Install
- [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F&id=github&name=GitHub&description=GitHub%20repository%20management%20and%20operations&header=Authorization%3DBearer%20YOUR_GITHUB_PERSONAL_ACCESS_TOKEN)
+ [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F&id=github-mcp&name=GitHub&description=GitHub%20repository%20management%20and%20operations&header=Authorization%3DBearer%20YOUR_GITHUB_PERSONAL_ACCESS_TOKEN)
- Add a `Remote Extension (Streaming HTTP)` extension type with:
+ Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -40,7 +40,7 @@ These steps configure the Remote MCP Server. For other deployment options, see t
@@ -175,4 +172,4 @@ Models are cached locally, so subsequent runs are much faster.
Whisper is released under the **MIT License**, making it free to use for both personal and commercial projects.
-:::
\ No newline at end of file
+:::
diff --git a/documentation/docs/mcp/goose-docs-mcp.md b/documentation/docs/mcp/goose-docs-mcp.md
index 1f78534c5..cecf4654b 100644
--- a/documentation/docs/mcp/goose-docs-mcp.md
+++ b/documentation/docs/mcp/goose-docs-mcp.md
@@ -36,9 +36,6 @@ This tutorial covers how to add the [goose Docs MCP Server](https://github.com/i
description="GitMCP for goose documentation"
command="npx"
args={["mcp-remote", "https://block.gitmcp.io/goose/"]}
- cliCommand="npx mcp-remote https://block.gitmcp.io/goose/"
- timeout={300}
- note="Note that you'll need Node.js installed on your system to run this command, as it uses npx."
/>
@@ -554,4 +551,4 @@ response:
```
-
\ No newline at end of file
+
diff --git a/documentation/docs/mcp/i-ching-mcp.md b/documentation/docs/mcp/i-ching-mcp.md
deleted file mode 100644
index 43f2164ee..000000000
--- a/documentation/docs/mcp/i-ching-mcp.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: I Ching Extension
-description: Add I Ching MCP Server as a goose Extension
----
-
-This tutorial covers how to add the [I Ching MCP Server](https://github.com/threemachines/i-ching) as a goose extension to enable traditional I Ching divination readings.
-
-:::tip Quick Install
-1. Install: `cargo install i-ching`
-2. Configure: [Add I Ching Extension](goose://extension?cmd=i-ching-mcp-server&id=i-ching&name=I%20Ching&description=I%20Ching%20divination%20readings)
-:::
-
-## Installation
-
-This extension requires Rust 1.85.1 or later. Check your version:
-
-```bash
-rustc --version
-```
-
-If you need to install or update Rust, visit [rustup.rs](https://rustup.rs/).
-
-:::tip Use goose to Help!
-If you're unsure about any of these steps, you can ask goose to help you check your system and guide you through the Rust installation process.
-:::
-
-Once Rust is ready, install the I Ching crate from crates.io:
-
-```bash
-cargo install i-ching
-```
-
-Then click the link above to configure it in goose.
-
-## Example Usage
-
-### goose Prompt
-
-> Our team is facing a challenging decision about our product roadmap. Could you consult the I Ching for some perspective on how to approach this choice?
-
-### goose Output
-
-:::note Desktop
-I'd be happy to consult the I Ching for guidance on your team's product roadmap decision. Let me cast a hexagram for you using the traditional three coins method.
-
-─── cast_hexagram | iching ──────────────────────────
-
-
-Now let me get a detailed interpretation of this reading for your situation:
-
-─── interpret_reading | iching ─────────────────────────
-
-changing_lines:
--
- 5
-hexagram: 29
-transformed_hexagram: 13
-
-
-#### I Ching Guidance for Your Product Roadmap Decision
-
-The oracle has given you **Hexagram 29 - Darkness (The Abysmal)** with a changing line in the 5th position, transforming to **Hexagram 13 - Seeking Harmony (Fellowship with Men)**.
-
-**Key Insights for Your Team's Situation:**
-
-**Current Challenge (Hexagram 29):**
-- Your team is facing what the I Ching recognizes as a "repetition of danger" - this suggests you're in a challenging situation that requires careful navigation
-- Like water in a ravine, you need to find the natural path forward rather than forcing your way through
-- The emphasis is on **sincerity and thoroughness** - whatever decision you make, commit to it fully and execute it properly
-
-**Strategic Approach:**
-1. **Flow Like Water**: Don't try to overcome obstacles through force. Instead, find the path of least resistance that still moves you toward your goal
-2. **Fill Every Depression**: Address all the foundational issues before moving forward. Don't skip steps or leave gaps in your planning
-3. **Consistency Over Ambition**: The changing line warns against being "too ambitious." Focus on steady, sustainable progress rather than dramatic leaps
-
-**The Transformation (Hexagram 13):**
-The situation naturally evolves toward **Fellowship with Men** - suggesting that the key to resolving your roadmap challenge lies in:
-- **Building consensus** among team members
-- **Open collaboration** rather than closed-door decisions
-- **Crossing the great water** - taking on significant challenges, but doing so together
-
-**Practical Recommendations:**
-
-1. **Acknowledge the Difficulty**: Don't minimize the complexity of your roadmap decision. Accept that it's genuinely challenging.
-
-2. **Seek Team Alignment**: The transformation to "Fellowship" suggests your answer lies in bringing the team together rather than having leadership decide alone.
-
-3. **Take the Conservative Path**: The 5th line specifically advises against overambition. Choose the roadmap option that gets you "out of danger" rather than the most aggressive one.
-
-4. **Focus on Execution**: Once you decide, commit fully. The hexagram emphasizes that success comes from thorough implementation, not perfect strategy.
-
-The I Ching suggests this challenging decision will ultimately strengthen your team's unity and collaboration if approached with patience, sincerity, and collective wisdom.
-:::
\ No newline at end of file
diff --git a/documentation/docs/mcp/kiwi-flight-search.md b/documentation/docs/mcp/kiwi-flight-search.md
index ff5ec9712..41a7132ad 100644
--- a/documentation/docs/mcp/kiwi-flight-search.md
+++ b/documentation/docs/mcp/kiwi-flight-search.md
@@ -24,7 +24,7 @@ This tutorial covers how to add the [Kiwi Flight Search MCP Server](https://mcp.
Use `Add custom extension` in Settings → Extensions to add a `Streamable HTTP` extension type with:
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
diff --git a/documentation/docs/mcp/knowledge-graph-mcp.md b/documentation/docs/mcp/knowledge-graph-mcp.md
index 380033512..b0297b8b6 100644
--- a/documentation/docs/mcp/knowledge-graph-mcp.md
+++ b/documentation/docs/mcp/knowledge-graph-mcp.md
@@ -60,174 +60,172 @@ In this example, I'll show you how goose can become an intelligent security revi
This means goose doesn't just spot issues - it understands how vulnerabilities connect to real world impacts and can suggest comprehensive solutions.
### Step 1: Teach goose About Security Patterns
- #### goose Prompt #1
- ```
- goose, learn these security vulnerability patterns and their relationships:
- 1. SQL Injection relates to:
+#### goose Prompt #1
- - Unvalidated database inputs
- - Data theft risks
- - Parameterized query solutions
-
- 2. XSS Vulnerabilities connect to:
+```text
+goose, learn these security vulnerability patterns and their relationships:
- - Unescaped user output
- - Session hijacking risks
- - Content sanitization fixes
-
- 3.Authentication Weaknesses link to:
+1. SQL Injection relates to:
- - Session management
- - Account compromise
- - JWT-based solutions
- ```
+ - Unvalidated database inputs
+ - Data theft risks
+ - Parameterized query solutions
- #### goose Output
+2. XSS Vulnerabilities connect to:
- ```
- I'll store this security knowledge in the Knowledge Graph Memory with proper entities and relationships
+ - Unescaped user output
+ - Session hijacking risks
+ - Content sanitization fixes
- [.... Create Entities .....]
+3. Authentication Weaknesses link to:
- Now, let's create the relationships between these security concepts:
+ - Session management
+ - Account compromise
+ - JWT-based solutions
+```
- [.... Create Relations .....]
+#### goose Output
- Let me verify what's been stored:
+```text
+I'll store this security knowledge in the Knowledge Graph Memory with proper entities and relationships
- [... Read Graph ...]
+[.... Create Entities .....]
- I've now stored your security knowledge in the graph with:
+Now, let's create the relationships between these security concepts:
- 1. Vulnerability Entities:
+[.... Create Relations .....]
- - SQL Injection (with observations about unvalidated inputs and data theft)
- - XSS Vulnerabilities (with observations about unescaped output and session risks)
- - Authentication Weaknesses (with observations about session management)
-
- 2. Solution Entities:
+Let me verify what's been stored:
- - Parameterized Queries
- - Content Sanitization
- - JWT Authentication
-
- 3. Connected Relationships:
+[... Read Graph ...]
- - Vulnerabilities → their potential impacts
- - Solutions → the vulnerabilities they mitigate
-
- The knowledge is now structured in a way that I can:
+I've now stored your security knowledge in the graph with:
+
+1. Vulnerability Entities:
+
+ - SQL Injection (with observations about unvalidated inputs and data theft)
+ - XSS Vulnerabilities (with observations about unescaped output and session risks)
+ - Authentication Weaknesses (with observations about session management)
+
+2. Solution Entities:
+
+ - Parameterized Queries
+ - Content Sanitization
+ - JWT Authentication
+
+3. Connected Relationships:
+
+ - Vulnerabilities -> their potential impacts
+ - Solutions -> the vulnerabilities they mitigate
+
+The knowledge is now structured in a way that I can:
+
+ - Trace vulnerability impact chains
+ - Identify appropriate solutions for each vulnerability
+ - Understand how different security issues are related
+```
- - Trace vulnerability impact chains
- - Identify appropriate solutions for each vulnerability
- - Understand how different security issues are related
- ```
### Step 2: Use Connected Knowledge for Code Review
- #### goose Prompt # 2
- ```
- Review this API endpoint for security issues:
- ```
- ```js
- app.post('/api/login', (req, res) => {
- const { username, password } = req.body;
- const query = `SELECT * FROM users WHERE username = '${username}'`;
- db.query(query, (err, result) => {
- if (err) throw err;
- if (result.length > 0) {
+#### goose Prompt #2
+
+Review this API endpoint for security issues:
+
+```js
+app.post('/api/login', (req, res) => {
+ const { username, password } = req.body;
+ const query = `SELECT * FROM users WHERE username = '${username}'`;
+ db.query(query, (err, result) => {
+ if (err) throw err;
+ if (result.length > 0) {
res.cookie('user', username);
res.json({ success: true });
- }
- });
+ }
});
- ```
- #### goose Output
- ```
- I'll analyze this code using our connected knowledge graph to trace security vulnerabilities and their implications:
+});
+```
- [.... Search Nodes ... Open Nodes ...]
+#### goose Output
- Based on our knowledge graph analysis, I've found multiple critical security issues:
+```text
+I'll analyze this code using our connected knowledge graph to trace security vulnerabilities and their implications:
- 1. SQL Injection Vulnerability:
- - Issue: Using string concatenation in query WHERE username = '${username}'
- - Impact Chain: SQL Injection → Data Theft
- - Risk Level: Critical
- - Solution (from parameterized_queries): Use parameterized queries instead
-
- 2. Authentication Weakness:
- - Issue: Using basic cookie-based session res.cookie('user', username)
- - Impact Chain: Auth Weakness → Account Compromise
- - Risk Level: High
- - Solution (from jwt_auth): Implement JWT with proper expiration
-
- ```
+[.... Search Nodes ... Open Nodes ...]
- ```js
- Here's the secure implementation based on our stored patterns:
+Based on our knowledge graph analysis, I've found multiple critical security issues:
- app.post('/api/login', async (req, res) => {
- try {
- // Input validation
- if (!req.body.username || !req.body.password) {
+1. SQL Injection Vulnerability:
+ - Issue: Using string concatenation in query WHERE username = '${username}'
+ - Impact Chain: SQL Injection -> Data Theft
+ - Risk Level: Critical
+ - Solution (from parameterized_queries): Use parameterized queries instead
+
+2. Authentication Weakness:
+ - Issue: Using basic cookie-based session res.cookie('user', username)
+ - Impact Chain: Auth Weakness -> Account Compromise
+ - Risk Level: High
+ - Solution (from jwt_auth): Implement JWT with proper expiration
+```
+
+Here's the secure implementation based on our stored patterns:
+
+```js
+app.post('/api/login', async (req, res) => {
+ try {
+ if (!req.body.username || !req.body.password) {
return res.status(400).json({
success: false,
error: 'Username and password required'
});
- }
+ }
- // Parameterized query (prevents SQL injection)
- const query = 'SELECT * FROM users WHERE username = ?';
- const result = await db.query(query, [req.body.username]);
+ const query = 'SELECT * FROM users WHERE username = ?';
+ const result = await db.query(query, [req.body.username]);
- if (!result.length) {
+ if (!result.length) {
return res.status(401).json({
success: false,
error: 'Invalid credentials'
});
- }
+ }
- // Password verification would go here
- // const validPassword = await bcrypt.compare(req.body.password, result[0].password);
-
- // JWT-based session management (prevents session hijacking)
- const token = jwt.sign(
+ const token = jwt.sign(
{ userId: result[0].id },
process.env.JWT_SECRET,
{ expiresIn: '1h' }
- );
+ );
- res.json({
+ res.json({
success: true,
token: token
- });
-
- } catch (error) {
- res.status(500).json({
+ });
+ } catch (error) {
+ res.status(500).json({
success: false,
error: 'Internal server error'
- });
- }
- });
- ```
- ```
- The fixes address the vulnerability chains our knowledge graph identified:
+ });
+ }
+});
+```
- 1. SQL Injection → Data Theft: Mitigated by parameterized queries
- 2. Auth Weakness → Account Compromise: Mitigated by JWT implementation
-
- Additional security improvements based on connected patterns:
+```text
+The fixes address the vulnerability chains our knowledge graph identified:
- - Added input validation
- - Proper error handling
- - No exposure of internal errors
- - Token-based instead of cookie-based auth
- - Expiration time on authentication
-
- Would you like me to:
+1. SQL Injection -> Data Theft: Mitigated by parameterized queries
+2. Auth Weakness -> Account Compromise: Mitigated by JWT implementation
- 1. Explain any of these security relationships in more detail?
- 2. Show how to implement additional security patterns?
- 3. Analyze another endpoint?
- ```
\ No newline at end of file
+Additional security improvements based on connected patterns:
+
+- Added input validation
+- Proper error handling
+- No exposure of internal errors
+- Token-based instead of cookie-based auth
+- Expiration time on authentication
+
+Would you like me to:
+
+1. Explain any of these security relationships in more detail?
+2. Show how to implement additional security patterns?
+3. Analyze another endpoint?
+```
diff --git a/documentation/docs/mcp/linux-mcp-server-mcp.md b/documentation/docs/mcp/linux-mcp-server-mcp.md
index 113d94cdb..6be254791 100644
--- a/documentation/docs/mcp/linux-mcp-server-mcp.md
+++ b/documentation/docs/mcp/linux-mcp-server-mcp.md
@@ -44,7 +44,6 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
type="stdio"
command="uvx"
args={["linux-mcp-server"]}
- timeout={300}
/>
@@ -78,4 +77,4 @@ Follow the instructions on how to use the Linux MCP Server for system diagnostic
🤖 LLM output 🤖
I’ll help you diagnose your WiFi connectivity issues by examining the system logs for error messages related to your network interfaces and wireless connectivity. Let me start by gathering information about your system and checking the relevant logs.
-:::
\ No newline at end of file
+:::
diff --git a/documentation/docs/mcp/mbot-mcp.md b/documentation/docs/mcp/mbot-mcp.md
deleted file mode 100644
index c7f8ad1a9..000000000
--- a/documentation/docs/mcp/mbot-mcp.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: mbot Extension
-description: Control a MakeBlock mbot2 rover through MQTT and MCP as a goose Extension
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
-import GooseDesktopInstaller from '@site/src/components/GooseDesktopInstaller';
-import CLIExtensionInstructions from '@site/src/components/CLIExtensionInstructions';
-
-
-
-This tutorial will get you started with [deemkeen's MQTT MCP server](https://github.com/deemkeen/mbotmcp) for the [MakeBlock mbot2 rover](https://www.makeblock.com/products/buy-mbot2), and outline some code changes we made along the way.
-
-:::tip Quick Install
- **Command**
- ```sh
- /path/to/java -jar /path/to/mbotmcp-0.0.1-SNAPSHOT.jar
- ```
-
- **Environment Variables**
- ```
- MQTT_SERVER_URI: tcp://1.2.3.4:1883
- MQTT_PASSWORD:
- MQTT_USERNAME:
- ```
-:::
-
-## Configuration
-
-
-
-
- Replace /path/to/java and /path/to/mbotmcp-0.0.1-SNAPSHOT.jar with your actual Java installation and JAR file paths.
- >
- }
- infoNote={
- <>
- MQTT_SERVER_URI has a value like tcp://1.2.3.4:1883. MQTT_USERNAME and MQTT_PASSWORD are required to exist, but can be empty strings if your MQTT server does not require authentication.
- >
- }
- />
-
-
-
-## Example Usage
-
-The available commands allow you to drive the mbot2 rover around, including:
-
-- "turn left" or "turn right""
-- drive "forward" or "backward"
-- "explore" randomly
-- "stop" exploring
-- "beep"
-
-The default distance to travel is 70cm (about 27 inches), and the turn angles are set to 90 degrees. You can change these values in the [Python code on the mbot2](https://github.com/deemkeen/mbotmcp/blob/main/assets/mbot-mqtt.py). The mbot2 has a lot of other capabilities with the proximity sensors, lights, and color detection sensor on the bottom of the unit that you can add to the Python code, and will need to update [the Java code](https://github.com/deemkeen/mbotmcp/blob/main/src/main/java/de/emkeen/mbotmcp/service/BotService.java) to include those commands via MCP.
-
-#### goose Interaction
-
-```
-( O)> Let my mbot2 explore the area
-
- Okay, let's get the mbot2 rover moving. I will send it on a mission to explore the area.
-
- > Mbotexplore
-
-( O)> stop the rover, turn left and move forward
-
- Alright, I will stop the rover, turn to the left, and then move it forward.
-
- > Mbotstop
-
- > Mbotleft
-
- > Mbotforward
-
-( O)> let's move backward and beep so I know when it's finished
-
- Sure, I will move the rover backward and beep when it's done.
-
- > Mbotbackward
-
- > Mbotbeep
-
- Okay, the mbot2 has moved and beeped. What else would you like to do with the rover?
-
-```
diff --git a/documentation/docs/mcp/mongodb-mcp.md b/documentation/docs/mcp/mongodb-mcp.md
index 1d3a30c77..20bc98d05 100644
--- a/documentation/docs/mcp/mongodb-mcp.md
+++ b/documentation/docs/mcp/mongodb-mcp.md
@@ -13,12 +13,12 @@ The [MongoDB MCP Server](https://github.com/mongodb-js/mongodb-mcp-server) exten
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=mongodb-mcp-server&arg=--connection-string&arg=mongodb://localhost:27017&id=mongodb&name=MongoDB&description=MongoDB%20database%20integration)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=mongodb-mcp-server&arg=--connectionString&arg=mongodb://localhost:27017&id=mongodb&name=MongoDB&description=MongoDB%20database%20integration)
**Command**
```sh
- npx -y mongodb-mcp-server --connection-string mongodb://localhost:27017
+ npx -y mongodb-mcp-server --connectionString mongodb://localhost:27017
```
@@ -26,7 +26,7 @@ The [MongoDB MCP Server](https://github.com/mongodb-js/mongodb-mcp-server) exten
## Customizing Your Connection
-The MongoDB MCP server connects to a single MongoDB database instance using a connection string. The connection string must be specified using the `--connection-string` flag. We're using `mongodb://localhost:27017` as an example here to access a local MongoDB instance, but you can configure this for your own environment.
+The MongoDB MCP server connects to a single MongoDB database instance using a connection string. The connection string must be specified using the `--connectionString` flag. We're using `mongodb://localhost:27017` as an example here to access a local MongoDB instance, but you can configure this for your own environment.
The MongoDB connection string follows this format:
```
@@ -62,7 +62,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
extensionName="MongoDB"
description="MongoDB database integration"
command="npx"
- args={["-y", "mongodb-mcp-server", "--connection-string", "mongodb://localhost:27017"]}
+ args={["-y", "mongodb-mcp-server", "--connectionString", "mongodb://localhost:27017"]}
/>
:::info Configure Your Connection String
@@ -74,7 +74,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
Replace mongodb://localhost:27017 with the actual MongoDB connection string that matches your MongoDB environment.
diff --git a/documentation/docs/mcp/nano-banana-mcp.md b/documentation/docs/mcp/nano-banana-mcp.md
index 7cd14440d..a87a48925 100644
--- a/documentation/docs/mcp/nano-banana-mcp.md
+++ b/documentation/docs/mcp/nano-banana-mcp.md
@@ -18,7 +18,7 @@ This tutorial covers how to add the [Nano Banana MCP Server](https://github.com/
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=nano-banana-mcp&id=nano-banana&name=Nano%20Banana&description=Image%20generation%20with%20Gemini)
+ [Launch the installer](goose://extension?cmd=npx&arg=nano-banana-mcp&id=nano-banana-mcp&name=Nano%20Banana&description=Image%20generation%20with%20Gemini)
**Command**
@@ -42,7 +42,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
diff --git a/documentation/docs/mcp/netlify-mcp.md b/documentation/docs/mcp/netlify-mcp.md
index ebb60ca9c..9443a2a4d 100644
--- a/documentation/docs/mcp/netlify-mcp.md
+++ b/documentation/docs/mcp/netlify-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Netlify MCP Server](https://github.com/netl
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40netlify%2Fmcp&id=netlify&name=Netlify&description=Build%2C%20deploy%2C%20and%20manage%20sites%20with%20Netlify%27s%20official%20MCP%20server.)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40netlify%2Fmcp&id=netlify-mcp&name=Netlify&description=Build%2C%20deploy%2C%20and%20manage%20sites%20with%20Netlify%27s%20official%20MCP%20server.)
**Command**
@@ -44,7 +44,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
siteId: 1731e49e-1d0a-49a3-ad95-975b550f324a
+:::
🎉 **Success! Your tic-tac-toe game has been deployed to Netlify!**
@@ -156,4 +157,4 @@ Since your code is deployed from your local directory, if you want to make chang
Would you like me to help you set up continuous deployment from your GitHub repository so that future changes are automatically deployed?
-Your tic-tac-toe game is now live and ready to play! 🎮
\ No newline at end of file
+Your tic-tac-toe game is now live and ready to play! 🎮
diff --git a/documentation/docs/mcp/nostrbook-mcp.md b/documentation/docs/mcp/nostrbook-mcp.md
index 9046aad35..b666db58a 100644
--- a/documentation/docs/mcp/nostrbook-mcp.md
+++ b/documentation/docs/mcp/nostrbook-mcp.md
@@ -15,7 +15,7 @@ This tutorial covers how to add the [Nostrbook MCP Server](https://gitlab.com/so
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40nostrbook%2Fmcp&id=nostrbook&name=Nostrbook&description=A%20comprehensive%20registry%20of%20Nostr%20documentation%20with%20structured%20knowledge)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=%40nostrbook%2Fmcp%40latest&id=nostrbook-mcp&name=NostrBook&description=A%20comprehensive%20registry%20of%20Nostr%20documentation%20with%20structured%20knowledge)
**Command**
@@ -36,11 +36,11 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
@@ -75,7 +75,6 @@ Note that IDs have been changed to generic ones
-
# NIP-61: Implementing Nutzaps
NIP-61 defines "Nutzaps," which are P2PK Cashu tokens where the payment itself acts as the receipt. This protocol allows for Bitcoin micropayments through the Nostr ecosystem using Cashu tokens.
@@ -212,4 +211,4 @@ When testing your implementation:
By following these steps, you can implement a complete nutzap solution that allows users to send and receive Bitcoin micropayments through the Nostr protocol using Cashu tokens.
-:::
\ No newline at end of file
+:::
diff --git a/documentation/docs/mcp/reddit-mcp.md b/documentation/docs/mcp/reddit-mcp.md
index 7dc922729..a27d49c8d 100644
--- a/documentation/docs/mcp/reddit-mcp.md
+++ b/documentation/docs/mcp/reddit-mcp.md
@@ -18,7 +18,7 @@ This tutorial covers how to add the [Reddit MCP Server](https://github.com/adhik
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fadhikasp%2Fmcp-reddit.git&arg=mcp-reddit&id=reddit&name=Reddit&description=Fetch%20and%20analyze%20Reddit%20content)
+ [Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fadhikasp%2Fmcp-reddit.git&arg=mcp-reddit&id=reddit-mcp&name=Reddit&description=Fetch%20and%20analyze%20Reddit%20content)
**Command**
@@ -38,7 +38,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
- [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.rendex.dev%2Fmcp&id=rendex&name=Rendex&description=Capture%20screenshots%2C%20generate%20PDFs%2C%20and%20render%20HTML%20to%20images%20via%20AI%20agents&header=Authorization%3DBearer%20YOUR_RENDEX_API_KEY)
+ [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.rendex.dev%2Fmcp&id=rendex-mcp&name=Rendex&description=Capture%20screenshots%2C%20generate%20PDFs%2C%20and%20render%20HTML%20to%20images%20via%20AI%20agents&header=Authorization%3DBearer%20YOUR_RENDEX_API_KEY)
- Add a `Remote Extension (Streaming HTTP)` extension type with:
+ Add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -36,7 +36,7 @@ This tutorial covers how to add the [Rendex MCP Server](https://github.com/coppe
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=repomix&arg=--mcp&id=repomix&name=Repomix&description=Pack%20repositories%20into%20AI-friendly%20formats%20for%20goose)
+ [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=repomix&arg=--mcp&id=repomix-mcp&name=Repomix&description=Pack%20repositories%20into%20AI-friendly%20formats%20for%20goose)
**Command**
@@ -37,7 +37,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
- [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Frube.app%2Fmcp&id=rube&name=Rube&description=Seamlessly%20connect%20across%20500%2B%20applications%20including%20Slack%2C%20Gmail%2C%20Notion%2C%20Google%20Workspace%2C%20Microsoft%20Office%2C%20GitHub%2C%20and%20many%20more)
+ [Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Frube.app%2Fmcp&id=rube-mcp&name=Rube&description=Seamlessly%20connect%20across%20500%2B%20applications%20including%20Slack%2C%20Gmail%2C%20Notion%2C%20Google%20Workspace%2C%20Microsoft%20Office%2C%20GitHub%2C%20and%20many%20more)
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -25,6 +24,7 @@ This tutorial covers how to add [Rube](https://rube.app) as a goose extension to
```
+:::
:::info OAUTH FLOW
An OAuth window will open in your browser. Follow the prompts to authorize access to your Rube account.
@@ -39,7 +39,7 @@ Rube is a platform powered by Composio that provides unified access to 500+ apps
diff --git a/documentation/docs/mcp/speech-mcp.md b/documentation/docs/mcp/speech-mcp.md
index f22f335a1..62040a048 100644
--- a/documentation/docs/mcp/speech-mcp.md
+++ b/documentation/docs/mcp/speech-mcp.md
@@ -4,8 +4,6 @@ description: Add Speech MCP Server as a goose Extension
unlisted: true
---
-Unlist per https://github.com/aaif-goose/goose/issues/5431
-
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed';
@@ -253,4 +251,3 @@ I understand! In that case, I can help you use voice commands instead. I'll laun
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }}
>
-
diff --git a/documentation/docs/mcp/square-mcp.md b/documentation/docs/mcp/square-mcp.md
index e0ff235ca..5d991ee07 100644
--- a/documentation/docs/mcp/square-mcp.md
+++ b/documentation/docs/mcp/square-mcp.md
@@ -78,7 +78,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=npx&arg=square-mcp-server&arg=start&id=mcp_square_api&name=Square%20MCP%20Server&description=Square%20API%20MCP%20Server&env=ACCESS_TOKEN%3DYour%20Access%20Token&env=SANDBOX%3Dtrue)
+ [Launch the installer](goose://extension?cmd=npx&arg=square-mcp-server&arg=start&id=square-mcp&name=Square%20MCP%20Server&description=Square%20API%20MCP%20Server&env=ACCESS_TOKEN%3DYour%20Access%20Token&env=SANDBOX%3Dtrue)
@@ -101,7 +101,7 @@ Note that you'll need [Node.js](https://nodejs.org/) installed on your system to
-
- [Launch the installer](goose://extension?cmd=npx&arg=-y&arg=sugarai-mcp&id=sugar&name=Sugar&description=Autonomous%20AI%20development%20system%20-%20delegate%20tasks%20and%20run%2024%2F7&env=SUGAR_PROJECT_ROOT%3DProject%20directory%20(optional%2C%20defaults%20to%20current))
-
- When prompted, set `SUGAR_PROJECT_ROOT` to your project path.
-
-
- **Command**
- ```sh
- npx -y sugarai-mcp
- ```
- Runs in your current directory by default.
-
-
-:::
-
-## Configuration
-
-:::info
-Note that you'll need [Node.js](https://nodejs.org/) installed on your system to run this command, as it uses `npx`.
-:::
-
-:::info
-Sugar requires Python 3.11+ and the Sugar CLI installed in your project. Install with `pip install sugarai` and initialize with `sugar init`.
-:::
-
-
-
-
-
-
-
- Set SUGAR_PROJECT_ROOT to your project directory, or Sugar will use the current working directory.
- >
- }
- />
-
-
-
-## Example Usage
-
-Sugar lets you delegate development tasks to an autonomous AI that works in the background. Tasks are queued and executed independently, so you can continue working while Sugar handles them.
-
-
-
- 1. Open a new session in goose Desktop
-
-
-
- 1. Open a terminal and start a new goose session:
-
- ```sh
- goose session
- ```
-
-
-
-
-### goose Prompt
-
-> Create a task to add input validation to the user registration form. Priority 4.
-
-### goose Output
-
-:::note Desktop
-
-I'll create a Sugar task for adding input validation to the user registration form.
-
--------- createTask -------
-
-Task created successfully:
-- **ID**: a1b2c3d4-5678-90ab-cdef-ghijklmnopqr
-- **Title**: Add input validation to the user registration form
-- **Type**: feature
-- **Priority**: P4 (High)
-- **Status**: pending
-
-The task has been queued. Sugar will pick it up and work on it autonomously. You can check the status anytime with `getStatus` or `listTasks`.
-
-:::
-
-### Available Tools
-
-Sugar exposes the following tools through MCP:
-
-| Tool | Description |
-|------|-------------|
-| `createTask` | Create a new development task |
-| `listTasks` | List tasks with optional filtering |
-| `viewTask` | View detailed task information |
-| `updateTask` | Update task properties |
-| `removeTask` | Remove a task from the queue |
-| `getStatus` | Get system status and metrics |
-| `runOnce` | Execute one autonomous development cycle |
-| `initSugar` | Initialize Sugar in a project |
diff --git a/documentation/docs/mcp/summon-mcp.md b/documentation/docs/mcp/summon-mcp.md
index 2ad303c85..399897556 100644
--- a/documentation/docs/mcp/summon-mcp.md
+++ b/documentation/docs/mcp/summon-mcp.md
@@ -1,6 +1,6 @@
---
title: Summon Extension
-description: Load skills and delegate tasks to subagents
+description: Load sources and delegate tasks to subagents
---
import Tabs from '@theme/Tabs';
@@ -8,13 +8,14 @@ import TabItem from '@theme/TabItem';
import { PlatformExtensionNote } from '@site/src/components/PlatformExtensionNote';
import GooseBuiltinInstaller from '@site/src/components/GooseBuiltinInstaller';
-The Summon extension lets you load knowledge into goose's context and delegate tasks to [subagents](/docs/guides/context-engineering/subagents).
+The Summon extension lets you load reusable task sources into goose's context and delegate work to [subagents](/docs/guides/context-engineering/subagents).
You can load different types of sources:
-- [**Skills**](/docs/guides/context-engineering/using-skills) - Reusable instruction sets that teach goose specific workflows
- [**Recipes**](/docs/guides/recipes) - Automated task definitions with prompts and parameters
+- **Agents** - Reusable agent definitions stored in agent directories
+- **Subrecipes** - Recipe-local tasks available from the current recipe
-This is useful for teaching goose how to perform tasks and running work in parallel through subagents.
+This is useful when you want goose to reuse a task definition, hand work to another agent, or run read-only research in parallel. Skills are loaded by the separate [Skills platform extension](/docs/guides/context-engineering/using-skills).
:::info
This extension is available in v1.25.0+.
@@ -28,7 +29,7 @@ This extension is available in v1.25.0+.
@@ -56,83 +57,56 @@ This extension is available in v1.25.0+.
## Example Usage
-In this example, we'll create a custom skill that teaches goose a 90s web aesthetic, then use Summon to load that skill and delegate a subagent to build a retro homepage.
+In this example, we'll create a reusable recipe and use Summon to delegate it to a subagent.
-### Create a Skill
+### Create a Recipe
-```markdown title=".agents/skills/retro/SKILL.md"
----
-name: retro
-description: Creates content with 90s web aesthetic
----
-
-# Retro Web Guidelines
-
-Channel the 90s internet:
-1. Bright colors, especially neon
-2. Comic Sans or pixel fonts
-3. Animated GIF energy (use emojis as a substitute)
-4. "Under construction" vibes
-5. Visitor counters, guestbook mentions
-6. Marquee-style excitement
+```yaml title=".agents/recipes/release-notes.yaml"
+title: Release Notes
+description: Draft release notes from recent git changes
+instructions: |
+ Review the recent git history and changed files.
+ Write concise release notes with:
+ - user-facing changes
+ - fixes
+ - migration notes, if any
+prompt: Draft release notes for the current branch.
```
### goose Prompt
```
-Load the retro skill with summon. Then delegate a subagent to create an HTML page called my-site.html for a personal homepage.
+Use summon to delegate the release-notes recipe for this branch.
```
### goose Output
```
-─── load | summon ───────────────────────────────────────────
-source: retro
-
-# Loaded: retro (skill)
-
-## retro (skill)
-
-Creates content with 90s web aesthetic
-
-### Content
-
-# Retro Web Guidelines
-
-Channel the 90s internet:
-1. Bright colors, especially neon
-2. Comic Sans or pixel fonts
-3. Animated GIF energy (use emojis as substitute)
-4. "Under construction" vibes
-5. Visitor counters, guestbook mentions
-6. Marquee-style excitement
-
----
-This knowledge is now available in your context.
-
-
─── delegate | summon ───────────────────────────────────────
-instructions: Create an HTML file called my-site.html for a personal homepage
-using the 90s web aesthetic...
+source: release-notes
-I've created your 90s-style personal homepage at `my-site.html`! 🌟
+The release-notes subagent reviewed the branch and drafted release notes:
-The page includes all the classic retro web elements:
+## User-facing changes
+- Added support for configuring project-specific extensions.
+- Improved error messages when extension startup fails.
-- **Marquee tags** - Scrolling welcome message and bouncing text
-- **Neon colors** - Hot pink, lime green, cyan, yellow on a navy blue background
-- **Comic Sans font** - The quintessential 90s typeface
-- **Visitor counter** - You're visitor #001337 with a blinking effect
-- **"Under Construction" section** - With 🚧 emojis
-- **About Me box** - With neon border styling
-- **Favorite Links table** - Classic link collection
-- **Guestbook section** - Sign and view options
-- **Retro badges** - "Best viewed in Netscape Navigator 4.0"
-- **Lots of emojis** - 🌟✨💫🔥⭐🌈🎉 throughout
-
-Open it in your browser to experience the full nostalgic glory! 🎉
+## Fixes
+- Fixed stale extension state after disabling an extension.
```
-### Results
+## Common Summon Commands
-
+Ask goose to use Summon in natural language, or call the tools directly:
+
+```text
+load()
+load(source: "release-notes")
+delegate(source: "release-notes")
+delegate(instructions: "Review these docs and report stale links")
+delegate(source: "release-notes", async: true)
+load(source: "20260219_1", peek: true)
+load(source: "20260219_1")
+```
+
+Calling `load()` with no arguments lists available sources. For background tasks, `delegate(..., async: true)` returns a task id, and `load(source: "")` waits for the result.
diff --git a/documentation/docs/mcp/supabase-mcp.md b/documentation/docs/mcp/supabase-mcp.md
index 38c3dd578..cb5b4f866 100644
--- a/documentation/docs/mcp/supabase-mcp.md
+++ b/documentation/docs/mcp/supabase-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the [Supabase MCP Server](https://github.com/sup
[Launch the installer](goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.supabase.com%2Fmcp&id=supabase&name=Supabase&description=Connect%20your%20Supabase%20projects%20to%20AI%20assistants.%20Manage%20tables%2C%20query%20data%2C%20deploy%20Edge%20Functions%2C%20and%20interact%20with%20your%20Supabase%20backend%20directly%20from%20your%20MCP%20client.)
- Use `goose configure` to add a `Remote Extension (Streaming HTTP)` extension type with:
+ Use `goose configure` to add a `Remote Extension (Streamable HTTP)` extension type with:
**Endpoint URL**
```
@@ -188,14 +188,14 @@ JWT Verification: Enabled
Created: November 8, 2025
Function code:
-```typescript
+~~~typescript
Deno.serve(async (req) => {
return new Response(
JSON.stringify({ message: "Hello World!" }),
{ headers: { "Content-Type": "application/json" } },
)
})
-```
+~~~
Endpoint:
https://tabowbdrhvtlvzvfyinw.supabase.co/functions/v1/hello-world
diff --git a/documentation/docs/mcp/vmware-aiops-mcp.md b/documentation/docs/mcp/vmware-aiops-mcp.md
index 8b663d5f6..8f1a7338c 100644
--- a/documentation/docs/mcp/vmware-aiops-mcp.md
+++ b/documentation/docs/mcp/vmware-aiops-mcp.md
@@ -70,7 +70,6 @@ vmware-aiops doctor
type="stdio"
command="uvx"
args={["--from", "vmware-aiops", "vmware-aiops-mcp"]}
- timeout={300}
envVars={[
{ name: "VMWARE_AIOPS_CONFIG", label: "Path to config.yaml (e.g. /Users/you/.vmware-aiops/config.yaml)" }
]}
diff --git a/documentation/docs/mcp/youtube-transcript-mcp.md b/documentation/docs/mcp/youtube-transcript-mcp.md
index 593bb0ed5..02505138d 100644
--- a/documentation/docs/mcp/youtube-transcript-mcp.md
+++ b/documentation/docs/mcp/youtube-transcript-mcp.md
@@ -16,7 +16,7 @@ This tutorial covers how to add the [YouTube Transcript MCP Server](https://gith
:::tip Quick Install
- [Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fjkawamoto%2Fmcp-youtube-transcript&arg=mcp-youtube-transcript&id=youtube-transcript&name=YouTube%20Transcript&description=Access%20YouTube%20video%20transcripts)
+ [Launch the installer](goose://extension?cmd=uvx&arg=--from&arg=git%2Bhttps%3A%2F%2Fgithub.com%2Fjkawamoto%2Fmcp-youtube-transcript&arg=mcp-youtube-transcript&id=youtube-transcript-mcp&name=YouTube%20Transcript&description=Access%20YouTube%20video%20transcripts)
**Command**
@@ -37,7 +37,7 @@ Note that you'll need [uv](https://docs.astral.sh/uv/#installation) installed on
-
-
-### Instruction Files
-
-Use instruction files for consistent behavior across sessions. This method uses fewer tokens but has slower startup.
-
-Create `~/.config/goose/cognee-instructions.md`:
-
-````markdown
-You are an LLM agent with access to a Cognee knowledge graph for memory.
-
-**IMPORTANT RULES:**
-- Never call the `prune` command
-- Always search memory before responding to user queries
-- Automatically cognify new information you learn about the user
-
-**Memory Workflow:**
-1. **Before each response**: Search the knowledge graph
- - Map user request to appropriate search type:
- - Summary → SUMMARIES
- - Relationships → INSIGHTS
- - Specific facts → CHUNKS
- - Explanations → COMPLETION
- - Complex relations → GRAPH_COMPLETION
- - Code examples → CODE
-
-2. **Search command**:
- ```text
- cognee-mcp__search(\{
- search_query: "user prompt",
- search_type: "mapped type"
- \})
- ```
-
-3. **Incorporate results** into your response
-
-**Memory Updates:**
-- When you learn new facts, preferences, or relationships about the user
-- Call: `cognee-mcp__cognify(\{ data: "information" \})`
-- Monitor with: `cognee-mcp__cognify_status()`
-
-**Code Analysis:**
-- When asked to analyze code repositories
-- Use: `cognee-mcp__codify(\{ repo_path: "path" \})`
-- Only process files returned by `rg --files`
-````
-
-Start goose with instructions:
-```bash
-goose run -i ~/.config/goose/cognee-instructions.md -s
-```
-
-
-
-
-### goosehints File
-
-For faster startup with higher token usage, add to your `.goosehints` file:
-
-```text
-COGNEE_MEMORY_SYSTEM:
-You have access to a Cognee knowledge graph for persistent memory.
-
-MEMORY_RETRIEVAL_PROTOCOL:
-- Before responding, determine request type and map to search type
-- Search types: SUMMARIES, INSIGHTS, CHUNKS, COMPLETION, GRAPH_COMPLETION, CODE
-- Always call: cognee-mcp__search with search_query and search_type parameters
-- Incorporate memory results into responses
-
-MEMORY_STORAGE_PROTOCOL:
-- Auto-cognify new user facts, preferences, relationships
-- Call: cognee-mcp__cognify with data parameter
-- Never use prune command
-
-CODE_ANALYSIS_PROTOCOL:
-- For repositories: cognee-mcp__codify with repo_path parameter
-- Only process files from rg --files output
-```
-
-
-
-
-### Strategy 3: Memory MCP Integration
-
-Combine with the [Memory MCP extension](../mcp/memory-mcp.md) for hybrid approach:
-
-1. Store Cognee usage patterns as memories
-2. Use Memory MCP to trigger Cognee searches
-3. Lower token usage than goosehints
-4. More reliable than pure instruction files
-
-## Advanced Workflows
-
-### Developer Workflow
-
-For software development projects:
-
-```bash
-# Start goose with Cognee
-goose session
-
-# In goose, analyze your codebase
-> goose, please codify this repository and then help me understand the architecture
-```
-
-goose will:
-1. Run `cognee-mcp__codify` on your repository
-2. Build a code knowledge graph
-3. Answer architecture questions using the graph
-
-### Research Workflow
-
-For research and documentation:
-
-```bash
-# Cognify research documents
-> goose, please cognify the contents of these research papers: paper1.pdf, paper2.pdf, paper3.pdf
-
-# Later, query relationships
-> What are the connections between the methodologies in these papers?
-```
-
-### Personal Assistant Workflow
-
-For personal productivity:
-
-```bash
-# Store preferences
-> Remember that I prefer morning meetings, work best with 2-hour focused blocks, and need 15-minute breaks between calls
-
-# Query later
-> Based on my preferences, how should I structure tomorrow's schedule?
-```
-
-## Performance Optimization
-
-### Server Configuration
-
-For optimal performance, run Cognee as a separate server:
-
-```bash
-# Create optimized startup script
-cat > start-cognee-optimized.sh << 'EOF'
-#!/bin/bash
-set -e
-
-# Performance settings
-export DEBUG=false
-export LOG_LEVEL=WARNING
-export RATE_LIMIT_INTERVAL=30
-
-# Model configuration
-export LLM_API_KEY=${OPENAI_API_KEY}
-export LLM_MODEL=openai/gpt-4o-mini # Faster, cheaper model
-export EMBEDDING_API_KEY=${OPENAI_API_KEY}
-export EMBEDDING_MODEL=openai/text-embedding-3-small # Faster embedding
-
-# Server settings
-export HOST=0.0.0.0
-export PORT=8000
-
-cd /path/to/cognee-mcp
-uv run python src/server.py --transport sse
-EOF
-
-chmod +x start-cognee-optimized.sh
-```
-
-### Memory Management
-
-Monitor and manage your knowledge graph:
-
-```bash
-# Check status
-> goose, what's the status of the cognify pipeline?
-
-# Selective pruning (if needed)
-> goose, can you help me identify outdated information in the knowledge graph?
-```
-
-## Troubleshooting
-
-### Common Issues
-
-1. **Slow startup**: Use Method 2 (separate server) configuration
-2. **Memory not persisting**: Check file permissions and paths
-3. **Search returning empty results**: Ensure data was properly cognified
-4. **High token usage**: Use instruction files instead of goosehints
-
-### Debug Commands
-
-```bash
-# Check Cognee logs
-tail -f ~/.local/share/cognee/logs/cognee.log
-
-# Test server connection
-curl http://localhost:8000/health
-
-# Verify knowledge graph status
-# In goose session:
-> goose, run cognify_status and codify_status
-```
-
-## Best Practices
-
-### Data Organization
-
-1. **Use nodesets** for organizing different types of information:
- ```bash
- # Developer rules
- > goose, add these coding standards to the 'developer_rules' nodeset
-
- # Project-specific info
- > goose, cognify this project documentation with nodeset 'project_alpha'
- ```
-
-2. **Regular maintenance**:
- - Review and update stored information monthly
- - Remove outdated preferences and facts
- - Optimize search queries based on usage patterns
-
-### Integration Patterns
-
-1. **Layered approach**: Use both Memory MCP and Cognee for different purposes
-2. **Context switching**: Different instruction files for different workflows
-3. **Selective automation**: Not every interaction needs knowledge graph queries
-
-## Examples
-
-### Code Review Assistant
-
-```bash
-# Setup
-> goose, codify this repository and remember that I prefer: functional programming patterns, comprehensive tests, and clear documentation
-
-# Usage
-> Review this pull request and check it against my coding preferences
-```
-
-### Meeting Assistant
-
-```bash
-# Before meeting
-> goose, cognify the agenda and participant backgrounds from these documents
-
-# During/after meeting
-> Based on the knowledge graph, what are the key action items and how do they relate to our previous discussions?
-```
-
-### Research Assistant
-
-```bash
-# Literature review
-> goose, cognify these 10 research papers and create a knowledge graph of the relationships between their methodologies
-
-# Synthesis
-> What are the emerging patterns in the research and what gaps exist?
-```
-
-This advanced usage guide should help you maximize the potential of Cognee with goose for sophisticated knowledge management and automation workflows.
diff --git a/documentation/docs/tutorials/subagents.md b/documentation/docs/tutorials/subagents.md
index e66152eda..69290902f 100644
--- a/documentation/docs/tutorials/subagents.md
+++ b/documentation/docs/tutorials/subagents.md
@@ -1,13 +1,9 @@
---
title: Using Subagents
description: Spin up a team of subagents to build a fully functional app
-image: /assets/images/tutorial-using-subagents-ef265627024db73e73d80e5799ed0c1a.png
+image: /img/tutorial-using-subagents.png
---
-
-
-
-
This tutorial walks you through how to spin up a team of AI [subagents](/docs/guides/context-engineering/subagents/) and guide them through building a fully functional app.
You'll build **AI BriefMe**, an app that generates a structured executive style briefing based on any topic.
@@ -390,4 +386,3 @@ Don't expect your app to be production ready. This workshop shows how vibe codin
- `http://localhost:3000/index.html`
- `http://localhost:3000/style.css`
- `http://localhost:3000/script.js`
-
diff --git a/documentation/docusaurus.config.ts b/documentation/docusaurus.config.ts
index 379b6afbd..5298dbe00 100644
--- a/documentation/docusaurus.config.ts
+++ b/documentation/docusaurus.config.ts
@@ -334,10 +334,6 @@ const config: Config = {
from: "/docs/tutorials/knowledge-graph-mcp",
to: "/docs/mcp/knowledge-graph-mcp",
},
- {
- from: "/docs/tutorials/mbot-mcp",
- to: "/docs/mcp/mbot-mcp",
- },
{
from: "/docs/tutorials/memory-mcp",
to: "/docs/mcp/memory-mcp",
diff --git a/documentation/src/pages/grants.md b/documentation/src/pages/grants.md
index 26480361f..b0ca2d681 100644
--- a/documentation/src/pages/grants.md
+++ b/documentation/src/pages/grants.md
@@ -4,7 +4,6 @@ description: $100K grants for open source devs building the future of agentic AI
---
import Link from "@docusaurus/Link";
-import { Button } from "@site/src/components/ui/button";

@@ -17,9 +16,7 @@ We’ve created a grant program to accelerate goose in the open source community
-
- ## what makes a good proposal
-
+## what makes a good proposal
We're looking for clear, compelling, and ambitious ideas that align with goose’s values: openness, modularity, and user empowerment.
@@ -35,9 +32,7 @@ Above all, we want to fund work that aligns with these values and demonstrates a
-
- ## grant details
-
+## grant details
- **Project Length:** 12 months
@@ -47,9 +42,7 @@ Above all, we want to fund work that aligns with these values and demonstrates a
_subject to applicable law_
-
- ## faq
-
+## faq
**When are proposals accepted?**
@@ -93,9 +86,7 @@ Anyone. We welcome individuals, working on their own or in small teams, as long
-
- ## contact us
-
+## contact us
If you have additional questions, feel free to reach out in [Discord](https://discord.com/channels/1287729918100246654/1397943505216868444) in the #goose-grants forum.
@@ -105,10 +96,10 @@ If you have additional questions, feel free to reach out in [Discord](https://di
-
+
-
-
\ No newline at end of file
+
+
diff --git a/documentation/src/pages/markdown-page.md b/documentation/src/pages/markdown-page.md
deleted file mode 100644
index 9756c5b66..000000000
--- a/documentation/src/pages/markdown-page.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Markdown page example
----
-
-# Markdown page example
-
-You don't need React to write simple standalone pages.
diff --git a/documentation/static/servers.json b/documentation/static/servers.json
index 189ada2d1..ecd97d7eb 100644
--- a/documentation/static/servers.json
+++ b/documentation/static/servers.json
@@ -104,16 +104,26 @@
"id": "browserbase-mcp",
"name": "Browserbase",
"description": "Browser automation and web scraping",
- "command": "npx -y @browserbasehq/mcp-server-browserbase",
+ "command": "npx -y @browserbasehq/mcp",
"link": "https://github.com/browserbase/mcp-server-browserbase",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
"endorsed": true,
"environmentVariables": [
+ {
+ "name": "BROWSERBASE_PROJECT_ID",
+ "description": "Required environment variable",
+ "required": true
+ },
{
"name": "BROWSERBASE_API_KEY",
"description": "Required environment variable",
"required": true
+ },
+ {
+ "name": "GEMINI_API_KEY",
+ "description": "Required environment variable",
+ "required": true
}
]
},
@@ -145,24 +155,6 @@
}
]
},
- {
- "id": "cognee-mcp",
- "name": "Cognee",
- "description": "Knowledge graph and cognitive AI capabilities (requires local server setup)",
- "command": "uv --directory /path/to/cognee-mcp run python src/server.py",
- "link": "https://github.com/topoteretes/cognee",
- "installation_notes": "This is a local extension. You must first clone and install the Cognee MCP server locally before using this extension. Update the placeholder path before running the 'goose session' command.",
- "is_builtin": false,
- "endorsed": true,
- "show_install_link": false,
- "environmentVariables": [
- {
- "name": "LLM_API_KEY",
- "description": "API key for your LLM provider",
- "required": true
- }
- ]
- },
{
"id": "computercontroller",
"name": "Computer Controller",
@@ -381,17 +373,6 @@
"endorsed": false,
"environmentVariables": []
},
- {
- "id": "i-ching",
- "name": "I Ching",
- "description": "I Ching divination readings with Wilhelm-Baynes translation - provides traditional three coins method divination with complete hexagram meanings, judgments, and line interpretations",
- "command": "i-ching-mcp-server",
- "link": "https://github.com/threemachines/i-ching",
- "installation_notes": "Install from crates.io using: cargo install i-ching",
- "is_builtin": false,
- "endorsed": false,
- "environmentVariables": []
- },
{
"id": "jetbrains",
"name": "JetBrains",
@@ -443,34 +424,6 @@
}
]
},
- {
- "id": "mbot-mcp",
- "name": "MBot",
- "description": "Control a MakeBlock mbot2 rover through MQTT (requires local setup)",
- "command": "/path/to/java -jar /path/to/mbotmcp-0.0.1-SNAPSHOT.jar",
- "link": "https://github.com/deemkeen/mbotmcp",
- "installation_notes": "This is a local extension. You must first download the JAR file from the repository, install Java, and update the placeholder paths before running the 'goose session' command.",
- "is_builtin": false,
- "endorsed": false,
- "show_install_link": false,
- "environmentVariables": [
- {
- "name": "MQTT_SERVER_URI",
- "description": "MQTT server URI (example: tcp://1.2.3.4:1883)",
- "required": true
- },
- {
- "name": "MQTT_USERNAME",
- "description": "MQTT username (empty string if no auth required)",
- "required": true
- },
- {
- "name": "MQTT_PASSWORD",
- "description": "MQTT password (empty string if no auth required)",
- "required": true
- }
- ]
- },
{
"id": "memory",
"name": "Memory",
@@ -486,9 +439,9 @@
"id": "mongodb",
"name": "MongoDB",
"description": "MongoDB database integration",
- "command": "npx -y mongodb-mcp-server --connection-string mongodb://localhost:27017",
+ "command": "npx -y mongodb-mcp-server --connectionString mongodb://localhost:27017",
"link": "https://github.com/mongodb-js/mongodb-mcp-server",
- "installation_notes": "Install using npx package manager. Update connection-string as needed to match your MongoDB environment.",
+ "installation_notes": "Install using npx package manager. Update connectionString as needed to match your MongoDB environment.",
"is_builtin": false,
"endorsed": true,
"environmentVariables": []
@@ -633,23 +586,12 @@
"id": "reddit-mcp",
"name": "Reddit",
"description": "Reddit API integration for posts and comments",
- "command": "npx -y reddit-mcp",
+ "command": "uvx --from git+https://github.com/adhikasp/mcp-reddit.git mcp-reddit",
"link": "https://github.com/adhikasp/mcp-reddit",
- "installation_notes": "Install using npx package manager.",
+ "installation_notes": "Install using uvx.",
"is_builtin": false,
"endorsed": false,
- "environmentVariables": [
- {
- "name": "REDDIT_CLIENT_ID",
- "description": "Required environment variable",
- "required": true
- },
- {
- "name": "REDDIT_CLIENT_SECRET",
- "description": "Required environment variable",
- "required": true
- }
- ]
+ "environmentVariables": []
},
{
"id": "rendex-mcp",
@@ -675,7 +617,7 @@
"id": "repomix-mcp",
"name": "Repomix",
"description": "Repository analysis and code organization",
- "command": "npx -y repomix-mcp",
+ "command": "npx -y repomix --mcp",
"link": "https://github.com/yamadashy/repomix",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
@@ -698,7 +640,7 @@
"id": "selenium-mcp",
"name": "Selenium",
"description": "Web browser automation and testing",
- "command": "npx -y selenium-mcp",
+ "command": "npx -y @angiejones/mcp-selenium",
"link": "https://github.com/angiejones/mcp-selenium",
"installation_notes": "Install using npx package manager.",
"is_builtin": false,
@@ -756,23 +698,6 @@
}
]
},
- {
- "id": "sugar",
- "name": "Sugar",
- "description": "Autonomous AI development system - delegate tasks, run 24/7, auto-discover work from errors and GitHub issues",
- "command": "npx -y sugarai-mcp",
- "link": "https://github.com/cdnsteve/sugar",
- "installation_notes": "Requires Python 3.11+ and Sugar CLI: pip install sugarai && sugar init",
- "is_builtin": false,
- "endorsed": false,
- "environmentVariables": [
- {
- "name": "SUGAR_PROJECT_ROOT",
- "description": "Project directory for Sugar operations (defaults to current directory)",
- "required": false
- }
- ]
- },
{
"id": "tavily",
"name": "Tavily Web Search",
diff --git a/ui/desktop/src/components/ExtensionInstallModal.test.tsx b/ui/desktop/src/components/ExtensionInstallModal.test.tsx
index 594f3d473..7524bf31a 100644
--- a/ui/desktop/src/components/ExtensionInstallModal.test.tsx
+++ b/ui/desktop/src/components/ExtensionInstallModal.test.tsx
@@ -106,25 +106,6 @@ describe('ExtensionInstallModal', () => {
expect(screen.getAllByRole('button')).toHaveLength(3);
});
- it('should handle i-ching-mcp-server as allowed command', async () => {
- mockElectron.getAllowedExtensions.mockResolvedValue([]);
-
- renderWithIntl();
-
- const eventHandler = getAddExtensionEventHandler();
-
- await act(async () => {
- await eventHandler(
- {},
- 'goose://extension?cmd=i-ching-mcp-server&id=i-ching&name=I%20Ching&description=I%20Ching%20divination'
- );
- });
-
- expect(screen.getByRole('dialog')).toBeInTheDocument();
- expect(screen.getByText('Confirm Extension Installation')).toBeInTheDocument();
- expect(screen.getByText(/I Ching extension/)).toBeInTheDocument();
- expect(screen.getAllByRole('button')).toHaveLength(3);
- });
it('should handle blocked extension', async () => {
mockElectron.getAllowedExtensions.mockResolvedValue(['uvx allowed-package']);
diff --git a/ui/desktop/src/components/settings/extensions/deeplink.ts b/ui/desktop/src/components/settings/extensions/deeplink.ts
index 03512317e..0d9d19323 100644
--- a/ui/desktop/src/components/settings/extensions/deeplink.ts
+++ b/ui/desktop/src/components/settings/extensions/deeplink.ts
@@ -21,7 +21,6 @@ function getStdioConfig(
'uvx',
'goose',
'npx.cmd',
- 'i-ching-mcp-server',
];
if (!allowedCommands.includes(cmd)) {
toastService.handleError(