Goose
Generated on 9 Sep 2026 from the Goose catalog page
Goose is an open-source AI agent designed to execute complex software engineering tasks directly from your Linux terminal. Unlike standard autocomplete tools, it functions as a “on-machine” agent that can independently edit files, run shell commands, and manage your development environment.
How to Use Goose AI:
A Quick GuideGoose is a powerful open-source AI agent designed to automate software engineering tasks directly from your terminal. To get started, your first step is to run goose configure. This allows you to link your preferred Large Language Model (LLM), such as OpenAI, Anthropic, or a local provider like Ollama. Once configured, navigate to your project directory and launch an interactive environment by typing goose session. In this mode, you can provide instructions in natural language, asking the agent to write features, generate tests, or fix complex bugs.
Unlike standard AI assistants, Goose is “agentic”—it independently analyzes your file structure, edits code, and executes shell commands to verify its work. For quick, one-off tasks without entering a full session, you can use the goose run -t command followed by your prompt. You can also extend its capabilities using the Model Context Protocol (MCP) to connect tools like GitHub, Jira, or local databases via the configuration menu. Safety is built-in; you can toggle between manual approval for every action or full autonomy for faster workflows. Every session is saved, allowing you to exit and resume your work exactly where you left off, providing a seamless AI-driven development experience on your Linux system.
Essential CLI Commands:
goose configure – Set up LLM providers and manage MCP extensions.
goose session – Start a new interactive agent session in the current folder.
goose run -t "instruction" – Execute a specific task directly in one command.
goose session list – View a history of all active and past sessions.
goose session remove – Interactively choose and delete old sessions.
Software Included
| Package | Version | License |
|---|---|---|
| goose | 1.50.0 | Apache License 2.0 (ASL2) |
| ttyd | 1.7.4 | MIT License |
| nginx | 1.24.0 | 2-clause BSD License |
Creating an App using the Control Panel
Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.
Creating an App using the API
In addition to creating a Droplet from the Goose 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Goose Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token to an environment variable or substitute it in the command below.
curl -X POST -H 'Content-Type: application/json' \
-H 'Authorization: Bearer '$TOKEN'' -d \
'{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image":"goose"}' \
"https://api.digitalocean.com/v2/droplets"Getting Started After Deploying Goose
1. Create the Droplet
Choose this 1-Click in the DigitalOcean Marketplace and wait for provisioning.
2. SSH as root (required once)
ssh root@YOUR_DROPLET_IPV4The first interactive login runs the setup wizard. It will:
- Prompt for a web console password. Enter the same password twice, minimum 8 characters, to enable nginx, HTTP Basic Auth, and the browser terminal. Leave both prompts empty (press Enter twice each time) if you do not want nginx or a public HTTPS web UI; you can enable the web console later with
/opt/goose/enable-web-console.sh. - If you set a web password: a local copy is saved at
/root/.goose_web_console_password.txt(mode600), nginx serves the web terminal, and Certbot requests a Let’s Encrypt certificate for this Droplet’s public IPv4 (short-lived IP profile) with renewal configured. If you skipped the password, nginx and Certbot for the browser stay off until you run/opt/goose/enable-web-console.sh. - The Goose CLI is already on the image from the build; use
goose --versionto confirm. Rungoose configurewhen you want other providers beyond what the wizard sets up for DigitalOcean Inference. - Optional — DigitalOcean Inference: enter your Inference model access key when prompted, or press Enter to skip and run
/opt/goose/configure-do-key.shlater. The image installs DigitalOcean Inference (GOOSE_PROVIDER: digitalocean_model) againsthttps://inference.do-ai.run/v1with the same model ids as the OpenClaw/OpenCode 1-Clicks (for exampleminimax-m2.5,kimi-k3,anthropic-claude-4.5-sonnet). Default model isminimax-m2.5; editGOOSE_MODELin~/.config/goose/config.yamlor usegoose configureto switch. If you enter a key, you do not need to rungoose configurefor DigitalOcean Inference alone.
3. Open the web console (if enabled)
If you set a web password at first login, or you already ran /opt/goose/enable-web-console.sh, open in a browser:
https://YOUR_DROPLET_IPV4/- Username:
goose - Password: the value you chose
Your browser may briefly show a warning if the temporary self-signed certificate is still in use (for example, if Let’s Encrypt issuance failed). After a successful issuance, the certificate chain is publicly trusted (short-lived IP profile).
3b. Enable the web console later
If you skipped the web password on first login, run as root over SSH:
/opt/goose/enable-web-console.shYou will be prompted for a password (8+ characters). The script configures nginx, starts it, requests a Let’s Encrypt IP certificate when possible, and installs the renewal cron job.
4. Use Goose on the CLI
goose configure # optional: other providers or to change defaults away from DO Inference
goose --helpIf you saved a DigitalOcean Inference key at first login (or via /opt/goose/configure-do-key.sh), Goose uses DigitalOcean Inference with default model minimax-m2.5; run goose configure only if you want a different provider or model.
TLS, Let’s Encrypt, and IP addresses
Let’s Encrypt issues IP address certificates only under the shortlived profile (about six days). This image:
- Installs Certbot in
/opt/certbot-venv(newer than the UbuntuaptCertbot, so--ip-addressand--preferred-profile shortlivedwork with webroot while nginx keeps serving port 80). - Adds
/etc/cron.d/goose-certbot-renewto runcertbot renewtwice daily with a deploy hook that reloads nginx (only after the web console has been enabled with a password).
If issuance fails (firewall, rate limits, or connectivity), nginx continues using /etc/ssl/goose/selfsigned.crt until you fix the issue and re-run Certbot manually (see /opt/goose/README.txt).
Firewall and ports
UFW is configured via 014-ufw-nginx.sh: SSH, HTTP, and HTTPS are allowed. ttyd is not exposed on a public port; only nginx is (when nginx is running). If you never use the web console, you may tighten UFW if you prefer.
Files and paths
| Path | Purpose |
|---|---|
/opt/goose/README.txt |
Operator quick reference |
/opt/goose/first-login-setup.sh |
First-login wizard |
/opt/goose/configure-do-key.sh |
Set or remove DO_MODEL_ACCESS_API_KEY for DO Inference |
/opt/goose/migrate-do-provider-id.sh |
Refresh declarative JSON and rewrite legacy GOOSE_PROVIDER: kimi → digitalocean_model |
/opt/goose/lib-goose-do.sh |
Shared helpers (sourced by setup scripts; not run directly) |
/root/.config/goose/secrets.yaml |
DO Inference key for Goose (when configured) |
/root/.config/goose/config.yaml |
GOOSE_PROVIDER, GOOSE_MODEL, GOOSE_DISABLE_KEYRING when DO Inference is configured |
/opt/goose/custom_providers/digitalocean_model.json |
Declarative provider definition (copied to /root/.config/goose/custom_providers/) |
/etc/profile.d/goose-do.sh |
Optional export DO_MODEL_ACCESS_API_KEY=… (mode 600); also sourced from .bashrc |
/opt/goose/enable-web-console.sh |
Prompt for password; start nginx, TLS, Certbot, cron |
/root/.goose-web-console-disabled |
Present if you skipped the web password at first login |
/opt/goose/nginx-*.conf.tpl |
nginx templates used during boot / setup |
/etc/nginx/.goose-ttyd.htpasswd |
HTTP Basic credentials for the web console |
/root/.goose_web_console_password.txt |
Plain-text copy of the web password (remove when appropriate) |
/root/.goose-first-login-done |
Marker that first-login completed |
/opt/certbot-venv/bin/certbot |
Certbot for issuance and renewal |
Documentation and support
- Upstream project: https://github.com/aaif-goose/goose
- DigitalOcean Community: https://www.digitalocean.com/community
This Marketplace image is maintained for convenience; for product bugs and features, use the upstream Goose project.