
# Goose

[Goose](https://block.github.io/goose/) is Block's open-source agent.
It supports OpenAI-compatible providers via configuration.

## Configure

Edit `~/.config/goose/config.yaml`:

```yaml
GOOSE_PROVIDER: openai
OPENAI_HOST: https://lowrouter.ai/api/v1
OPENAI_API_KEY: lr-sk-...
GOOSE_MODEL: lowrouter/auto
```

Or set them as environment variables before starting Goose:

```bash
export GOOSE_PROVIDER=openai
export OPENAI_HOST=https://lowrouter.ai/api/v1
export OPENAI_API_KEY=lr-sk-...
export GOOSE_MODEL=lowrouter/auto
goose session
```

## Picking a model

Set `GOOSE_MODEL` to any LowRouter model ID. For agentic tasks
(file reading, shell tools, multi-step reasoning), pick a model
tagged with `tool_use: true` on the [model browser](/models).

## Recommended setup

- **Dedicated key, daily limit.** Same reasoning as the other
  agents: agentic loops can run away.
- **Limit the toolset Goose has access to.** Goose's `extensions`
  config lets you allow only the tools the workflow needs. Fewer
  enabled tools = fewer surprises.
- **Set a step limit.** Goose has a max-step setting; cap it at a
  small number for unattended runs.

## Troubleshooting

- **Goose immediately exits with a config error**: `OPENAI_HOST` does
  not include a trailing slash. Match the value above exactly.
- **Tool calls fail silently**: verify the chosen model actually
  supports tool use (model browser, `tool_use: true`). Some smaller
  models don't.
