Skip to content
pando/ docs

Configuration

This section is the reference shelf: exact option names, defaults and commands. If you want to learn how to set something up, the guides walk you through it in the Web UI, and almost every option here has a switch in Settings.

Where the config file lives

Pando reads the first file it finds, in this order:

  1. ./.pando.toml or ./.pando.json in the folder where you start it
  2. The same file in any folder above it, walking up and stopping at your home folder
  3. $XDG_CONFIG_HOME/pando/.pando.toml (usually ~/.config/pando/)
  4. $HOME/.pando.toml or $HOME/.pando.json

Both TOML and JSON work; Pando tells them apart by the file extension. Any value can be overridden for one run with an environment variable prefixed with PANDO_, for example PANDO_DEBUG=true. More in Configuration File Discovery.

Reference pages

TopicPage
Web UI, remote access, project workspacesWeb UI
AI accounts and modelsProviders
Automatic model choiceAuto mode
Working modes (reasoning, caveman, learning…)Modes
Goal modeGoal
Memory, knowledge base, code indexRemembrances
Models for code searchEmbedding models for code
Subagents and orchestrationDelegation
Learning from past sessionsSelf-improvement
MCP serversMCP
Web search, browser, desktop controlTools
Language serversLSP
Editors (ACP)ACP advanced
Sandbox and command permissionsSandbox
Docker and PodmanContainers
Skills, Lua, extensionsSkills and extensions
Spending fewer tokensToken optimization
Updates, diagnostics, database, HTTPSDiagnostics and maintenance
Encrypting keysConfig security · AGE encryption

Basic configuration

TOML

[data]
directory = ".pando"

[providers.anthropic]
apiKey = "your-api-key"
disabled = false

[agents.coder]
model = "claude-3.7-sonnet"
maxTokens = 5000

[shell]
path = "/bin/bash"
args = ["-l"]

debug = false
autoCompact = true

JSON

{
  "data": {
    "directory": ".pando"
  },
  "providers": {
    "anthropic": {
      "apiKey": "your-api-key",
      "disabled": false
    }
  },
  "agents": {
    "coder": {
      "model": "claude-3.7-sonnet",
      "maxTokens": 5000
    }
  },
  "shell": {
    "path": "/bin/bash",
    "args": ["-l"]
  },
  "debug": false,
  "autoCompact": true
}

Environment variables

Environment VariablePurpose
ANTHROPIC_API_KEYFor Anthropic Claude models
OPENAI_API_KEYFor OpenAI models
GEMINI_API_KEYFor Google Gemini
GITHUB_TOKENFor Github Copilot
GROQ_API_KEYFor Groq models
AWS_ACCESS_KEY_IDFor AWS Bedrock (Claude)
AWS_SECRET_ACCESS_KEYFor AWS Bedrock (Claude)
AWS_REGIONFor AWS Bedrock (Claude)
AZURE_OPENAI_ENDPOINTFor Azure OpenAI models
AZURE_OPENAI_API_KEYFor Azure OpenAI
AZURE_OPENAI_API_VERSIONFor Azure OpenAI
VERTEXAI_PROJECTFor Google Cloud VertexAI (Gemini)
VERTEXAI_LOCATIONFor Google Cloud VertexAI (Gemini)
LOCAL_ENDPOINTFor self-hosted models
PANDO_DEV_DEBUGEnable dev debug mode (true)
SHELLDefault shell (if not specified in config)

AI Providers

Pando works with Anthropic, OpenAI, Google Gemini, AWS Bedrock, Groq, Azure OpenAI, GitHub Copilot, OpenRouter and local models through a custom endpoint. Accounts and keys are covered in Providers.

Advanced configuration

Below are the advanced options recognized by Pando, with examples in TOML and JSON. Not all fields are required; Pando will use sensible defaults when fields are missing.

Full example (TOML)

[data]
directory = ".pando"           # Directory where Pando stores data (history, commands, caches)

