Local-first · files as truth

The AI workbench where your editor,
your automations, and your knowledge
live in one place

Runs entirely on your machine, with whatever models you choose. Everything it makes is a plain file in a folder you own.

The LatchAI workbench with the activity bar expanded: Code, Database, Git, Projects, Workflows, Dashboards, Usage, Runs, Brain, Models — beside the file tree, the editor, and the chat panel
The workbench: every area in the activity bar — Code, Database, Git, and Projects under Development; Workflows and Dashboards under Automation; Usage and Runs under Audit; Brain and Models under Intelligence — beside your files, the editor, and the assistant. One window, one process.

One interface, three surfaces

Most tools give you one of these and an integration story for the other two. LatchAI runs them in a single process, which is what makes the seams between them possible.

Editor

The code you're actually working on

CodeMirror 6 or Monaco, with Vim mode in both; search across every mount with ⌘⇧F, git status in the tree and a change gutter, tab autocomplete, a Problems panel, a fuzzy command palette, your own terminal, and a git panel. Mount a repo and it becomes a top-level folder every tool can see.

The file you're viewing is passed to chat as context.

Canvas

The automations that keep running

Workflows are a graph you can drag, wire, and run with ⌘⏎ — or hand-write as JSON, emit from the code-first SDK, or have an agent author. Every view projects the same document, so there is nothing to sync.

A run knows which workflow, trigger, and work item it served.

Knowledge

Everything the work left behind

Agents, workflows, chats, memory, work items, dashboards, and atlases are plain files in your LatchAI home. Vaults are folders of markdown notes with wikilinks, drawn as a graph in the Brain area; agents propose notes into an inbox and you accept or reject them.

A file knows which run wrote it — and what that run cost.

New · Projects

Give the agents a board

A kanban board per project — lanes, kinds, custom fields — stored as markdown files in the workspace. You drag cards; agents move them with fivework_* tools and narrate in an append-only activity log. Every item links itself to the runs, chat turns, commits, and token spend that touched it, with no tagging on anyone's part.

A project board in LatchAI: five lanes of cards with kind badges, assignees, and labels

Watch

Configure your first model

In under 90 seconds: download a model that runs entirely on this Mac, or connect an endpoint you already use — and test the connection before you commit to it.

What's in the box

Every capability below is a surface on the same engine — the same tool registry, the same permission gate, the same event stream.

Projects & work items

A kanban board per project, stored as markdown in the workspace. Agents work it with five work_* tools, and every card links itself to the runs, chats, commits, and cost that touched it.

Read the docs →

Workflows & triggers

Graph JSON on disk is the single source of truth — with a state document, real joins, loops under a step budget, map fan-out, switch and transform nodes, structured agent outputs, a per-node retry and error policy, and runs that stop and resume. Arm it on cron, a watched folder, or a webhook — several at once.

Read the docs →

Agents with memory

Named personas in agents/*.md: system prompt, model, tool allowlist, turn budget. Turn on memory and the agent keeps durable notes — its own and a shared layer — that you review, edit, and consolidate in Settings.

Read the docs →

Chat that can edit

The assistant panel shares the engine's provider, tool registry, and filesystem — so it reads, edits, and runs shell in the same workspace the editor is showing you. Every code block it writes has an Apply button that opens a proposed diff.

Read the docs →

The Brain & vaults

One place for what you know: a provenance graph of runs, files, chats, and work items, and any number of vaults — folders of markdown notes with a vault.json. Agents can search, read, and propose notes into an inbox; only you accept them.

Read the docs →

Phone app

Pair a phone with one scan and follow chats, runs, dashboards, and approvals from anywhere over an end-to-end sealed relay — with push alerts when an agent is blocked or a run fails.

Read the docs →

Browser automation

A small extension lets agents drive the Chromium browser you are already signed into — tabs, navigation, snapshots, clicks, typing, screenshots — asking per site, never reaching a loopback or private address, and logging every action in the chat and the run.

Read the docs →

Code Atlas

Point an agent at a repo you've never seen and it publishes layered, interactive diagrams of how the system fits together — and a node on the map opens the real file.

Read the docs →

Dynamic Dashboards

A dashboard is a natural-language brief, not a saved query. An agent gathers the data with its tools and emits a validated document the UI renders as widgets.

Read the docs →

Checkpoints & review gates

A shadow git repo snapshots the workspace around every run, so any run has a diff. Drop a review gate into a workflow and it pauses for your approve/reject.

Read the docs →

Database

A SQL explorer for SQLite and Postgres — schema browser, query tabs, a grid that takes a hundred thousand rows. Agents get the same connections: reads are free, writes ask you first.

Read the docs →

Usage

Every model call booked — per run, per workflow, per model, per agent, per work item — with prompt-cache hit rates, dollar cost for priced models, and the full transcript of any run.

Read the docs →

MCP integrations

Declare stdio or HTTP MCP servers in mcp.json and their tools register beside the built-ins. Agents see one tool surface; the permission gate stays intact.

Read the docs →

Local models first

Download a model in-app and it runs entirely on your Mac — private, offline, free. Or connect Ollama, LM Studio, vLLM, OpenAI, or Anthropic. One Models page, one default, picked per chat or per agent node.

Read the docs →

Built local-first

Not "privacy-friendly cloud". The engine is a process on your laptop, bound to loopback, reading and writing directories you can open in Finder.

Your machine

The daemon binds 127.0.0.1 and rejects non-local Host/Origin on HTTP and WebSocket. Nothing phones home. Agent shell runs with a secret-scrubbed environment, and API keys live in the macOS Keychain rather than in any LatchAI file.

Your models

Download a model from the in-app catalog and run it on your own hardware — or connect a local vLLM, Ollama, or LM Studio server, OpenAI, or Anthropic. One OpenAI-compatible API serves them all to other apps, and a clearly-labeled demo mode keeps LatchAI explorable with no model at all.

Plain files

Workflows are JSON. Agents, skills, dashboards, and atlases are markdown with frontmatter. Run logs are append-only JSONL. You can grep it, diff it, commit it, and open the whole thing in Obsidian.

Run it from a clone

LatchAI is an early project. Clone the repo, install, and start the engine and the workbench — first boot walks you through picking a home and a model. A packaged, self-updating macOS desktop app (macOS 13 or newer) is built from the same source; it is not yet publicly downloadable.

npm install
npm run engine   # daemon on :7777
npm run ui       # workbench on :5173