> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/block/goose/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Command

> Configure Goose settings, providers, and extensions

The `configure` command provides an interactive interface for managing Goose configuration.

## Usage

```bash theme={null}
goose configure
```

## First Time Setup

On first run, Goose guides you through initial configuration:

1. **Telemetry consent** - Choose whether to share anonymous usage data
2. **Provider setup** - Select from:
   * OpenRouter Login (recommended)
   * Tetrate Agent Router Service Login
   * Manual Configuration
3. **Model selection** - Choose your AI model

**Example:**

```bash theme={null}
goose configure
# Follow prompts for setup
```

## Configuration Options

When run on an existing configuration:

### Configure Providers

Change provider or update credentials.

**Available Providers:**

* OpenAI
* Anthropic
* Ollama (local)
* Databricks
* Gemini
* Custom providers

**Process:**

1. Select provider
2. Enter credentials (API keys)
3. Configure advanced settings (optional)
4. Select model
5. Test configuration

**Example:**

```bash theme={null}
goose configure
# Select: Configure Providers
# Choose: anthropic
# Enter: ANTHROPIC_API_KEY
# Select model: claude-sonnet-4-20250514
```

### Custom Providers

Add custom provider with compatible API.

**Supported APIs:**

* OpenAI-compatible
* Anthropic-compatible
* Custom implementations

**Configuration:**

```bash theme={null}
goose configure
# Select: Custom Providers
# Enter: Provider name, API endpoint, credentials
```

### Add Extension

Connect to a new extension.

**Extension Types:**

**Built-in Extensions:**

* `developer` - Code editing and shell access
* `autovisualiser` - Data visualization
* `computercontroller` - Web scraping and automation
* `memory` - Persistent storage
* `tutorial` - Interactive guides

**Command-line (Stdio) Extensions:**

* Run local commands or scripts
* Examples: `npx -y @block/gdrive`

**Remote (Streamable HTTP) Extensions:**

* Connect via MCP Streamable HTTP
* Format: `http://localhost:8000/messages`

**Example:**

```bash theme={null}
goose configure
# Select: Add Extension
# Choose: Built-in Extension
# Select: memory
# Set timeout: 120
```

### Toggle Extensions

Enable or disable connected extensions.

**Example:**

```bash theme={null}
goose configure
# Select: Toggle Extensions
# Use space to select/deselect
# Press Enter to save
```

### Remove Extension

Remove an extension (must be disabled first).

**Example:**

```bash theme={null}
goose configure
# Select: Remove Extension
# Choose extension to remove
```

## Goose Settings

### Goose Mode

Control agent autonomy:

<ParamField path="Auto Mode" type="mode">
  Full file modification, extension usage. Edit, create, and delete files freely.
</ParamField>

<ParamField path="Approve Mode" type="mode">
  All tools, extensions, and file modifications require human approval.
</ParamField>

<ParamField path="Smart Approve Mode" type="mode">
  Editing, creating, deleting files and using extensions require approval.
</ParamField>

<ParamField path="Chat Mode" type="mode">
  Engage with provider without tools, extensions, or file modification.
</ParamField>

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → goose mode
# Choose: Smart Approve Mode
```

### Telemetry

Enable or disable anonymous usage data collection.

**What's Collected:**

* Operating system and architecture
* Goose version
* Provider and model used
* Extension usage counts (names only)
* Session metrics (duration, tokens)
* Error types (no details)

**Not Collected:**

* Conversations or code
* Tool arguments
* Error messages
* Personal data

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Telemetry
# Choose: Yes/No
```

### Tool Permissions

Set permission levels for individual tools.

**Permission Levels:**

* `always_allow` - Never ask for approval
* `always_deny` - Never allow execution
* `ask` - Prompt for approval each time

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Tool Permission
# Select extension → Select tool → Set permission
```

### Tool Output

Control how much tool output is shown.

<ParamField path="High Importance" type="level">
  Show only critical output
</ParamField>

<ParamField path="Medium Importance" type="level">
  Include file write results
</ParamField>

<ParamField path="All (default)" type="level">
  Show all output including shell commands
</ParamField>

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Tool Output
# Choose: Medium Importance
```

