# Overview

Canonical page: https://lattices.dev/lattices/docs/overview

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](https://lattices.dev/lattices/docs/what-is-lattices), then
[Getting started](https://lattices.dev/lattices/docs/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](https://lattices.dev/action/docs/overview) |
| **Canvas** | Spatial notes that float on the desktop | [Canvas docs](https://lattices.dev/canvas/docs/overview) |
| **Voice** | Spoken output from agents and scripts | [Voice docs](https://lattices.dev/voice/docs/overview) |

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](https://lattices.dev/lattices/docs/concepts) shows each process, its local socket or network endpoint, and
where every command goes. The [product map](https://lattices.dev/products) 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](https://lattices.dev/lattices/docs/ocr) 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](https://lattices.dev/lattices/docs/concepts#private-ipc-and-the-gateway) |
| **MCP server** | macOS | `lats mcp` serves window, browser and remote-host tools to agent harnesses. See [MCP](https://lattices.dev/lattices/docs/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](https://lattices.dev/lattices/docs/install-linux) for the full list

## Where to go

Start here:

- [What Lattices is](https://lattices.dev/lattices/docs/what-is-lattices): the three jobs, what you install, and the words you will see
- [Quickstart](https://lattices.dev/lattices/docs/quickstart): install the app and the CLI
- [Getting started](https://lattices.dev/lattices/docs/getting-started): tile, find, place, and start a session in ten minutes
- [Install on Linux](https://lattices.dev/lattices/docs/install-linux): the Hyprland host, app and CLI

Guides:

- [Tiling and placement](https://lattices.dev/lattices/docs/guide-tiling)
- [Finding windows](https://lattices.dev/lattices/docs/guide-search)
- [Sessions](https://lattices.dev/lattices/docs/guide-sessions)
- [Layers](https://lattices.dev/lattices/docs/guide-layers)
- [Working across machines](https://lattices.dev/lattices/docs/guide-machines)
- [Lattices for AI agents](https://lattices.dev/lattices/docs/guide-agents)

Reference:

- [Concepts](https://lattices.dev/lattices/docs/concepts): product boundary, processes, sockets and glossary
- [Configuration](https://lattices.dev/lattices/docs/config): `.lattices.json` format and CLI commands
- [Menu bar app](https://lattices.dev/lattices/docs/app): every shortcut and setting
- [Screen scanning](https://lattices.dev/lattices/docs/ocr): AX text extraction, Vision OCR and full-text search
- [Voice](https://lattices.dev/lattices/docs/voice): voice commands and the `lats voice` reference
- [Agent guide](https://lattices.dev/lattices/docs/agents): canonical action contracts for voice, CLI and daemon clients
- [Agent API](https://lattices.dev/lattices/docs/api): RPC method reference for agents and scripts
- [MCP](https://lattices.dev/lattices/docs/mcp): the `lats mcp` server and its toolsets
- [Workspace map](https://lattices.dev/lattices/docs/workspace-map): read-only terminal/JSON desktop snapshots and visible-surface hygiene
- [Embedded SDK](https://lattices.dev/lattices/docs/embedded-sdk): host-owned helper model for Scout, HudsonKit and other embeddings
