### Quick Start Commands Source: https://github.com/aaif-goose/goose/blob/main/evals/open-model-gym/README.md Provides essential commands for setting up and running the Open Model Gym. Use 'just install' for one-time setup, 'just run' to execute the full test matrix, and 'just report' to view results. ```bash just install # one-time setup just run # run full matrix (3 reps each) just report # view results ``` -------------------------------- ### Example Output of Plugin Installation Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/context-engineering/plugins.md This is an example of the output you can expect after successfully installing a plugin. It shows the plugin name, version, source, location, and imported skills. ```text ✓ Installed open-plugins plugin 'my-plugin' (1.0.0) Source: https://github.com/example/my-goose-plugin.git Location: /Users/you/.agents/plugins/my-plugin Imported skills: - my-plugin:review - my-plugin:test-plan ``` -------------------------------- ### Install and Run Example Hook Plugin Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/context-engineering/hooks.md This snippet shows how to install the example 'hello-hooks' plugin and run a Goose session to observe its behavior. The plugin prints hook events to stderr and logs full payloads to a file. ```bash mkdir -p ~/.agents/plugins cp -R examples/plugins/hello-hooks ~/.agents/plugins/hello-hooks chmod +x ~/.agents/plugins/hello-hooks/scripts/announce.sh goose session ``` -------------------------------- ### Install MLflow and Start Server Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/mlflow.md Install the MLflow Python package and start the MLflow tracking server. The UI will be accessible at http://localhost:5000. ```bash pip install mlflow mlflow server --port 5000 ``` -------------------------------- ### Enable Example Streamable HTTP Extension Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/getting-started/using-extensions.md Example of starting a session with a specific Streamable HTTP extension by providing its example URL. ```bash goose session --with-streamable-http-extension "https://example.com/streamable" ``` -------------------------------- ### Start New Session for API Development Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/managing-projects.md This example shows how to change to a project directory and start a new named session for API development. ```bash cd ~/projects/ecommerce-api goose session --name "api-auth-work" ``` -------------------------------- ### Workflow Setup Subrecipe Output Example Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2025-07-28-streamlining-detection-development-with-goose-recipes/index.md Provides a JSON example of the output from the workflow_setup subrecipe, detailing the structure of repository readiness, branch information, and Panther MCP access test results. ```json { "status": { "success": true }, "data": { "branch_name": "ai/okta-suspicious-login", "standards_summary": "Rules must use ai_ prefix, implement required functions...", "repo_ready": true, "mcp_panther": { "access_test_successful": true } } } ``` -------------------------------- ### Example Skill with Supporting Files Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/context-engineering/using-skills.md Demonstrates a skill that includes a bash script and a JSON template for API setup. ```markdown --- name: api-setup description: Set up API integration with configuration and helper scripts --- # API Setup This skill helps you set up a new API integration with our standard configuration. ## Steps 1. Run `setup.sh ` to create the integration directory 2. Copy `templates/config.template.json` to your integration directory 3. Update the config with your API credentials 4. Test the connection ## Configuration The config template includes: - `api_key`: Your API key (get from the provider's dashboard) - `endpoint`: API endpoint URL - `timeout`: Request timeout in seconds (default: 30) ## Verification After setup, verify: - [ ] Config file is valid JSON - [ ] API key is set and not a placeholder - [ ] Test connection succeeds ``` ```bash #!/bin/bash API_NAME=$1 mkdir -p "integrations/$API_NAME" cp templates/config.template.json "integrations/$API_NAME/config.json" echo "Created integration directory for $API_NAME" echo "Edit integrations/$API_NAME/config.json with your credentials" ``` ```json { "api_key": "YOUR_API_KEY_HERE", "endpoint": "https://api.example.com/v1", "timeout": 30, "retry_attempts": 3 } ``` -------------------------------- ### Example Allowlist Configuration Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/allowlist.md An example YAML configuration specifying allowed extensions for Slack, GitHub, and Jira. Only these extensions, identified by their commands, can be installed. ```yaml extensions: - id: slack command: uvx mcp_slack - id: github command: uvx mcp_github - id: jira command: uvx mcp_jira ``` -------------------------------- ### Setup Hermit Environment and Build Project Source: https://github.com/aaif-goose/goose/blob/main/AGENTS.md Source the environment activation script and build the project. This is a common starting point for development. ```bash source bin/activate-hermit cargo build ``` -------------------------------- ### Install Dev.to MCP Server Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/dev.to-mcp.md Clone the Dev.to MCP server repository, install dependencies, build the project, and start the server. Ensure Node.js and npm are installed. ```bash git clone https://github.com/nickytonline/dev-to-mcp.git cd dev-to-mcp npm install npm run build # one-time setup ``` ```bash npm start ``` -------------------------------- ### Start Specific Tutorial by Name Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/tutorial-mcp.md Directly request a tutorial by its name, for example, asking goose to walk through the 'first-game' tutorial. ```text ( O)> Can you walk me through the first-game tutorial? ``` -------------------------------- ### Start New Session for Admin Dashboard Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/managing-projects.md This example shows how to change to a project directory and start a new named session for working on an admin dashboard. ```bash cd ~/projects/admin-dashboard goose session --name "dashboard-ui" ``` -------------------------------- ### Start and Configure Provider Error Proxy Source: https://github.com/aaif-goose/goose/blob/main/scripts/provider-error-proxy/README.md This example shows how to start the proxy and configure your application (Goose) to use it by setting environment variables. It also displays the initial status of the proxy. ```bash $ uv run proxy.py ============================================================ 🔧 Provider Error Proxy ============================================================ Port: 8888 To use with Goose, set these environment variables: export OPENAI_HOST=http://localhost:8888 export ANTHROPIC_HOST=http://localhost:8888 ... ============================================================ ============================================================ Current mode: ✅ No error (pass through) Requests handled: 0 ============================================================ Commands: n - No error (pass through) - permanent c - Context length exceeded (1 time) c 4 - Context length exceeded (4 times) c 0.3 - Context length exceeded (30% of requests) c 30% - Context length exceeded (30% of requests) c * - Context length exceeded (100% of requests) r - Rate limit error (1 time) u - Unknown server error (1 time) q - Quit Enter command: r ============================================================ Current mode: ⏱️ Rate limit exceeded (1 remaining) Requests handled: 0 ============================================================ ... 2025-10-09 14:30:15 - __main__ - INFO - 📨 Request #1: POST /v1/chat/completions -> openai 2025-10-09 14:30:15 - __main__ - WARNING - 💥 Injecting RATE_LIMIT error (status 429) for openai Enter command: n ============================================================ Current mode: ✅ No error (pass through) Requests handled: 1 ============================================================ ... 2025-10-09 14:30:20 - __main__ - INFO - 📨 Request #2: POST /v1/chat/completions -> openai 2025-10-09 14:30:20 - __main__ - INFO - ✅ Proxied response: 200 ``` -------------------------------- ### Troubleshoot Beads MCP Extension Installation Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/beads-mcp.md If the extension fails to start due to a missing `packaging` module, install it explicitly using `uv tool install`. ```sh uv tool install beads-mcp --with packaging ``` -------------------------------- ### Install container-use on all platforms Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2025-06-19-isolated-development-environments/index.md Use this command to install the container-use CLI on any platform by downloading and executing the install script. ```bash curl -fsSL https://raw.githubusercontent.com/dagger/container-use/main/install.sh | bash ``` -------------------------------- ### Goose CLI Configuration Flow Example Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/getting-started/installation.md Illustrates the interactive command-line interface prompts and feedback during the setup of a Tetrate Agent Router Service provider. ```bash ┌ goose-configure │ ◇ How would you like to set up your provider? │ Tetrate Agent Router Service Login │ Opening browser for Tetrate Agent Router Service authentication... [goose opens the browser and prints details] Authentication complete! Configuring Tetrate Agent Router Service... ✓ Tetrate Agent Router Service configuration complete ✓ Models configured successfully Testing configuration... ✓ Configuration test passed! ✓ Developer extension enabled! └ Tetrate Agent Router Service setup complete! You can now use goose. ``` -------------------------------- ### Start New Session for Mobile App Bug Fix Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/managing-projects.md This example demonstrates navigating to a project directory and starting a new session to debug a mobile application. ```bash cd ~/projects/mobile-app goose session ``` -------------------------------- ### Install Fetch Extension via CLI Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/fetch-mcp.md Use the `uvx` command to quickly install the Fetch MCP Server extension. Ensure `uv` is installed on your system. ```sh uvx mcp-server-fetch ``` -------------------------------- ### Install Dependencies Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/subagents.md Navigate to your project directory and install the necessary Node.js dependencies. ```bash cd your-project-folder npm install ``` -------------------------------- ### Start Documentation Development Server Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/README.md Navigate to the documentation directory and start the development server to preview blog posts locally. ```bash cd documentation npm start ``` -------------------------------- ### Install goose CLI Source: https://github.com/aaif-goose/goose/blob/main/README.md Installs the goose command-line interface using a script. This is a quick way to get started with goose on your terminal. ```bash curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash ``` -------------------------------- ### Install Documentation Dependencies Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/README.md Install the necessary Node.js dependencies for the documentation site. ```bash cd documentation npm install ``` -------------------------------- ### Select Configuration Option Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/getting-started/providers.md Choose 'Configure Providers' from the main configuration menu to start. ```text ┌ goose-configure │ ◆ What would you like to configure? │ ● Configure Providers (Change provider or update credentials) │ ○ Custom Providers │ ○ Add Extension │ ○ Toggle Extensions │ ○ Remove Extension │ ○ goose Settings └ ``` -------------------------------- ### Start Building with RPI Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2026-02-06-rpi-openclaw-alternative/index.md Use this command to initiate the building process based on a pre-defined plan. Ensure the plan is ready before executing. ```bash /implement_plan start building ``` -------------------------------- ### Example goose Prompt Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/experimental/vs-code-extension.md This is an example prompt to instruct goose to update a contributing guide with specific instructions. ```plaintext Update the contributing guide at /goose/CONTRIBUTING.md with instructions on how to start docusaurus dev server ``` -------------------------------- ### Start Tutorial via Natural Language Prompt Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/tutorial-mcp.md Initiate a tutorial by asking goose directly about a topic of interest. Goose will suggest a relevant tutorial, such as 'build-mcp-extension' for learning extension development. ```text ( O)> I'd like to learn how to build an extension for goose ``` ```text I'll help you learn about building extensions! The "build-mcp-extension" tutorial would be perfect for this. Let me load it and guide you through it. ─── load_tutorial | tutorial ────────────────────────── name: build-mcp-extension Before we dive into building your extension, I need to understand a few things to better guide you: 1. Which SDK would you prefer to use? We have three options: - Python (beginner-friendly, great for prototyping) - TypeScript (great for web-based tools) - Kotlin (robust, type-safe, good for complex applications) 2. What type of extension would you like to build? For example: - A tool that performs specific actions - A resource that provides data to the LLM - Or do you have a specific idea in mind? Let me know your preferences, and I'll help you get started with the appropriate setup and implementation! For reference, here's what we'll cover: 1. Setting up your development environment 2. Creating the basic MCP server 3. Implementing your specific functionality 4. Testing and debugging Which SDK would you like to use to get started? ``` -------------------------------- ### Install Alby MCP Extension (Desktop UI) Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/alby-mcp.md Launch the installer for the Alby MCP extension directly from the goose Desktop application. This will guide you through the installation process. ```link 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 ``` -------------------------------- ### Set up Goose Plugin Example Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2026-05-14-goose-hooks/index.md Copies a sample Goose plugin to the local plugins directory and makes its script executable. This prepares the environment to test hook functionality. ```bash mkdir -p ~/.agents/plugins cp -R examples/plugins/hello-hooks ~/.agents/plugins/hello-hooks chmod +x ~/.agents/plugins/hello-hooks/scripts/announce.sh ``` -------------------------------- ### Install and Run goose ACP TUI Source: https://github.com/aaif-goose/goose/blob/main/ui/text/README.md Install dependencies and start the TUI using pnpm. This runs against the released binary. ```bash cd ui/text pnpm install # pulls the pinned @aaif/goose-sdk and its matching @aaif/goose-binary-* package pnpm start # tsx src/tui.tsx — runs against the released binary, no Rust build ``` -------------------------------- ### Set up Project Environment Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/custom-extensions.md Installs project dependencies. Ensure Node.js and npm are installed for MCP Inspector. ```bash uv sync ``` -------------------------------- ### Install Figma Extension via Goose Desktop Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/figma-mcp.md Use this link to launch the Goose Desktop installer for the Figma extension. This allows for quick setup and integration. ```html [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) ``` -------------------------------- ### Install AgentQL MCP Extension via Goose Desktop Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/agentql-mcp.md Use this link to launch the installer for the AgentQL MCP extension directly within the Goose Desktop application. It includes installation command and environment variable setup. ```html [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) ``` -------------------------------- ### Install and Run hello-hooks Plugin Source: https://github.com/aaif-goose/goose/blob/main/examples/plugins/hello-hooks/README.md Steps to install the plugin and observe its output during a Goose session. Inspect the log file to see the full event payloads. ```bash mkdir -p ~/.agents/plugins cp -R examples/plugins/hello-hooks ~/.agents/plugins/hello-hooks chmod +x ~/.agents/plugins/hello-hooks/scripts/announce.sh # Then run goose normally; you should see lines like # 🚀 [hello-hooks] SessionStart # 💬 [hello-hooks] UserPromptSubmit # ⚡ [hello-hooks] PreToolUse tool=developer__shell # ✅ [hello-hooks] PostToolUse tool=developer__shell goose session # Inspect the full payloads goose passed to the hook: tail ~/.agents/plugins/hello-hooks/last-event.log ``` -------------------------------- ### Initialize Node.js Project Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/building-mcp-apps.md Sets up a new directory for your project and initializes a Node.js project with default settings. ```bash mkdir mcp-app-demo cd mcp-app-demo npm init -y ``` -------------------------------- ### Launch Neon Remote MCP Installer via Goose Desktop Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/neon-mcp.md Use this URL to launch the installer for the Neon Remote MCP extension directly from Goose Desktop. This simplifies the setup process. ```link goose://extension?type=streamable_http&url=https%3A%2F%2Fmcp.neon.tech%2Fmcp&id=neon&name=Neon&description=Manage%20Neon%20Postgres%20databases%2C%20projects%2C%20and%20branches ``` -------------------------------- ### Initialize Project and Install Dependencies Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/remotion-video-creation.md These shell commands initialize a new project directory for the git terminal video and install the necessary Remotion and React dependencies. ```bash mkdir -p git-terminal-video && cd git-terminal-video && npm init -y ``` ```bash npm install remotion @remotion/cli react react-dom typescript @types/react ``` -------------------------------- ### Initialize MCP Project with uv Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/custom-extensions.md Sets up a new Python project for an MCP server using uv. Creates a basic directory structure and necessary files. ```bash uv init --lib mcp-wiki cd mcp-wiki mkdir -p src/mcp_wiki touch src/mcp_wiki/server.py touch src/mcp_wiki/__main__.py ``` -------------------------------- ### Goose Plugin Commands Usage Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/goose-cli-commands.md Examples for installing and updating plugins using the 'goose plugin' command. ```bash goose plugin install https://github.com/example/my-goose-plugin.git ``` ```bash goose plugin install --auto-update https://github.com/example/my-goose-plugin.git ``` ```bash goose plugin update my-plugin ``` -------------------------------- ### Launch Neon Local MCP Installer via Goose Desktop Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/neon-mcp.md Use this URL to launch the installer for the Neon Local MCP extension from Goose Desktop. It includes the command to start the server with your API key. ```link goose://extension?cmd=npx&arg=-y&arg=%40neondatabase%2Fmcp-server-neon&arg=start&arg=%3CYOUR_NEON_API_KEY%3E&id=neon&name=Neon&description=Manage%20your%20Neon%20Postgres%20databases%2C%20projects%2C%20and%20branches ``` -------------------------------- ### Example Settings Configuration (OpenAI) Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/recipes/recipe-reference.md Configure AI provider and model settings for a recipe, overriding defaults. ```yaml settings: goose_provider: "openai" goose_model: "gpt-4o" temperature: 0.3 ``` -------------------------------- ### Example Slash Command Usage Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/context-engineering/slash-commands.md Type a custom command with a leading slash at the start of your message to invoke a recipe. ```bash /daily-report ``` -------------------------------- ### Start Local Development Server Source: https://github.com/aaif-goose/goose/blob/main/documentation/README.md Starts a local development server and opens the website in a browser. Changes are reflected live without server restarts. ```bash npm run start ``` -------------------------------- ### Try the new Goose TUI Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2026-04-08-goose-acp-and-new-tui/index.md Run this command to start an interactive session with the latest beta of the TypeScript-based TUI. No installation is required. ```bash npx @aaif/goose ``` -------------------------------- ### Install and Build MCP Harness Source: https://github.com/aaif-goose/goose/blob/main/evals/open-model-gym/README.md Commands to navigate to the MCP harness directory, install its dependencies, and build the project. This is a prerequisite for using the mock MCP server. ```bash cd mcp-harness && npm install && npm run build ``` -------------------------------- ### Initialize Beads and Create Tasks via Goose Prompt Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/beads-mcp.md This example demonstrates initializing Beads and defining tasks with dependencies using a Goose prompt. It shows the expected output for task creation and dependency management. ```goose I want to build an expense tracker web app. Initialize beads and create all tasks with dependencies: Frontend tasks: - "HTML Structure" - create form, expense list, total display (no dependencies) - "CSS Styling" - style the app (depends on "HTML Structure") - "Wire Up UI" - connect buttons to functions (depends on "CSS Styling" AND all backend tasks) Backend tasks: - "Storage Setup" - localStorage helpers to save/load expenses (no dependencies) - "Add Expense" - function to add expense to storage (depends on "Storage Setup") - "Calculate Total" - function to sum all expenses (depends on "Storage Setup") - "Delete Expense" - function to remove expense (depends on "Storage Setup") Show me all tasks and which ones are ready to work on. ``` ```goose I'll initialize beads and create all the tasks with their dependencies. ─── context | beads ────────────────────────── action: init ─── create | beads ────────────────────────── title: HTML Structure description: Create form, expense list, and total display for the expense tracker app labels: frontend ─── create | beads ────────────────────────── title: Storage Setup description: Create localStorage helpers to save/load expenses labels: backend ─── create | beads ────────────────────────── title: CSS Styling deps: ultimate-beads-test-987 description: Style the expense tracker app with CSS labels: frontend ─── create | beads ────────────────────────── title: Add Expense deps: ultimate-beads-test-6gs description: Function to add expense to storage labels: backend ─── create | beads ────────────────────────── title: Calculate Total deps: ultimate-beads-test-6gs description: Function to sum all expenses labels: backend ─── create | beads ────────────────────────── title: Delete Expense deps: ultimate-beads-test-6gs description: Function to remove expense from storage labels: backend ─── create | beads ────────────────────────── title: Wire Up UI deps: ultimate-beads-test-vt2, ultimate-beads-test-5x5, ultimate-beads-test-29u, ultimate-beads-test-ae4 description: Connect buttons to functions - wire up the complete UI labels: frontend Here's the complete overview of your expense tracker tasks: ## 📋 All Tasks ``` -------------------------------- ### Basic Goose Session Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/acp-providers.md Starts a basic Goose session. No specific ACP provider is configured, so it may use a default or require further setup. ```bash goose session ``` -------------------------------- ### Python Virtual Environment Setup Source: https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/tutorial/tutorials/first-game.md Guides users through setting up a virtual environment for Python projects using venv. This isolates project dependencies. ```bash python -m venv env source env/bin/activate # or env\Scripts\activate on Windows ``` -------------------------------- ### Current Prediction Tool Call Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2025-08-12-mcp-testing/index.md Example of a current prediction tool call for getting repository branches, highlighting a potential tool name mismatch. ```json { "tool": "get_repo_branches", "parameters": { "repo_owner": "block", "repo_name": "mcp", "status": "closed" } } ``` -------------------------------- ### Enable GitHub Extension with Token Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/getting-started/using-extensions.md Example of enabling the GitHub extension, which requires a personal access token. Note that this command requires Node.js and `npx` to be installed. ```bash goose session --with-extension "GITHUB_PERSONAL_ACCESS_TOKEN= npx -y @modelcontextprotocol/server-github" ``` -------------------------------- ### FileSystem Extension Example Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/goose-architecture/extensions-design.md A complete example of a simple FileSystem extension implementing the `read_file` tool. Demonstrates state management, asynchronous file reading, and error mapping using `ErrorData`. ```rust use goose_macros::tool; struct FileSystem { registry: ToolRegistry, root_path: PathBuf, } impl FileSystem { #[tool( name = "read_file", description = "Read contents of a file" )] async fn read_file(&self, path: String) -> ToolResult { let full_path = self.root_path.join(path); let content = tokio::fs::read_to_string(full_path) .await .map_err(|e| ErrorData { code: ErrorCode::INTERNAL_ERROR, message: Cow::from(e.to_string(), data: None, }))?; Ok(json!({ "content": content })) } } #[async_trait] impl Extension for FileSystem { // ... implement trait methods ... } ``` -------------------------------- ### Clone and Run Goose Desktop App Source: https://github.com/aaif-goose/goose/blob/main/ui/desktop/README.md Steps to clone the repository, set up dependencies using Hermit, install Node.js packages, and start the development server. ```bash git clone git@github.com:aaif-goose/goose.git cd goose source ./bin/activate-hermit cd ui/desktop pnpm install pnpm run start ``` -------------------------------- ### Set API Key and Start Session Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/getting-started/providers.md Demonstrates how to set the API key for a custom provider using an environment variable and then start a Goose session with that provider. ```bash export CUSTOM_CORP_API_API_KEY="your-api-key" goose session start --provider custom_corp_api ``` -------------------------------- ### Configure Goose ACP Provider in Neovim Source: https://github.com/aaif-goose/goose/blob/main/documentation/blog/2026-04-08-how-to-break-up-with-your-agent/index.md Add this configuration to your Neovim setup to enable Goose as an ACP provider. Ensure Goose is installed and accessible in your PATH. ```lua acp_providers = { ["goose"] = { command = "goose", args = { "acp", "--with-builtin", "developer" }, }, }, ``` -------------------------------- ### Initialize Python Project with uv Source: https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/tutorial/tutorials/build-mcp-extension.md Use `uv init` to initialize a new Python project and `uv add` for package management to keep `pyproject.toml` updated. ```bash uv init $PROJECT NAME ``` ```bash uv add ``` -------------------------------- ### Install Dependencies Source: https://github.com/aaif-goose/goose/blob/main/documentation/README.md Installs project dependencies using npm. Run this command from the `documentation/` directory. ```bash npm i ``` -------------------------------- ### Test Docker Setup and API Accessibility Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/plan-feature-devcontainer-setup.md Execute Docker Compose to start services in detached mode, list running containers, and test API endpoint accessibility. ```bash # Test Docker setup locally docker-compose up -d docker ps # Verify API accessibility curl http://localhost:8888/api/products # Test database connection docker exec -it mysql mysql -u user -p api_db ``` -------------------------------- ### Install Apify Local MCP Server via goose CLI Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/apify-mcp.md Start the Apify Local MCP server using npx. Ensure you have your Apify Token set as an environment variable. ```bash npx -y @apify/actors-mcp-server ``` ```bash APIFY_TOKEN: ``` -------------------------------- ### Basic TypeScript MCP Server Setup Source: https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/tutorial/tutorials/build-mcp-extension.md Initialize an MCP server in TypeScript with a name and version, then connect it to a `StdioServerTransport`. ```typescript import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; const server = new McpServer({ name: "Extension Name", version: "1.0.0", }); const transport = new StdioServerTransport(); await server.connect(transport); ``` -------------------------------- ### Launch Observability Server via goose Desktop Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/cloudflare-mcp.md Launch the Observability MCP server installer directly from the goose Desktop application. This method guides you through a series of prompts to set up the server. ```html Launch the installer ``` -------------------------------- ### Example Recipe Configuration (YAML) Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/recipes/recipe-reference.md Defines a 'Code Review Assistant' recipe with parameters for language and focus, and a list of activities that utilize these parameters. ```yaml version: "1.0.0" title: "Code Review Assistant" description: "Review code with customizable focus areas" parameters: - key: language input_type: string requirement: required description: "Programming language to review" - key: focus input_type: string requirement: optional default: "best practices" description: "Review focus area" activities: - "message: Click an option below to start reviewing {{ language }} code with a focus on {{ focus }}." - "Review the current file for {{ focus }}" - "Suggest improvements for {{ language }} code quality" - "Check for security vulnerabilities" - "Generate unit tests" ``` -------------------------------- ### Generate Playwright Test Code Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/tutorials/playwright-skill.md This TypeScript code demonstrates how to generate a Playwright test for navigating to a specific guide within the Goose documentation. It includes setup, navigation, and assertion steps. ```typescript import { test, expect } from '@playwright/test'; test('navigate to Using Skills guide via docs menu', async ({ page }) => { await page.goto('https://goose-docs.ai'); await expect(page).toHaveTitle(/goose/); // Click on Docs in the navigation await page.getByRole('link', { name: 'Docs' }).click(); // Expand Context Engineering category await page.getByRole('button', { name: 'Expand sidebar category \'Context Engineering\'' }).click(); // Click on Using Skills await page.getByRole('link', { name: 'Using Skills' }).click(); // Verify navigation await expect(page).toHaveURL(/using-skills/); await expect(page.getByRole('heading', { level: 1 })).toContainText('Using Skills'); }); ``` -------------------------------- ### Run Goose TUI Client (Auto-launch Server) Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/acp-clients.md This command starts the goose TUI client and automatically launches the goose ACP server if it's installed. This is the recommended way to run the TUI. ```bash npm start ``` -------------------------------- ### Example Local .goosehints File Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/context-engineering/using-goosehints.md Shows how to provide project-specific instructions, reference local documentation, and set workflow preferences for Goose within a specific directory. ```plaintext This is a simple example JavaScript web application that uses the Express.js framework. View [Express documentation](https://expressjs.com/) for extended guidance. Go through the @README.md for information on how to build and test it as needed. Make sure to confirm all changes with me before applying. Run tests with `npm run test` ideally after each change. ``` -------------------------------- ### Basic Python MCP Server Setup Source: https://github.com/aaif-goose/goose/blob/main/crates/goose-mcp/src/tutorial/tutorials/build-mcp-extension.md Set up a basic MCP server in Python using `FastMCP` and `stdio_server`. The server is initialized with an extension name and then run. ```python from mcp.server.fastmcp import FastMCP from mcp.server.stdio import stdio_server mcp = FastMCP("Extension Name") if __name__ == "__main__": mcp.run() ``` -------------------------------- ### Example Scenario Definition Source: https://github.com/aaif-goose/goose/blob/main/evals/open-model-gym/README.md Defines a scenario named 'file-editing' that involves creating a file and editing another. Includes setup for initial file content and validation rules to check for file existence and content matching. ```yaml name: file-editing description: Create and edit files prompt: | 1. Create joke.md containing a short joke 2. Edit hello.rs to add a debug function setup: hello.rs: | fn main() { println!("Hello!"); } validate: - type: file_exists path: joke.md - type: file_matches path: hello.rs regex: "fn\s+debug" ``` -------------------------------- ### Configure Nano Banana MCP Extension Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/nano-banana-mcp.md Configuration details for the Nano Banana MCP extension, including installation commands and environment variable setup for API keys. Requires Node.js for npx command execution. ```text extensionId="nano-banana" extensionName="Nano Banana" description="Image generation with Gemini" type="stdio" command="npx" args=["nano-banana-mcp"] envVars=[ { name: "GEMINI_API_KEY", label: "Gemini API Key" } ] apiKeyLink="https://aistudio.google.com/api-keys" apiKeyLinkText="Gemini API Key" ``` ```text name="Nano Banana" description="Image generation with Gemini" type="stdio" command="npx nano-banana-mcp" timeout={300} envVars=[ { key: "GEMINI_API_KEY", value: "▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪" } ] infoNote=< >Get your API key from Google AI Studio and paste it in. > ``` -------------------------------- ### Whisper Installation Checklist Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/mcp/gitmcp-mcp.md Essential steps to install and verify the Whisper model, including Python, FFmpeg, and the Whisper package itself. ```sh 1. **✅ Install Python 3.8-3.11** 2. **✅ Install FFmpeg** for your operating system 3. **✅ Install Whisper**: `pip install -U openai-whisper` 4. **✅ Test installation**: `whisper --help` 5. **✅ Try basic transcription**: `whisper your_audio_file.mp3` ``` -------------------------------- ### Start Goose Server with Network and TLS Enabled Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/environment-variables.md Configure the Goose server to listen on all network interfaces, use a specific port, enable TLS, and set a secret key for secure communication. This is useful for remote server setups. ```bash # Start a goosed server reachable on the local network over TLS export GOOSE_HOST=0.0.0.0 export GOOSE_PORT=3000 export GOOSE_TLS=true export GOOSE_SERVER__SECRET_KEY='a-long-random-secret' goosed agent ``` -------------------------------- ### Load and Start Goosed Service Source: https://github.com/aaif-goose/goose/blob/main/documentation/docs/guides/remote-goose-server.md These commands bootstrap the LaunchAgent and then start the `goosed` service. The `launchctl kickstart` command ensures the service is running immediately. ```bash launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.goose.goosed.external.plist launchctl kickstart -k gui/$(id -u)/com.goose.goosed.external ```