# goose | Block Open Source | Knowledge Base | Instagit

an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

GitHub Stars: 36.1k

Repository: https://github.com/block/goose

---

## Articles

### [Goose Enhanced Code Editing Architecture: External Editor Integration Explained](/block/goose/goose-enhanced-code-editing-architecture)

Explore Goose Enhanced Code Editing Architecture. Seamlessly integrate external editors for a streamlined coding workflow with temporary files and symlinks.

- Tags: architecture
- Published: 2026-04-05

### [How Goose Planning Mode Creates Structured Step-by-Step Plans](/block/goose/goose-planning-mode-structured-plans)

Discover how Goose planning mode transforms user requests into structured step-by-step plans using a dedicated reasoner model. Learn more about actionable plan generation.

- Tags: how-to-guide
- Published: 2026-04-05

### [How to Integrate Goose with JetBrains or Zed Using ACP: Complete Setup Guide](/block/goose/goose-jetbrains-zed-integration-acp)

Easily integrate Goose with JetBrains IDEs and Zed using ACP. Follow this complete setup guide to configure your ACP server and agent for seamless workflow.

- Tags: how-to-guide
- Published: 2026-04-05

### [What Is Goose Adversarial Mode and How Does It Differ From Normal Operation?](/block/goose/goose-adversarial-mode-vs-normal-operation)

Explore Goose adversarial mode a security layer enhancing tool call inspection with custom rules. Learn how it differs from standard GooseMode operations.

- Tags: deep-dive
- Published: 2026-04-05

### [How Goose Slash Commands Work: A Complete Guide to Creating Custom Commands](/block/goose/goose-slash-commands-customization)

Discover how Goose slash commands work and easily create your own custom commands. Learn to define shortcuts for built-in functions or user-defined recipes in this comprehensive guide.

- Tags: how-to-guide
- Published: 2026-04-05

### [Goose Tool Registry and Filtering Mechanism: Dynamic Extension Management](/block/goose/goose-tool-registry-filtering-mechanism-design)

Explore the Goose tool registry: discover how it dynamically aggregates tools from MCP extensions and offers filtering APIs for precise extension management. Learn about its design.

- Tags: deep-dive
- Published: 2026-04-05

### [How the Goose Fork Feature Works for Duplicating and Modifying Sessions](/block/goose/goose-fork-feature-session-duplication-modification)

Learn how the Goose fork feature duplicates and modifies sessions using copy_session and truncate_conversation methods via CLI and API. Understand session management in blockgoose.

- Tags: internals
- Published: 2026-04-05

### [How to Configure OpenTelemetry Exports for Goose Observability](/block/goose/goose-opentelemetry-export-configuration)

Configure OpenTelemetry exports for Goose observability with ease. Enable OTLP for traces metrics and logs using simple environment variables. No code changes needed with the otel feature.

- Tags: how-to-guide
- Published: 2026-04-05

### [How to Use Goose's External Editor Mode for Composing Prompts](/block/goose/goose-external-editor-mode-prompt-composition)

Learn how to use Goose's external editor mode to compose prompts efficiently. Configure your favorite editor like vim or VS Code for enhanced prompt writing.

- Tags: how-to-guide
- Published: 2026-04-05

### [How Goose Implements Prompt Injection Detection and Security Filtering](/block/goose/goose-prompt-injection-detection-security-filtering)

Learn how Goose implements prompt injection detection using regex and ML to secure your shell tools. Block malicious commands effectively with its dual-layer security pipeline.

- Tags: internals
- Published: 2026-04-05

### [Difference Between stdio and streamable-http Extensions in Goose: MCP Transport Guide](/block/goose/goose-stdio-vs-streamable-http-extensions)

Understand the difference between stdio and streamable-http extensions in Goose. Learn how stdio uses local child processes and streamable-http connects to remote servers via HTTP for MCP transport.

- Tags: deep-dive
- Published: 2026-04-05

### [How to Set Up Scheduled Recipe Execution in Goose Using Cron Expressions](/block/goose/goose-scheduled-recipe-execution-cron)

Learn to set up scheduled recipe execution in Goose using cron expressions. Automate your tasks with Goose's in-process scheduler and tokio_cron_scheduler for efficient job management.

- Tags: how-to-guide
- Published: 2026-04-05

### [What Is the MCP Elicitation Process and How Do Goose Extensions Expose Tools?](/block/goose/goose-mcp-elicitation-extension-tool-exposure)

Understand the MCP elicitation process and how Goose extensions expose tools. Learn about the round-trip workflow and tool ID validation for agents.

- Tags: internals
- Published: 2026-04-05

### [How to Configure Goose Recipes with Parameters and Sub-Recipes](/block/goose/goose-recipe-configuration-parameters-subrecipes)

Learn to configure Goose recipes with dynamic parameters and sub-recipes. Master nested workflows and value mappings for efficient automation in block/goose.

- Tags: how-to-guide
- Published: 2026-04-05

### [How Goose's Interactive Loop Handles Tool Execution Errors and Recovery](/block/goose/goose-interactive-loop-tool-error-recovery)

Goose's interactive loop expertly handles tool execution errors converting failures to ToolCallResult payloads or cancellation tokens. Recover gracefully and continue conversations without session termination.

- Tags: internals
- Published: 2026-04-05

### [How to Create a Custom Extension Using the ExtensionState Trait in Goose (Rust)](/block/goose/goose-custom-extension-rust-trait)

Learn to create custom extensions in Goose Rust by implementing the ExtensionState trait. Manage typed session data persisted automatically in Goose's ExtensionData store.

- Tags: how-to-guide
- Published: 2026-04-05

### [Goose Context Revision Algorithm: Token Management and Cost Optimization Explained](/block/goose/goose-context-revision-token-cost-optimization)

Explore Goose's context revision algorithm. Optimize token management, reduce API costs with LLM summarization, and manage context window limits effectively. Discover efficient large language model interaction.

- Tags: deep-dive
- Published: 2026-04-05

### [How Tool Permissions Work in Goose: Auto, Approve, Chat, and SmartApprove Modes](/block/goose/goose-tool-permissions-modes)

Understand Goose tool permissions. Explore Auto, Approve, Chat, and SmartApprove modes to control tool execution based on YAML settings and safety detection.

- Tags: deep-dive
- Published: 2026-04-05

### [Security Considerations for API Keys in Goose and Keyring Integration](/block/goose/goose-api-key-security-keyring-integration)

Learn about Goose API key security. Discover its three-tier hierarchy: environment variables, OS keyring, and restricted files for secure integration.

- Tags: security-best-practices
- Published: 2026-04-05

### [How Goose Session Storage Works with SQLite and Migrates from JSONL](/block/goose/goose-sqlite-session-storage-jsonl-migration)

Explore how Goose session storage uses SQLite, automatically migrating legacy JSONL data with incremental schema updates on startup. Learn more.

- Tags: internals
- Published: 2026-04-05

### [How to Implement a Custom Provider for a Proprietary LLM API in Goose: A Complete Guide](/block/goose/goose-custom-llm-provider-implementation)

Learn how to implement a custom provider for a proprietary LLM API in Goose. This guide covers trait implementation, API client configuration, and registration for seamless integration.

- Tags: how-to-guide
- Published: 2026-04-05

### [Agent Client Protocol (ACP) Internal Architecture in Goose](/block/goose/goose-acp-internal-architecture)

Explore the internal architecture of the Agent Client Protocol ACP in block/goose. Discover its multi-layered async server implementation for the Goose agent API.

- Tags: internals
- Published: 2026-04-05

