import { createFileRoute } from "@tanstack/react-router"; import { pageMeta } from "~/meta"; export const Route = createFileRoute("/docs/configuration")({ head: () => ({ meta: pageMeta( "Configuration - Paseo Docs", "Configure Paseo via config.json, environment variables, and CLI overrides.", ), }), component: Configuration, }); function Configuration() { return (

Configuration

Paseo loads configuration from a single JSON file in your Paseo home directory, with optional environment variable and CLI overrides.

Where config lives

By default, Paseo uses ~/.paseo as its home directory. The configuration file is:

$ ~/.paseo/config.json

You can change the home directory by setting PASEO_HOME{" "} or passing --home to{" "} paseo daemon start.

Precedence

Paseo merges configuration in this order:

  1. Defaults
  2. config.json
  3. Environment variables
  4. CLI flags

Lists append across sources (for example, allowedHosts{" "} and cors.allowedOrigins).

Example

Minimal example that configures listening address, host allowlist, provider keys, and MCP:

          {`{
  "$schema": "https://paseo.sh/schemas/paseo.config.v1.json",
  "version": 1,
  "providers": {
    "openai": { "apiKey": "..." }
  },
  "daemon": {
    "listen": "127.0.0.1:6767",
    "allowedHosts": ["localhost", ".localhost"],
    "mcp": { "enabled": true }
  }
}`}
        

Agent provider runtime settings

Use agents.providers to customize how Paseo launches agent provider CLIs. This works for claude,{" "} codex, and opencode.

command.mode can be{" "} default, append, or{" "} replace. Use env to inject provider-specific environment variables.

Enable Claude Code Chrome MCP

          {`{
  "agents": {
    "providers": {
      "claude": {
        "command": {
          "mode": "append",
          "args": ["--chrome"]
        }
      }
    }
  }
}`}
        

Point Claude to Anthropic-compatible endpoints (z.ai example)

          {`{
  "agents": {
    "providers": {
      "claude": {
        "env": {
          "ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
          "ANTHROPIC_AUTH_TOKEN": "auth token",
          "ANTHROPIC_API_KEY": ""
        }
      }
    }
  }
}`}
        

Run Claude through Docker

Create a wrapper script that runs Claude in Docker, then tell Paseo to replace the Claude launch command with that script.

          {`{
  "agents": {
    "providers": {
      "claude": {
        "command": {
          "mode": "replace",
          "argv": ["/Users/you/bin/claude-docker"]
        }
      }
    }
  }
}`}
        
          {`#!/usr/bin/env bash
set -euo pipefail
docker run --rm -i \\
  -v "$PWD":"$PWD" \\
  -w "$PWD" \\
  -v "$HOME/.claude":"$HOME/.claude" \\
  ghcr.io/anthropics/claude-code:latest \\
  claude "$@"`}
        

Voice

Voice is configured through features.dictation and{" "} features.voiceMode, with provider credentials under{" "} providers.

For voice philosophy, architecture, and complete local/OpenAI setup examples, see{" "} Voice docs .

Logging

Daemon logging uses separate console and file sinks by default:

          {`{
  "log": {
    "console": {
      "level": "info",
      "format": "pretty"
    },
    "file": {
      "level": "trace",
      "path": "daemon.log",
      "rotate": {
        "maxSize": "10m",
        "maxFiles": 2
      }
    }
  }
}`}
        

Legacy fields log.level and{" "} log.format are still supported and map to the new destination settings.

Common env vars

Schema

For editor autocomplete/validation, set $schema to:

https://paseo.sh/schemas/paseo.config.v1.json
); }