What is Cradle?

Cradle runs teams of AI agents and checks their work. A project is a team: a captain assigns tasks, leads deliver them with their executors, and a Checker signs off on every result before it comes back to you.

Not all of that is built yet. The team model and the Checker are the direction; the parts that exist in the code today are listed under What runs today.

Where a team lives

A team lives in a cradle: a Cradle Server with its models, a knowledge base and a results database, all in containers.

Install the server on a laptop, on any server or on a GPU rack. In the web console, give each project the address of its cradle. Several teams can share one cradle, or each can have its own.

Console
  └─ Project "Dev team"        →  cradle A  (GPU server)
  └─ Project "Content"         →  cradle A
  └─ Project "Experiments"     →  cradle B  (laptop)

The pieces

PieceWhat it does
Cradle ServerThe runtime and CLI. Runs the agents and the models on your hardware, GPU or CPU.
ConsoleThe web app for projects and settings, including the address of each cradle.
Smart NotesA voice work journal. Summaries and issue extraction run through a cradle over MCP.

What runs today

Checked against the code of the repository.

Works todayWhere it is
Projects: each has its own agents, knowledge bases and tickets inside one Cradle Serverpackages/core/src/db/schema.ts (projects, agents, knowledge_bases)
Triage of an incoming message: a risk check (rules, then an LLM classifier), then one agent is picked by role and skills; yellow and red drafts wait for an operatorpackages/core/src/triage/orchestrator.ts, router.ts
Team structure (captain, leads, executors, Checker) is stored and shown; routing still picks one agent; there is no hand-off of a result lead → Checker → captainpackages/core/src/db/schema.ts (agents.team_role, reports_to), triage/team.ts, triage/router.ts
Models on GPU or CPU behind one endpoint: Anthropic-compatible POST /v1/messages and GET /v1/models over local, remote-GPU and cloud providers (Bedrock among them)packages/core/src/channels/inference-routes.ts, llm/providers/provider-registry.ts
Server in containers: cradle-server, plus an optional GPU inference containerapps/server/docker/
Web console connects to a server by its addressapps/web/lib/console/, packages/console
Channels: Telegram bot, web widget, HTTP API, MCP in both directionspackages/core/src/channels/
An action gate: typed proposals, policy, human approval for irreversible actions, a hash-chained audit log. Not exposed over HTTPpackages/core/src/runtime/
Smart Notes summaries and issue extraction through MCPmcp-server-channel.ts (cradle_summarize_notes, cradle_submit_issue)
The ticket screen in the console: the team path (captain → lead → executor, each linking to the team) and the risk gate card (rules that fired, classifier verdict, level, hold reason). There is no Checker verdict on itpackages/console/src/pages/TicketDetail.tsx, components/TicketTeamPath.tsx, components/TicketGate.tsx
Planned — not in the code yetWhat exists instead
Checker as a separate role between the leads and the captainA verification engine exists, but no verifiers ship, so a postcondition resolves inconclusive. Replies are checked by risk rules and an operator, not by a Checker agent
Captain, leads and executors as a hierarchy that splits and delegates a taskAgents carry a team role and a reports_to link, but Triage still picks one agent by role and skills. Nothing splits a task across agents or hands a result up the chain
An agent in a group chat that turns what was agreed into project tasks (Telegram, WhatsApp)The Telegram bot answers each text message as a ticket. It does not extract tasks from a thread. There is no WhatsApp channel
Cradle cloud: ready workers, a database and cloud modelsYou can add a Bedrock model to your own server. There is no hosted service
The hand-off chain of a team template: a result passing lead → Checker → captainThe "Dev team" template creates the team, but routing still picks one agent per ticket. Nothing hands a result up the chain
A cradle address per project set in the consoleThe console stores the address of a server; projects live inside a server

Where to go next