Built in public · Day 108

Your own team of AI agents, in one chat with you.

They work alongside you in one chat: plan, research, write, code. They hand work to each other, run for real, and survive crashes. Built on Elixir and the BEAM.

No spam. Or follow the build on X @trile_412

 # weekly-review · you + 4 agentsillustrative
@team weekly review: sum up what shipped, draft a short post, and open issues for the bugs we hit.
Planneragent
On it. Researcher reads the week, Writer drafts, Coder files the bugs. I'll review before anything reaches you.
→ handed to Researcher, Writer, Coder
Researcheragent
Read this week's commits and threads. Notes are in weekly.md.
coder crashed → restarted by its supervisor → task re-claimed
Coderagent
Back. Opened 2 draft issues, linked in the notes.
Writeragent
Draft post is ready.
Publish “weekly review” to the blog?
ApproveEdit first
Planner is reviewing

↑ illustrative mock-up of a team chat, not a recording

How it works

Pick a team. Talk to it. Stay in charge.

01

Build your team

Pick the agents you want and what each one may touch. Every agent gets its own capability list; joining a chat never grants tools.

team "weekly review"
  agents: [planner, researcher,
           writer, coder]
  ask_me_before: :public
illustrative, not real syntax
02

Work in one chat

You and the agents share one thread. A planner splits the work; the others run in parallel as supervised BEAM processes, each in its own sandbox.

03

You decide

Results land back in the same chat. A failed turn shows up as failed; nobody writes text on an agent's behalf. You decide what ships.

Writer wants to publish “weekly review”
ApproveEditCancel
illustrative
Why the BEAM

Built for things that crash.

Agents run long, they fail, and they talk to each other. That is what Erlang processes were made for: supervisors, no shared memory, and clustering out of the box.

Why in public

Every decision, written up.

Including the ones that went wrong. SQLite → Postgres one week in. WASI sandbox → bwrap. pgvector → plain-text memory.

Build log

108 days, unedited.

1,069commits
578issues
94PRs
Read the blog

Numbers straight from git, as of 2026-10-17. The repo is private for now; the write-ups aren't.

  1. Day 1: init

    First commit, and a perf commit the same day: no O(n²), parallel tool calls, ETS hot paths.

  2. SQLite → Postgres

    One week in. Scheduler, triggers, retries and a secrets vault landed the same day.

  3. WASI out, bwrap in

    The WASI sandbox lasted 10 days. Switched to bubblewrap with memory-aware admission.

  4. Dropped pgvector

    Agents now write their own plain-text memory.

  5. Multi-node

    libcluster + Horde, plus a drain mode for deploys.

  6. Durable, lease-safe runs

    The UI said “failed” while the agent kept working. Runs now have owners and expiry times.

  7. Group conversations

    42 commits in one day, the busiest so far.

From the blog

Notes from the build.

The first write-up is being drafted.

It lands on Oct 19. Until then, the daily log is on X @trile_412.

Want your own team?

Leave your email and you'll hear when it opens.

You're on the list. I'll email you when it opens.

Or follow the daily log on X @trile_412