[providers]
[providers.anthropic]
apiKey = "your-api-key"
disabled = false

[providers.openai]
apiKey = "your-openai-key"
model = "gpt-4o"
disabled = false

[providers.gemini]
apiKey = "your-gemini-key"
disabled = true

[agents]
[agents.coder]
model = "claude-3.7-sonnet"
maxTokens = 5000
temperature = 0.2

[agents.chat]
model = "gpt-4o"
maxTokens = 3000
temperature = 0.7

[shell]
path = "/bin/bash"
args = ["-l"]

debug = false                  # Enable detailed logs
autoCompact = true            # Automatically compact long histories

[acp]
enabled = true
max_sessions = 10
idle_timeout = "30m"
log_level = "info"           # info|debug|warn|error
auto_permission = false       # true for CI or trusted environments

[mcpServers]
[mcpServers.my-server]
command = "my-mcp-server"
args = ["--flag"]
env = { MY_VAR = "value" }

[hooks]
# Path to hooks in Lua or other scripts to customize behavior
path = ".pando/hooks"

[storage]
type = "sqlite"               # sqlite|filesystem|custom
path = ".pando/pando.db"

[ui]
theme = "dark"               # UI theme for web-ui if applicable
editor = "nvim"              # default external editor

[telemetry]
enabled = false
endpoint = "https://telemetry.example.com/collect"

[logging]
level = "info"
file = ".pando/pando.log"

Full example (JSON)

{
  "data": { "directory": ".pando" },
  "providers": {
    "anthropic": { "apiKey": "your-api-key", "disabled": false },
    "openai": { "apiKey": "your-openai-key", "model": "gpt-4o", "disabled": false }
  },
  "agents": {
    "coder": { "model": "claude-3.7-sonnet", "maxTokens": 5000, "temperature": 0.2 },
    "chat": { "model": "gpt-4o", "maxTokens": 3000, "temperature": 0.7 }
  },
  "shell": { "path": "/bin/bash", "args": ["-l"] },
  "debug": false,
  "autoCompact": true,
  "acp": { "enabled": true, "max_sessions": 10, "idle_timeout": "30m", "log_level": "info", "auto_permission": false },
  "mcpServers": { "my-server": { "command": "my-mcp-server", "args": ["--flag"], "env": { "MY_VAR": "value" } } },
  "hooks": { "path": ".pando/hooks" },
  "storage": { "type": "sqlite", "path": ".pando/pando.db" },
  "ui": { "theme": "dark", "editor": "nvim" },
  "telemetry": { "enabled": false, "endpoint": "https://telemetry.example.com/collect" },
  "logging": { "level": "info", "file": ".pando/pando.log" }
}

Main options description

  • data.directory: Base directory for Pando data (commands, history, caches).
  • providers.: Provider-specific config (apiKey, model, disabled, custom endpoint).
  • agents.: Agent/role config (model, maxTokens, temperature, optional systemPrompt).
  • shell.path / shell.args: Default shell and arguments used to launch it.
  • debug: Enable debug output.
  • autoCompact: Enable automatic history compaction to save tokens.
  • acp.*: Agent Client Protocol options (enable, max sessions, timeouts, auto permissions).
  • mcpServers.*: Define external MCP servers Pando can consume (command, args, env).
  • hooks.path: Path for custom hooks (Lua, scripts) executed on events.
  • storage.type/path: Storage type and path (SQLite recommended for persistence).
  • ui.theme/editor: Preferences for UI/web-ui and external editor.
  • telemetry.*: Remote diagnostics (disabled by default). See Diagnostics and maintenance.
  • logging.*: Log level and file.

First-time setup

When Pando finds no configuration it offers to create one: the setup assistant in the Web UI and desktop app, or the configuration panel in the terminal interface. Accounts and tools are also saved in your user profile, so a new project folder starts with what you already set up.