### Max Turns

Set maximum turns without user input.

**Default:** 1000

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Max Turns
# Enter: 50
```

### Secret Storage

Configure how secrets are stored.

<ParamField path="System Keyring" type="storage">
  Use secure system keyring (recommended)

  **Platforms:**

  * macOS: Keychain
  * Windows: Credential Manager
  * Linux: Secret Service API
</ParamField>

<ParamField path="File-based Storage" type="storage">
  Store in `~/.config/goose/secrets.yaml` (plain text)

  Use when keyring access is restricted.
</ParamField>

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Secret Storage
# Choose: System Keyring
```

### Toggle Experiment

Enable or disable experimental features.

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → Toggle Experiment
# Select experiments to enable
```

### Goose Recipe GitHub Repo

Configure GitHub repository for recipes.

**Example:**

```bash theme={null}
goose configure
# Select: goose settings → goose recipe github repo
# Enter: username/repo
```

## Configuration Files

Configuration is stored in:

**Config:** `~/.config/goose/config.yaml`
**Secrets:** System keyring or `~/.config/goose/secrets.yaml`

**Example config.yaml:**

```yaml theme={null}
goose_provider: anthropic
goose_model: claude-sonnet-4-20250514
goose_mode: smart-approve

extensions:
  developer:
    enabled: true
    config:
      type: platform
      name: developer
      description: Code editing and shell access
      bundled: true
  
  memory:
    enabled: true
    config:
      type: builtin
      name: memory
      description: Persistent memory storage
      timeout: 120
      bundled: true

telemetry_enabled: true
max_turns: 1000
```

## Environment Variables

Configuration can be overridden via environment:

**Provider/Model:**

* `GOOSE_PROVIDER` - Override provider
* `GOOSE_MODEL` - Override model
* `ANTHROPIC_API_KEY` - Anthropic API key
* `OPENAI_API_KEY` - OpenAI API key

**Behavior:**

* `GOOSE_MODE` - Override mode setting
* `GOOSE_CLI_MIN_PRIORITY` - Tool output level
* `GOOSE_TELEMETRY_OFF` - Disable telemetry

**Storage:**

* `GOOSE_DISABLE_KEYRING` - Use file storage instead of keyring

**Example:**

```bash theme={null}
export GOOSE_PROVIDER=anthropic
export GOOSE_MODEL=claude-sonnet-4-20250514
export GOOSE_MODE=auto
goose session
```

## OAuth Authentication

Some providers support OAuth:

**Supported:**

* Databricks
* GitHub (for custom providers)

**Flow:**

1. Select provider
2. Choose OAuth option
3. Follow device code flow
4. Complete authentication in browser

## Testing Configuration

Configuration is automatically tested after setup:

```bash theme={null}
✓ Checking your configuration...
✓ Successfully connected to anthropic
✓ Model: claude-sonnet-4-20250514
```

Failed tests show specific errors:

```bash theme={null}
✗ Failed to configure provider: Authentication failed
```

## Examples

**Complete setup:**

```bash theme={null}
goose configure
# Select: Configure Providers
# Provider: anthropic
# Enter ANTHROPIC_API_KEY
# Model: claude-sonnet-4-20250514
# ✓ Configuration saved
```

**Add extensions:**

```bash theme={null}
goose configure
# Select: Add Extension
# Type: Built-in Extension  
# Extension: developer
# ✓ Enabled developer extension
```

**Update settings:**

```bash theme={null}
goose configure
# Select: goose settings
# Setting: goose mode
# Mode: Smart Approve Mode
# ✓ Set to Smart Approve Mode
```

## See Also

* [Extensions Overview](/api/extensions/overview) - Extension system
* [Session Command](/api/cli/session) - Using configured extensions
* [Configuration Guide](/configuration) - Complete configuration reference
