Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/block/goose/llms.txt

Use this file to discover all available pages before exploring further.

Goose’s extension system allows you to add custom tools and capabilities to your AI agent through the Model Context Protocol (MCP). Extensions can be built-in, command-line (stdio), or remote (HTTP).

Extension Types

Built-in Extensions

Built-in extensions are bundled with Goose and provide core functionality:
  • developer - Code editing and shell access
  • autovisualiser - Data visualization and UI generation
  • computercontroller - Web scraping, file caching, and automation
  • memory - Persistent memory storage and retrieval
  • tutorial - Interactive tutorials and guides

Stdio Extensions

Stdio extensions run as local command-line processes that communicate over stdin/stdout using the MCP protocol.
goose session --with-extension "npx -y @block/gdrive"

Streamable HTTP Extensions

Remote extensions communicate over HTTP using MCP Streamable HTTP protocol.
goose session --with-streamable-http-extension "http://localhost:8000/messages"

Configuration

Extensions are configured in your ~/.config/goose/config.yaml file:
extensions:
  developer:
    enabled: true
    config:
      type: platform
      name: developer
      description: Code editing and shell access

  my-custom-tool:
    enabled: true
    config:
      type: stdio
      name: my-custom-tool
      cmd: npx
      args: ["-y", "@my/tool"]
      description: My custom tool
      timeout: 120

Using Extensions

In CLI Sessions

Enable extensions for a session:
# Use built-in extension
goose session --with-builtin developer

# Use multiple extensions
goose session --with-builtin developer,memory

# Use stdio extension
goose session --with-extension "npx -y @block/gdrive"

# Use without profile defaults
goose session --no-profile --with-builtin developer

In Configuration

Add extensions interactively:
goose configure
# Select: Add Extension
Toggle enabled extensions:
goose configure
# Select: Toggle Extensions

Extension Discovery

Goose discovers extension tools automatically through the MCP protocol. Each extension exposes:
  • Tools - Functions the AI can call
  • Resources - Data the extension can provide
  • Prompts - Pre-defined instruction templates
The AI agent can see and use all tools from enabled extensions.

Environment Variables

Extensions can use environment variables for configuration:
extensions:
  gdrive:
    enabled: true
    config:
      type: stdio
      name: gdrive
      cmd: npx
      args: ["-y", "@block/gdrive"]
      env_keys:
        - GOOGLE_API_KEY
      description: Google Drive integration
Secrets are stored securely in your system keyring.

Timeouts

Set custom timeouts for long-running operations:
# Set timeout in CLI
goose session --with-streamable-http-extension "http://localhost:8000 timeout=300"
In config:
config:
  timeout: 300  # seconds
Default timeout is 120 seconds.

Container Support

Run extensions inside Docker containers:
goose session --container my-container-id --with-builtin developer
The extension must be available inside the container. For built-in extensions, Goose must be installed in the container.

See Also