Skip to main content
Operator is a local agent runtime that connects chat messages to LLMs via LiteLLM. It is intentionally small and file-driven:
  • Markdown files for agent prompts, jobs, and skills
  • SQLite for durable runtime state (memory, messages, runs, jobs)
  • A single execution path for both inbound chat and scheduled jobs

Core Features

  • Multiple agents with separate prompts and workspaces
  • Model fallback chains (if one model errors, the next is tried)
  • Slack transport with thread continuity
  • Skills discovery from markdown files
  • Scheduled jobs with prerun gating and postrun hooks
  • Vector memory with automatic harvesting and semantic search
  • Key-value store for operational state
  • Turn-safe context truncation against model token budgets

Architecture

~/.operator/
├── operator.yaml           # runtime config
├── SYSTEM.md               # system preamble
├── logs/
├── state/
│   └── operator.db         # SQLite database
├── agents/
│   └── <agent>/
│       ├── AGENT.md        # agent prompt
│       └── workspace/      # agent working directory
├── jobs/
│   └── <job>/
│       ├── JOB.md          # job definition
│       └── scripts/        # prerun/postrun hooks
└── skills/
    └── <skill>/
        ├── SKILL.md        # skill definition
        └── scripts|references|assets/