goose in 5 minutes
goose is an extensible open source AI agent that enhances your software development by automating coding tasks.
This quick tutorial will guide you through:
- ✅ Installing goose
- ✅ Configuring your LLM
- ✅ Building a small app
- ✅ Adding an MCP server
Let's begin 🚀
Install goose
- macOS
- Linux
- Windows
Choose to install the Desktop and/or CLI version of goose:
- goose Desktop
- goose CLI
To download Goose Desktop for macOS, click one of the buttons below:
- Unzip the downloaded zip file.
- Run the executable file to launch the goose Desktop application.
Run the following command to install goose:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
Choose to install the Desktop and/or CLI version of goose:
- goose Desktop
- goose CLI
To download Goose Desktop for Linux, click one of the buttons below:
For Debian/Ubuntu-based distributions:
- Download the DEB file
- Navigate to the directory where it is saved in a terminal
- Run
sudo dpkg -i (filename).deb
- Launch goose from the app menu
Run the following command to install the goose CLI on Linux:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
Choose to install the Desktop and/or CLI version of goose:
- goose Desktop
- goose CLI
To download Goose Desktop for Windows, click the button below:
- Unzip the downloaded zip file.
- Run the executable file to launch the goose Desktop application.
Run the following command in Git Bash, MSYS2, or PowerShell to install the goose CLI natively on Windows:
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
Learn about prerequisites in the installation guide.
If you see a PATH warning after installation, you'll need to add goose to your PATH before running goose configure
. See the Windows CLI installation instructions for detailed steps.
If prompted during configuration, choose to not store to keyring. If you encounter keyring errors, see the Windows setup instructions for more information.
Configure Provider
goose works with supported LLM providers that give goose the AI intelligence it needs to understand your requests. On first use, you'll be prompted to configure your preferred provider.
- goose Desktop
- goose CLI
On the welcome screen, you have three options:
- Automatic setup with Tetrate Agent Router
- Automatic Setup with OpenRouter
- Other Providers
For this quickstart, choose Automatic setup with Tetrate Agent Router
. Tetrate provides access to multiple AI models with built-in rate limiting and automatic failover. For more information about OpenRouter or other providers, see Configure LLM Provider.
goose will open a browser for you to authenticate with Tetrate, or create a new account if you don't have one already. When you return to the goose desktop app, you're ready to begin your first session.
You'll receive $10 in free credits the first time you automatically authenticate with Tetrate through goose. This offer is available to both new and existing Tetrate users.
- In your terminal, run the following command:
goose configure
- Select
Configure Providers
from the menu and press Enter.
┌ goose-configure
│
◆ What would you like to configure?
│ ● Configure Providers (Change provider or update credentials)
│ ○ Add Extension
│ ○ Toggle Extensions
│ ○ Remove Extension
│ ○ Goose Settings
└
- Choose a model provider. For this quickstart, select
Tetrate Agent Router Service
and press Enter. Tetrate provides access to multiple AI models with built-in rate limiting and automatic failover. For information about other providers, see Configure LLM Provider.
┌ goose-configure
│
◇ What would you like to configure?
│ Configure Providers
│
◆ Which model provider should we use?
│ ○ Anthropic
│ ○ Azure OpenAI
│ ○ Amazon Bedrock
│ ○ Claude Code
│ ○ Databricks
│ ○ Gemini CLI
| ● Tetrate Agent Router Service (Enterprise router for AI models)
│ ○ ...
└
You'll receive $10 in free credits the first time you automatically authenticate with Tetrate through goose. This offer is available to both new and existing Tetrate users.
- Enter your API key (and any other configuration details) when prompted.
┌ goose-configure
│
◇ What would you like to configure?
│ Configure Providers
│
◇ Which model provider should we use?
│ Tetrate Agent Router Service
│
◆ Provider Tetrate Agent Router Service requires TETRATE_API_KEY, please enter a value
│ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
└
- Select or search for the model you want to use.
│
◇ Model fetch complete
│
◆ Select a model:
│ ○ Search all models...
│ ○ gemini-2.5-pro
│ ○ gemini-2.0-flash
| ○ gemini-2.0-flash-lite
│ ● gpt-5 (Recommended)
| ○ gpt-5-mini
| ○ gpt-5-nano
| ○ gpt-4.1
│
◓ Checking your configuration...
└ Configuration saved successfully
Start Session
Sessions are single, continuous conversations between you and goose. Let's start one.
- goose Desktop
- goose CLI
After choosing an LLM provider, click the Home
button in the sidebar.
Type your questions, tasks, or instructions directly into the input field, and goose will immediately get to work.
- Make an empty directory (e.g.
goose-demo
) and navigate to that directory from the terminal. - To start a new session, run:
goose session
CLI users can also start a session in goose Web, a web-based chat interface:
goose web --open
Write Prompt
From the prompt, you can interact with goose by typing your instructions exactly as you would speak to a developer.
Let's ask goose to make a tic-tac-toe game!
create an interactive browser-based tic-tac-toe game in javascript where a player competes against a bot
goose will create a plan and then get right to work on implementing it. Once done, your directory should contain a JavaScript file as well as an HTML page for playing.
Enable an Extension
While you're able to manually navigate to your working directory and open the HTML file in a browser, wouldn't it be better if goose did that for you? Let's give goose the ability to open a web browser by enabling the Computer Controller
extension.
- goose Desktop
- goose CLI
- Click the button in the top-left to open the sidebar.
- Click
Extensions
in the sidebar menu. - Toggle the
Computer Controller
extension to enable it. This extension enables webscraping, file caching, and automations. - Return to your session to continue.
- Now that goose has browser capabilities, let's ask it to launch your game in a browser:
- End the current session by entering
Ctrl+C
so that you can return to the terminal's command prompt. - Run the configuration command
goose configure
- Choose
Add Extension
>Built-in Extension
>Computer Controller
, and set the timeout to 300s. This extension enables webscraping, file caching, and automations.
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What type of extension would you like to add?
│ Built-in Extension
│
◇ Which built-in extension would you like to enable?
│ Computer Controller
│
◇ Please set the timeout for this tool (in secs):
│ 300
│
└ Enabled computercontroller extension
- Now that goose has browser capabilities, let's resume your last session:
goose session -r
- Ask goose to launch your game in a browser:
open the tic-tac-toe game in a browser
Go ahead and play your game, I know you want to 😂 ... good luck!
Next Steps
Congrats, you've successfully used goose to develop a web app! 🎉
Here are some ideas for next steps:
- Continue your session with goose and improve your game (styling, functionality, etc).
- Browse other available extensions and install more to enhance goose's functionality even further.
- Provide goose with a set of hints to use within your sessions.