LatchAI documentation
LatchAI is a local-first AI workbench. A headless engine (a daemon on :7777) owns the
work — the workflow executor, the tool registry, MCP connections, triggers, chat, and
checkpoints — and a React workbench sits in front of it. The engine and the UI are
peers, so a CLI or a webhook can drive the same machinery with no window open.
Everything LatchAI produces is a plain file in your LatchAI home (~/LatchAI by default):
workflows as graph JSON, agents and skills as markdown with frontmatter, run logs as
append-only JSONL, chat transcripts mirrored as Obsidian-compatible markdown. There is
no database to export from.
Start here
Section titled “Start here”- Install — clone, install, and start the engine and workbench.
- The LatchAI home — what lives where, and why it’s all files.
- Models — download a model that runs on this Mac, or connect Ollama, LM Studio, vLLM, OpenAI, or Anthropic.
- Your first project — mount a repo, run your first chat and workflow.
The surfaces
Section titled “The surfaces”The editor, the workflow canvas, chat, dashboards, and Code Atlas are all views onto the same engine — the same provider, the same tool registry, the same permission-gated filesystem, and the same event stream.
A day in LatchAI
Section titled “A day in LatchAI”The shape of it once everything is set up:
- Overnight. The engine is up — a terminal process, or a
launchd service — and
triggers fire with nobody watching. Every run appends its
events to
<home>/runs/<runId>.jsonland snapshots the workspace into the shadow checkpoint repo before and after. - Morning. You open the workbench. The Runs sidebar lists last night’s runs with a
±per run that opens its diff; the History view has the transcripts and the token counts. - Working. You open a mounted repo in the editor and talk
to the assistant with
⌘⇧L. It reads and edits the same files through the same permission gate an agent uses, and every turn is checkpointed, so ± Review changes shows exactly what it touched — with a revert. - Automating. The thing you just did by hand becomes a workflow:
+in the sidebar, a trigger node wired to an agent node,⌘Sto save it to<home>/workflows/<id>.json,⌘⏎to run it. Swap the manual trigger for acron_triggerand it joins step 1.
None of that is a separate product. It is one engine, one filesystem, and one event stream, seen through different windows.
Guides
Section titled “Guides”- Run LatchAI as a service — keep the daemon alive across logout, reboot, and crashes.
- Overnight pipelines — the pattern behind a team of agents that ships code while you sleep.
- Secrets — Keychain-backed credentials, referenced as
{{secret:NAME}}. - Version history — every save of an agent, skill, or workflow, rolled back in two clicks.