LumiAgent: In-Chat Tool-Calling Agent

Published:

A general-purpose tool-calling agent that lives inside an AI chat application as a first-class extension, with read/write access across the entire runtime: character cards, chat histories (including hidden messages, swipes, and reasoning blocks), regex scripts, prompt presets, personas, world books, attached modules, the assembled prompt the next reply would actually send, lorebook activation traces, macro resolution against any chat/character pair, and token counts against the configured model. The agent does multi-step work by chaining tool calls against this surface.

Mutation layer. Every edit the agent makes is journaled before it lands. The UI surfaces edits in two places: an inline “Edits (N)” card under each agent message, and a dedicated “Workshop” view that aggregates the full history per chat. Revert is git inspired. If a downstream edit depended on the one being reverted, the runtime rolls those forward edits back too and tells the user which.

Workspace. The agent gets its own file-system workspace inside the chat where the user can drop arbitrary files (novels, character templates, exports from other chat frontends) for it to read, search, and operate against. A scratch area catches large tool outputs so the agent can grep across them without folding the model’s context. Reusable workflows (“tool recipes”) can be saved per-user; long-term notes about the user persist across sessions.

Runtime. TypeScript, bundled with Bun, MIT-licensed. Talks to 12+ providers via the host’s connection layer (API keys stay encrypted in the host’s secrets store, the agent never sees them).

~500+ unique users.

GitHub

Direct Link