Lattices documentation

What Lattices is

A plain-language introduction to Lattices for someone who has never used it

Updated Edit on GitHub →

Lattices is a workspace manager for macOS. It keeps a live model of your windows, desktops and terminal sessions, and it lets you act on that model with keyboard shortcuts, the lats command, or an API that AI agents can call.

This page explains what Lattices does, what you install, and which parts are optional. Getting started walks through the first ten minutes.

Three jobs

Lattices does three things. Each one works on its own.

Place windows. Press Control+Option+Right and the front window fills the right half of the screen. Run lats tile left for the same result from a terminal. Agents call windows.place on the daemon. All three routes move the same window through the same code. See Tiling and placement.

Keep project context. A project can declare its terminal layout in a .lattices.json file, and lats start builds that layout as a tmux session. A workspace layer groups the windows of one piece of work and switches them in and out as a set. See Sessions and Layers.

Make the desktop searchable. lats search finds windows by title, app, session or the text on screen. lats place finds a window and tiles it in one step. See Finding windows.

Who it is for

  • Developers who work on several projects at once and rebuild the same window layout every day.
  • People who run AI agents such as Claude Code or Codex and want those agents to see and arrange the desktop.
  • People with more than one Mac, or a Mac and a Linux box, who want one keyboard to reach all of them.

What you install

Part What it is Required
Menu bar app Lattices.app. Hosts the daemon, the shortcuts and the command bar. Yes
CLI lats, installed from the @lattices/lattices npm package. Bun runs it. For terminal and agent use
tmux Terminal multiplexer. lats start needs it. Only for sessions
Screen Recording permission Lets the app read window text for search. Only for screen-text search
Gateway A separate process for remote access over Tailscale. Only for other machines

The app runs without the CLI. The CLI runs most commands only while the app is running, because the app hosts the daemon. See Getting started for the install steps.

Words you will see

Term Meaning
Window One macOS window. Lattices identifies it by a window id, written wid.
Placement A named screen position such as left, top-right or 2x2:1,1.
Session A tmux session that Lattices created for one project directory.
Layer A named set of windows that Lattices shows together and puts away together.
Space A macOS desktop. Lattices can switch Spaces to reach a window.
Daemon The API server inside the menu bar app. The CLI and agents talk to it.
Host Another machine that runs Lattices and accepts commands or visits.
Visit Lending this Mac's mouse and keyboard to a host by pushing the pointer past a screen edge.

Concepts has the full glossary and the process map.

Lattices shares a repository, a website and a skills catalog with three other products. Each one is a separate app with its own install and its own docs. Lattices does not need any of them.

Product What it adds Reached from lats as
Action Native computer use for agents: observe, click, type, record lats action
Canvas Notes that float on the desktop lats canvas
Speech Spoken output from agents and scripts lats voice say

Platforms

Lattices on macOS requires macOS 26 or later. Lattices on Linux runs on Hyprland and installs from source; see Install on Linux. This guide and the other guides describe the macOS app unless they say otherwise.

Next