Configuration.
Orchid layers three sources of settings — defaults, user, and project — and any of them can be overridden by environment variables for one-shot runs.
The four layers
- Built-in defaults — what ships with the app.
- User settings —
~/.config/orchid/settings.yaml, follows you across projects. - Project config —
.orchid/project.yaml, version-controlled with the notebook. - Environment variables — temporary overrides per process.
Later layers win. The agents panel reads from this stack too, so a project-level model choice overrides whatever you picked in user settings.
Project config
Every project has an .orchid/project.yaml at its root. Commit it to git — it's designed to be hand-edited and reviewed.
# .orchid/project.yaml
orchid: '1.0'
project:
name: Revenue review
slug: revenue-review
description: Monthly recurring revenue cohort analysis.
python:
version: '3.11'
requirements: requirements.txt
agents:
default_provider: gemini
multi_agent: false
allow_write_ops: false # require approval for INSERT/UPDATE/DELETE
integrations:
default: warehouse
defs:
warehouse:
type: postgres
host: db.internal
database: analytics
# secrets resolved from the OS keychain, never written here
publish:
visibility: link_only # or 'public', 'team'
include_data: trueAnything under project.* shows in the project shelf. The python block controls which bundled interpreter the kernel uses.
User settings
Stored at ~/.config/orchid/settings.yaml on macOS and Linux. Edit by hand or through Preferences in the app.
# ~/.config/orchid/settings.yaml
orchid: '1.0'
editor:
font_family: JetBrains Mono
font_size: 13
tab_size: 4
format_on_save: true
ui:
theme: dark
density: comfortable
show_minimap: false
agents:
default_provider: gemini
byo_keys:
anthropic: env:ANTHROPIC_API_KEY # read from the named env var
openai: env:OPENAI_API_KEY
telemetry:
enabled: false # opt out of anonymous usage events
updates:
check_at_launch: trueThe env:VAR_NAME syntax tells Orchid to read the secret from the named environment variable instead of storing it on disk. For sensitive values prefer this or the OS keychain.
Environment variables
Override common settings for a single launch — useful for CI, sandboxes, and debugging.
ORCHID_HOME— root directory for app state. Defaults to~/Library/Application Support/Orchidon macOS and~/.config/orchidon Linux. Point it at a portable folder to take Orchid with you on a USB drive.ORCHID_LOG_LEVEL—trace,debug,info(default),warn,error.debugis the right level when reporting bugs.ORCHID_NO_TELEMETRY— set to1to disable all telemetry, including crash reports. Equivalent totelemetry.enabled: false.ANTHROPIC_API_KEY,OPENAI_API_KEY,GEMINI_API_KEY— BYO model keys read by the agent system whenenv:resolution is configured.
Examples
$ ORCHID_LOG_LEVEL=debug orchid run report.orchid
$ ORCHID_HOME=$PWD/.orchid-portable ./Orchid-1.0.0.AppImagePython version pinning
Orchid bundles Python and gives each project its own virtualenv. Pin a version with the python.version key in .orchid/project.yaml.
# .orchid/project.yaml
python:
version: '3.11' # default
requirements: requirements.txt
extra_index_url: https://pypi.org/simple/
isolated: true # default: each project gets its own venvSet requirements to point at any pip-compatible file — requirements.txt, pyproject.toml, or uv.lock. Orchid resolves and caches dependencies on first run, then re-uses the venv across kernel restarts.
Orchid does not call out to your system Python. If you need a package that bundles a C extension, point Orchid at a wheel for the bundled interpreter version. See Troubleshooting if a build fails.
Model providers
The free tier uses Gemini. Bring your own key (BYOK) to use Anthropic Claude or OpenAI GPT — paid usage hits your account directly with no Orchid markup.
agents:
default_provider: anthropic # one of gemini, anthropic, openai
byo_keys:
anthropic: env:ANTHROPIC_API_KEY
openai: env:OPENAI_API_KEY
models:
anthropic:
planner: claude-opus-4-7
executor: claude-sonnet-4-7
openai:
planner: gpt-5
executor: gpt-5-mini
max_tokens_per_session: 500_000 # safety cap
multi_agent: trueProvider choice is per-project — your work notebooks can run on Claude while a side project stays on the free Gemini tier. See Agents for the behavioral differences.
Telemetry opt-out
Orchid collects anonymous event counts (which commands ran, which connectors were used, whether agents were invoked) to prioritize what to build next. No notebook contents, prompts, query results, or file paths are sent. Opt out two ways:
- In settings:
telemetry.enabled: false - Permanently: set
ORCHID_NO_TELEMETRY=1in your shell rc
Crash reports are a separate toggle (telemetry.crash_reports) and default to on. They include a stack trace plus your Orchid version and OS — no user content.
Where files live
Defaults — override with ORCHID_HOME:
- Config / app state —
~/Library/Application Support/Orchid/(macOS),~/.config/orchid/(Linux) - Logs —
~/Library/Logs/Orchid/(macOS),~/.config/orchid/logs/(Linux) - Project data — anywhere you cloned the project; outputs spill to
<project>/.orchid/outputs/
Hitting a wall? Walk through Troubleshooting, or check FAQs.