AI agents you write in Go — not prompt files.
You write each agent, called a totem, as Go code in your own repo, with types, tests and golden files. A shared engine gives every totem model providers, a sandbox, a cost budget, tracing and editor integration (MCP). A terminal chat shows every tool, every diff and every cent.
Write "do A, then check B, then merge the results" in a prompt, and the model may skip a step. Write it in Go, and each step is the next line of code: it always runs, and you can test it.
The same three steps, written twice. On the left, the model decides whether to follow them. On the right, the steps are the program, so they always run.
A ouija board needs several hands, and so does a good plan. The task totem first scouts the code, then asks the model for several independent plans, called passes, and finally reconciles them, keeping what they agree on.
the engine knows nothing about tasks or documents; each totem defines its own steps and shares the engine's budget, sandbox and tracing
Each reply lists its tools on one line, with the last output lines of any command that failed, followed by its time, tokens and cost. Every file change appears as a diff.

@file /task /learn /help


/task "add a cache" draws the scout and the passes liveouija is a terminal program: "installed" means ouija is on your PATH.
From a fresh install to a verified plan for your own code.
A code reviewer in about 50 lines. Go reads the diff, and the model looks for problems: System tells it how to work, Prompt gives it the data, and Schema fixes the shape of its answer. Then a second call, the skeptic, checks each finding, because the Go loop says so. The totem is a Go type in your own repo, so you need no fork, and it inherits the engine's budget, sandbox, tracing and MCP. Piece by piece →