Commands
Every binary, and what it answers to.
magi
magi [PROMPT] a session here; the prompt is submitted on start -p, --print print the answer and exit, instead of opening the UI -r, --resume continue this directory's most recent session --socket <PATH> connect to a named socket instead of one per directory --headless serve with no terminal, reachable until something ends it --role <NAME> what this session is for, in one word; main when nothing says --json | --cbor which encoding a reply comes back in magi doctor what a session here would be made of, without starting one magi fork [PROMPT] start a child session of this one, and print what it is called magi verbs what it answers, on each of its doors magi acknowledge clear the installed packages, so they may run magi tools every tool the model can call, and how each is reached magi models the providers and models melchior knows about magi lua-api the Lua client library for magi's own surface magi ext <kind> run a tool peer. not for people: magi spawns these itself magi fake-host serve a recorded session, so the UI can be worked on without a model
casper
casper tools every tool, with schemas casper run <tool> one call on stdin, one result on stdout casper surface <tool> frames both ways, for as long as it holds its rows casper verbs what it answers, on each of its doors casper needs what a coordinator may tell it casper configure take that configuration, as Lua on stdin casper acknowledge clear the installed packages, so their declarations may run --json | --cbor which encoding a reply comes back in
melchior
melchior models what this machine could talk to melchior ask run a turn; an Ask on stdin melchior serve bind this session's socket and answer for it --project <NAME> which project this session belongs to melchior needs what a coordinator may tell it melchior configure take that configuration, as Lua on stdin melchior fork a name and a secret for a session about to be started melchior tool --verb <VERB> the coordination vocabulary a model calls, one exec per request melchior brief what to tell a model about the sessions a prompt named melchior verbs what it answers, on each of its doors melchior acknowledge clear the installed packages, so their declarations may run --json | --cbor which encoding a reply comes back in
balthasar
balthasar remember <TEXT> keep something, and say who says so balthasar recall <QUERY> search --explain and say why each answer came back balthasar why <HANDLE> the evidence, not just the number balthasar promote carry something out of a session into the project's memory balthasar forget move a memory out of the live set, or remove it outright balthasar context exactly what a model would be told balthasar sessions which runs this project has had balthasar decay what today's forgetting would take, before it takes it balthasar consolidate carry what recurred across sessions into the project balthasar eval measure whether memory earns its place balthasar replay everything a run said, back out again balthasar export · import every memory, one JSON object per line, and back balthasar outcomes what a session reported, and how it went balthasar init make this directory the root of its own memory balthasar serve listen for other programs --instance <NAME> when more than one should be reachable at once --scope <SCOPE> global, project, or a path --tied <PID> end when that process ends, enforced by the kernel --tool <NAME> which tool the memory belongs to balthasar api <VERB> [ARGS] answer one question, wire-shaped, and exit --json | --cbor which encoding a reply comes back in
--tied is absent by default. A balthasar started at a terminal or by a unit file is meant to outlive the thing that typed the command. magi passes it, naming its own process id, so the memory layer cannot outlive the window even if magi is killed outright.