Lucitra/ agent teams

How it fits together

Lucitra runs agent teams on your own machine. A team is a folder of plain files. A daemon reads it, starts each agent on a runtime you already use, and keeps a record of everything the agents do.

your team repo              your machine
──────────────              ─────────────────────────────────────
COMPANY.md                  daemon ── store (~/.lucitra)
agents/*/AGENTS.md  ──────▶   │        every step of every run
agents/*/access.yaml          │
policies/*.md                 ├── runtime: Claude Code, goose, Codex
projects/*/TASK.md            │     one agent run per git worktree
                              │
                              ├── integrations: GitHub, Alpaca, …
                              │     called on your credentials
                              │
                              └── the gate: push, deploy, orders
                                    waits where a policy says so

Teams and agents

A team is a package: a COMPANY.md, one AGENTS.md per agent, and the files that say what each agent may do. It lives in a folder, usually a git repository you own. See Writing a team package.

An agent is one role on the team: a name, a title, who it reports to, and instructions. The org chart is the permission. A lead may hand work to the agents that report to it, and to any agent it lists under mayDelegateTo, and to no one else.

The first run gives you a default team, so you can start a task before writing a package.

The daemon and the store

The daemon holds every running task and the store, an embedded Postgres under ~/.lucitra. It keeps running after you close the shell, so quitting never stops work. The shell, the app and another agent over MCP all talk to the same daemon.

Tasks and worktrees

A task is one piece of work given to one agent. It runs in its own git worktree under ~/.lucitra/worktrees, never in your checkout, and ends in a branch. A lead can split its task and delegate the parts to its reports, which run the same way.

Runtimes

A runtime is the agent CLI that does the work: Claude Code, goose or Codex, on your own subscription or key. Each agent can run on a different one. See Runtimes.

Policies and the gate

A team's policies/*.md list what is gated and what is autonomous. Anything gated waits for you in the Inbox, or at lucitra approve. Everything else runs on its own. A finished task pushes its branch and opens a pull request unless the team gates push, and a person always merges. See Run a team.

Integrations

An integration gives agents tools for an outside service: GitHub, a brokerage, market data, research, notifications. The daemon makes every call on your credentials; no agent holds a key. An agent can use a tool only where its access.yaml allows it. See Integrations.

Project memory

What the team learns about a repository is kept as markdown in that repository, under .lucitra/. Agents propose changes to it, and they arrive as a pull request a person merges. See Project memory.

Schedules and budgets

A TASK.md with a schedule: line runs on its own once you switch it on. A budget caps the tokens a team or one agent may use in a day, week or month.

The record

Every step of every run is kept: each tool call, what it returned, what the agent said, and each decision you made at the gate. lucitra run-events <task> prints it, and the app shows it live on the run's page.