Katai
The assistant in kat800's bottom dock: it reads the focused pane's recent output and answers beside the terminal, through the same broker Amberlin uses.
A page of kat800.
Katai is kat800’s own assistant, in a panel at the bottom of the window. It is
not Amberlin. It has its own name, its own persona and its own conversations,
and it shares only the broker underneath: the same models, reached the same
way. It is off until you turn it on with enabled = true under [llm] in
kat800’s config.toml; then Ctrl+Shift+@ opens the panel. The clip above is a
question about the repository in the focused pane, answered from that pane’s own
output.
What it sees
Ask a question and it goes out with the focused pane’s scrollback: the last hundred lines up to the cursor, sent as a fenced block. “What does that error mean” or “what does this repo do” never needs the output pasted in, because it is already there. A breadcrumb at the top of the panel shows which pane’s folder that is, and clicking a segment changes folder in that pane.
What it never does
It never types into the terminal. The answer streams into a read-only editor view as Markdown, highlighted but not rendered: select text and copy it, then paste it where you want it, as anywhere else. A reply that arrives late, after you cleared the panel or asked again, is dropped rather than landing in the wrong conversation. Each window has its own Katai, and windows do not share a conversation.
Starting an agent
The panel also holds a launcher. Pick a coding agent from the list, such as Codex, Claude, Gemini or OpenCode, and it starts in the focused pane’s folder, with the same keys as every other panel row: Enter runs it in the pane, Shift in a new tab, Ctrl+Shift in a new window. An agent already running in a pane at or under that folder is marked in the list, so the same job is not started twice. The git dock, the history and the editor beside it are how the work gets looked at.
One broker, many assistants
By default Katai asks the Amberlin broker on the session bus: no key, the same model Amberlin uses, and nothing to set up twice. The broker holds the models once, and any application can bring its own assistant to it: its own persona, its own conversations, its own idea of what context matters. The broker has no persona of its own. Amberlin is one such assistant, speaking and listening on the desktop. Katai is another, reading a terminal. elektron, the terminal chat, is a third.
Each Katai window sends its questions with a conversation id of its own, so its threads never mix with Amberlin’s, and the broker keeps each conversation in Ambrosia under the application that asked. With the broker’s local model, nothing leaves the machine. Katai can also talk straight to any server that speaks the OpenAI chat API instead, with a URL, key and model of your choosing.