Overview
Goose is an open-source Rust coding agent with CLI, desktop app (Electron), and server modes. Uses system keyring for credentials.Binary path:
Config:
Dependencies:
License: Apache-2.0 (open source)
~/.local/bin/gooseConfig:
~/Library/Application Support/Block.goose/ (macOS)Dependencies:
$$require=55-integrations-optional/keychain.sb$$License: Apache-2.0 (open source)
Sandbox Profile
Running in Safehouse
Execution Modes
- CLI (Interactive) — Custom TUI with rustyline/cliclack/bat
- Desktop App — Electron app (React + HTTP/WebSocket to
goosed) - Web mode —
goose webbinds axum server on port 3000 - Server —
goosedbinary (HTTP/WebSocket API)
Keyring Integration
Goose uses thekeyring crate with:
- macOS:
apple-native(Security.framework) - Linux:
sync-secret-service(D-Bus) - Windows:
windows-native(Credential Manager)
goose, username: secrets
Fallback: ~/.config/goose/secrets.yaml (plaintext YAML)
OAuth Flows
| Provider | Port | Endpoints |
|---|---|---|
| MCP OAuth | Random (127.0.0.1:0) | Dynamic per-server |
| Databricks | Configured | databricks/oauth |
| ChatGPT/Codex | 127.0.0.1:16372 | OpenAI auth |
| OpenRouter | 127.0.0.1:3000 | openrouter.ai |
| Tetrate | 127.0.0.1:3000 | Tetrate endpoints |
MCP Extension Servers
Goose includes built-in MCP servers:- Developer — File editing, shell, screen capture, memory
- Computer Controller — AppleScript (macOS), shell automation
- Memory — Project-local and global storage
- Tutorial — Onboarding/help
- Auto-visualiser — Data visualization
Screen Capture
Usesxcap crate for screenshots:
- Full display capture
- Specific window capture
- Window list enumeration
Security Considerations
Configuration Files
| Path | Purpose |
|---|---|
~/.config/goose/config.yaml | Main config |
~/.config/goose/secrets.yaml | Fallback secrets (if keyring disabled) |
~/.config/goose/custom_providers/ | Custom model definitions |
~/.config/goose/recipes/ | Global recipes |
~/.config/goose/memory/ | Global memory |
~/.local/share/goose/sessions/sessions.db | SQLite session storage |