Chronicle is configured entirely via CLI flags (see CLI Reference). When used within Podium, the coordinator sets all flags automatically.

Environment Variables

VariableDescription
AWS_REGIONS3 region for tiered CAS storage
AWS_ACCESS_KEY_IDS3 credentials
AWS_SECRET_ACCESS_KEYS3 credentials
AWS_ENDPOINT_URLS3 endpoint (for MinIO)
RUST_LOGLog level filter (e.g., chronicle=debug,info)
CHRONICLE_ENABLEEnable/disable Chronicle in Podium (default: true)
CHRONICLE_S3_BUCKETS3 bucket for CAS when running in Podium

Podium Integration

When Podium spawns Chronicle for an agent, it sets:
chronicle /instances/{agent_id}/chronicle/mount \
  --agent-id {agent_id} \
  --database /instances/{agent_id}/chronicle/metadata/chronicle.db \
  --cas-dir /instances/{agent_id}/chronicle/metadata/cas \
  --s3-bucket ${CHRONICLE_S3_BUCKET} \
  --replication \
  --socket /instances/{agent_id}/chronicle/chronicle.sock
The agent’s AGENT_WORKSPACE environment variable points to the mount directory.

Database Configuration

SQLite is configured with:
  • WAL mode: Write-ahead logging for concurrent reads
  • Busy timeout: 5000ms (prevents lock contention errors)
  • Foreign keys: Enabled for referential integrity

CAS Configuration

Local CAS

Default storage at ~/.chronicle/{agent_id}/cas/:
  • Files stored as {hash_prefix}/{hash} (2-character prefix for directory distribution)
  • Zstd compressed
  • File permissions: 0644

Pooled CAS

With --pooled-cas, all agents share ~/.chronicle/shared_cas/:
  • Deduplication across agents on the same host
  • Useful for shared content (model weights, Docker layers, common libraries)

S3 CAS

With --s3-bucket:
  • Async upload (default) — writes return immediately, upload happens in background
  • Tiered read: local first, S3 fallback with local promotion
  • Supports MinIO via AWS_ENDPOINT_URL with path-style access