Maskin is configured through environment variables. Only DATABASE_URL is strictly required to boot; everything else has sensible dev defaults and is opt-in for production and integrations.
iIn this monorepo, env vars must be declared in turbo.json's globalPassThroughEnv or they're filtered out of builds. This page lists the runtime variables; check the repo for the current canonical list.
Core
Variable
Default
Purpose
DATABASE_URL
—
Required. PostgreSQL connection string.
POSTGRES_URL
—
Optional override for DATABASE_URL.
DATABASE_URL_DIRECT
—
Non-pooled connection for PG LISTEN/NOTIFY when you run behind a pooler.
PORT
3000
API server port.
NODE_ENV
—
Set to production for prod builds (logging, error handling).
MASKIN_AUTO_BOOTSTRAP
true
Auto-create a dev actor, workspace, and API key on a fresh DB. Set false to disable.
Object storage (S3-compatible)
Variable
Default
Purpose
S3_ENDPOINT
http://localhost:8333
S3 endpoint (SeaweedFS in dev; any S3-compatible store in prod).
S3_BUCKET
agent-files
Bucket name.
S3_ACCESS_KEY · S3_SECRET_KEY
admin
Credentials.
S3_REGION
us-east-1
Region.
Integrations
Variable
Purpose
INTEGRATION_ENCRYPTION_KEY
32-byte hex (64 chars) for encrypting stored OAuth tokens (auto-generated by pnpm dev).
The Anthropic API key and any workspace custom-LLM endpoint are configured in the app (Settings → Integrations / LLM keys), stored encrypted per workspace — not via environment. The environment only configures the optional system fallback used when a workspace has no model configured: