Overview
What Lattices owns in the product family, what ships with it, and where to start
Find any project's windows. Put them in place, for you or your agent.
Lattices is a window manager that knows about projects. On macOS it is a
menu bar app, the lats CLI and a local agent API. On Linux it is a Bun
host, a Quickshell desktop app and the same CLI. People and agents share one
model of the desktop: windows, spaces, workspace layers, tmux sessions and,
when you turn it on, the text on screen.
New here? Read What Lattices is, then Getting started.
Lattices in the family
Lattices, Action, Canvas and Voice share this website, repository and skills catalog. Each product ships its own app and keeps its own lifecycle.
| Product | Use it for | Docs |
|---|---|---|
| Lattices | Window management, tiling, workspace layers, tmux sessions, screen text, voice commands | You are here |
| Action | Native computer use: observe, resolve, act and record, including private agent layers | Action docs |
| Canvas | Spatial notes that float on the desktop | Canvas docs |
| Voice | Spoken output from agents and scripts | Voice docs |
Some lats commands reach another product. For example, lats action
installs and calls Action, and lats voice say forwards speech to the Voice
app. Concepts shows each process, its local socket or network endpoint, and
where every command goes. The product map compares the products.
What's included
Screen-text indexing is off by default. It starts only after you grant Screen Recording permission and turn on Search & OCR in Settings; see Screen scanning for the scan intervals.
| Component | Platform | Description |
|---|---|---|
| CLI | macOS, Linux | The lats command. Tile windows, manage sessions, scan screen text, control the workspace from your terminal |
| Menu bar app | macOS | Command bar, window tiling, project discovery, screen text indexing, voice commands |
| Linux host and app | Linux (Hyprland) | lattices-host serves the agent API; a Quickshell app and a tray menu sit on top of it |
| Agent API | macOS, Linux | Authenticated WebSocket on lattices.sock in 0.15.1. RPC methods and real-time events; see Concepts |
| MCP server | macOS | lats mcp serves window, browser and remote-host tools to agent harnesses. See MCP |
| Screen scanner | macOS | When enabled, reads text from visible windows with the Accessibility API and Apple Vision OCR and indexes it with FTS5 |
| Node.js client | macOS, Linux | Zero-dependency daemonCall() helper for scripting |
| Embedded SDK | macOS | Swift package for embedding Lattices capabilities into host apps or product-owned helpers |
Requirements
macOS:
- macOS 26.0+
- Node.js 18+ or Bun for the CLI
- tmux for persistent terminal sessions (
brew install tmux), optional - Swift 6.2 / Xcode 26+, only to build the menu bar app from source
Linux:
- Hyprland with a systemd user session; Omarchy on Arch Linux is the supported automatic setup
- See Install on Linux for the full list
Where to go
Start here:
- What Lattices is: the three jobs, what you install, and the words you will see
- Quickstart: install the app and the CLI
- Getting started: tile, find, place, and start a session in ten minutes
- Install on Linux: the Hyprland host, app and CLI
Guides:
Reference:
- Concepts: product boundary, processes, sockets and glossary
- Configuration:
.lattices.jsonformat and CLI commands - Menu bar app: every shortcut and setting
- Screen scanning: AX text extraction, Vision OCR and full-text search
- Voice: voice commands and the
lats voicereference - Agent guide: canonical action contracts for voice, CLI and daemon clients
- Agent API: RPC method reference for agents and scripts
- MCP: the
lats mcpserver and its toolsets - Workspace map: read-only terminal/JSON desktop snapshots and visible-surface hygiene
- Embedded SDK: host-owned helper model for Scout, HudsonKit and other embeddings