Named teammates
AI teammates
with a home thread.
Give recurring work to a named AI coworker with its own instructions, schedule and conversation that carries context forward.
- NNovaReviews pull requestsWorking2 min ago
- NNight triageReads incidents, drafts the digestIdle6 h ago
- LLedgerWeekly ops reportNeeds youjust now
AI coworkers
A bot is a teammate with a name, a job, and a thread that remembers.
One durable home thread
Every bot has a home thread. Message it today and again next week and it picks up where it left off. The thread is an event log, so a reload shows the exact state, never a guess.
Chat, or a computer
Pick the engine when you create the bot. Chat answers from your knowledge, wiki and memory with no computer. OpenCode, Claude Code, Codex or Pi give it a sandbox: a repo, a terminal, a browser. The engine is fixed once the home thread exists.
Standing rules
Write the rules once: what it owns, what it never does, who it asks. They sit in front of every turn on the home thread and on every thread handed to it, so you stop re-explaining.
Routines
A bot owns its schedules. Cron, or a preset like weekdays at 9:00, firing into the home thread. Test run before you trust it, pause it during a release, read the history of every firing.
Mentions and handoffs, with receipts
Type @bot/Nova in any thread and that part of the work goes to Nova in its own delegated thread. An agent can do the same mid-run with the bot_handoff tool. The asking thread gets a receipt: created, sent to the existing thread, or refused with the reason and a retry hint. Bots never speak as each other. The parent reports 'handed to Nova, thread here' and reads the result.
Guards, archive, kill switch
A handoff is refused when it would loop: a bot to itself, back up its own chain, or deeper than delegation goes. Handoffs are capped per parent thread, per thread family, and per bot per hour. Archive a bot and it leaves the roster and mentions while its threads stay readable. Operators stop every bot and routine with BOTS=off.
SEE IT WORK
One agent. Real tasks.
Routine 02:00: read today's incidents and open PRs. Draft the morning digest. Flag anything that needs a person. Do not close, merge or change anything.
Routine fired into the home thread
02:00 on weekdays. Night triage picked up the turn with its standing rules in front: read only, never close an incident, flag rather than guess.
Read the day's incidents
Fetched 7 incidents from the tracker. 5 resolved with a postmortem link. 1 open with no owner since 19:40. 1 reopened twice this week.
Read the open PRs
14 open PRs. 9 waiting on review for more than a day. 2 with failing CI. 1 touching the payments module with no reviewer from that team.
Flagged two things for a person
The ownerless incident and the payments PR. Both marked needs a person, with the reason and a link.
Posted the morning digest
Digest in the home thread and in Slack #eng-morning: incidents, PRs, the two flags, and what it did not touch.
Questions, answered.
Does a bot share memory with the rest of the team?
Its home thread is its own: that context stays with the bot across turns. Knowledge, the wiki and team memory are org-scoped, so a bot reads the same facts your other runs read, within the memory scope you chose when you created it. It does not read another bot's thread unless work is handed to it.
What happens when two bots hand work to each other?
Nova can hand a piece of work to Reviewer, and Reviewer gets its own delegated thread under Nova's. Reviewer cannot hand it back up to Nova: that is a cycle, and the handoff is refused with the reason in the receipt. The chain also stops at a fixed depth, and every parent thread, thread family and bot has a cap. Nothing loops quietly.
Can a bot run overnight?
Yes. Put it on a routine, for example 02:00 every day, and it fires into the home thread whether anyone is watching or not. Approval gates still apply, so a destructive step waits for a person in the morning.
What does Chat-only mean?
A bot on the Chat engine answers from context: your knowledge base, wiki and team memory, plus the thread history. No sandbox, no repo, no terminal. It is the right choice for a bot that answers questions or drafts text. Pick OpenCode, Claude Code, Codex or Pi when the bot has to run code or use a computer.
How do I stop everything?
Two levels. Archive a bot and it leaves the roster and stops answering mentions, while its threads stay readable. For the whole org, an operator sets BOTS=off on the backend and every bot, routine and handoff stops until it is turned back on.
Start with one task.
See what you can hand off.
Explore a completed run, or join the early-access list to hear about getting your team started.