🗃️ Managing Sessions
3 items
🗃️ Context Engineering
3 items
🗃️ Recipes
4 items
📄️ Persistent Instructions
Persistent instructions let you inject text into goose's working memory every turn. Unlike .goosehints which are loaded once at session start, persistent instructions are re-read and injected fresh with every interaction. This makes them ideal for behavioral guardrails that must always be enforced, regardless of how the conversation evolves.
📄️ 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.
🗃️ Managing Tools
3 items
📄️ goose Permissions
goose’s permissions determine how much autonomy it has when modifying files, using extensions, and performing automated actions. By selecting a permission mode, you have full control over how goose interacts with your development environment.
📄️ Updating goose
The goose CLI and desktop apps are under active and continuous development. To get the newest features and fixes, you should periodically update your goose client using the following instructions.
📄️ Quick Tips
Best practices for working with goose
📄️ CLI Commands
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.
🗃️ Security
2 items
📄️ CLI Providers
Use Claude Code, Codex, Cursor Agent, or Gemini CLI subscriptions in goose
📄️ Subagents
Subagents are independent instances that execute tasks while keeping your main conversation clean and focused. Think of them as temporary assistants that handle specific jobs, bringing process isolation and context preservation by offloading work to separate instances.
📄️ MCP Sampling
Transforms MCP servers into intelligent agents that can think, analyze, and make decisions using goose's AI
🗃️ MCP Apps and MCP-UI
1 item
📄️ MCP Elicitation
How extensions can request structured information from you during a task
📄️ Custom Distributions
goose is designed to be forked and customized. You can create your own "distro" of goose preconfigured with specific providers, bundled extensions, custom branding, and tailored workflows for your organization or audience.
📄️ LLM Rate Limits
Rate limiting is the process of restricting the number of requests a user or application can send to an LLM API within a specific timeframe. LLM providers enforce this with the purpose of managing resources and preventing abuse.
📄️ Logging System
goose uses a unified storage system for conversations and interactions. All conversations and interactions (both CLI and Desktop) are stored locally in the following locations:
📄️ Usage Data
On first use, goose asks for permission to collect anonymous usage data to help improve the product. You can change this setting at any time.
📄️ File Management
Efficiently find and reference files in goose Desktop and follow best practices for safe file operations
📄️ Run Tasks
When working with the goose CLI, you can pass files and instructions to the goose run command to execute tasks and workflows. This could be a simple one-liner command or a complex set of instructions stored in a file.
📄️ Using gooseignore
.gooseignore is a text file that defines patterns for files and directories that goose will not access. This means goose cannot read, modify, delete, or run shell commands on these files when using the Developer extension's tools.
📄️ Configuration Files
goose uses YAML configuration files to manage settings and extensions. The primary config file is located at:
📄️ Prompt Templates
Learn how to customize the prompt templates that define goose's behavior in different situations
📄️ Creating Plans
Starting a project without a clear plan is like building a house without a blueprint. It can lead to:
📄️ Extension Allowlist
goose is an extensible framework that, by default, allows you to install any MCP server. However, you may want stricter controls on which MCP servers can be installed as extensions (e.g. in a corporate setting).
📄️ Environment Variables
goose supports various environment variables that allow you to customize its behavior. This guide provides a comprehensive list of available environment variables grouped by their functionality.
📄️ Multi-Model Config
Approaches for configuring model-switching behavior to optimize for cost, performance, and results.
📄️ goose in ACP Clients
Client applications that support the Agent Client Protocol (ACP) can connect natively to goose. This integration allows you to seamlessly interact with goose directly from the client.
📄️ Enhanced Code Editing
Use AI models to intelligently apply code changes
📄️ Codebase Analysis
Understand codebases with semantic analysis and call graphs
📄️ macOS Sandbox for goosed
goose includes an optional macOS sandbox that restricts the goosed process using Apple's seatbelt (sandbox-exec) and routes all network traffic through a local egress proxy. This limits what the agent can do on your system — blocking sensitive file writes, raw sockets, tunneling tools, and unapproved network destinations.
📄️ Terminal Integration
Talk to goose directly from your shell prompt. Instead of switching to a separate REPL session, stay in your terminal and call goose when you need it.