Configuration¶
This page shows where Goose's files live on the instance, how to give Goose your provider key safely, and how to set defaults for your own work.
Where things live¶
| Path | What it is |
|---|---|
/usr/local/bin/goose |
The goose command, a link to /opt/goose/bin/goose. |
~/.config/goose/config.yaml |
Your Goose settings, as the ubuntu user. Created by goose configure. |
~/.config/goose/secrets.yaml |
Your provider keys, when GOOSE_DISABLE_KEYRING=1 is set. |
~/.local/state/goose/logs |
Goose logs. |
/etc/goose/config.yaml.example |
An example config, written on first boot. |
/etc/goose/secrets |
An optional place for root-managed material, root:goose, mode 0750. The ubuntu user cannot read it. |
/var/lib/goose/workspace |
The sample workspace, owned by ubuntu, mode 0750. |
/opt/sushi/docs/README.md |
The image notes. |
First boot creates the ubuntu user's ~/.config/goose, ~/.local/share/goose
and ~/.local/state/goose directories with mode 0700. It writes the example
config only if it does not exist yet.
Provider keys¶
The image contains no provider keys. Choose one of these, as the ubuntu
user:
goose configure, withGOOSE_DISABLE_KEYRING=1set, as in Getting started. The key is stored in~/.config/goose/secrets.yaml.-
Environment variables in a private shell, for example:
read -rs OPENAI_API_KEY && export OPENAI_API_KEY export GOOSE_PROVIDER=openai export GOOSE_MODEL=<model-name>read -skeeps the key off the screen and out of your shell history. UseANTHROPIC_API_KEYandGOOSE_PROVIDER=anthropicfor Anthropic.
Goose ignores provider keys in config.yaml, so never put them there. Never
put keys in EC2 user data.
The example config¶
/etc/goose/config.yaml.example shows the settings the image suggests. It
contains no keys:
GOOSE_MODE: auto
GOOSE_TELEMETRY_ENABLED: false
extensions:
developer:
bundled: true
enabled: true
name: developer
type: builtin
timeout: 300
Copy the parts you want into ~/.config/goose/config.yaml. The file also has
commented lines that show how a configured provider looks.
GOOSE_TELEMETRY_ENABLED: falseturns off Goose's usage telemetry.GOOSE_MODE: autolets Goose edit files and run commands without asking you first. Choose a stricter mode if you want to approve actions. The Goose documentation describes the modes.
Goose runs real commands
In auto mode Goose acts on everything the ubuntu user can reach,
including sudo. Keep secrets you do not want it to read off the
instance, and give the instance role only the AWS permissions a task
really needs.
Work on your own repositories¶
Goose works in the directory you start it from. Clone your project as the
ubuntu user and run Goose there:
Last updated October 13, 2026 · Suggest an improvement