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 --sessions <DIR> where session journals live magi doctor what a session here would be made of, without starting one 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 its socket answers --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 tool the agent surface, as a harness calls it --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 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 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.