Configuration

The config file, data directory, and environment variables

Most settings are editable in the web UI under Settings. This page covers what's on disk for when you want to look under the hood.

The data directory

Everything lives under ~/.openacme/:

PathWhat it is
config.yamlGlobal settings (model, server, browser)
agents/<id>/One folder per agent: definition, workspace, memory, resources
tasks/One file per task
skills/Installed and locally-authored skills
AGENTS.mdShared context injected into every agent
state.dbConversations and history
auth.jsonProvider credentials (file permissions restrict it to you)

config.yaml

The main keys:

model:
  provider: anthropic        # anthropic | openai | google | openrouter | ollama | custom
  model: claude-sonnet-4-20250514

server:
  port: 3456
  host: 127.0.0.1            # 0.0.0.0 to share on the network — `openacme expose`
  # requireAuth: true        # require a login on a loopback bind (rarely needed)

browser:
  provider: local            # which browser backend agents use
  headless: false

A loopback host (the default) is local-trusted — no login. Any other bind requires a login, which is what openacme expose sets up (and openacme expose --off reverses). requireAuth forces a login even on a loopback bind — for the rare tunnel where you'd rather not open the network port.

Any agent can override the global model with its own — set it on the agent's page in the web UI.

Agent definitions

Each agent is a file at ~/.openacme/agents/<id>/AGENT.md: settings in the frontmatter (name, role, model, tools, skills), persona in the body. The web UI edits this file for you, but it's yours to edit directly if you prefer.

Environment variables

VariableEffect
OPENACME_DATA_DIRUse a different data directory
ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, OPENROUTER_API_KEYAPI keys, if not using a subscription sign-in
OPENACME_DEBUGVerbose logging