@lattices/lattices
v0.14.1
Published
A programmable workspace for your Mac. Native window management, screen search, persistent sessions, and a shared API for people and agents.
Maintainers
Readme
Lattices is a native macOS app with a command bar, window tiling, workspace layers, screen search, and persistent terminal sessions. Use hotkeys and mouse gestures yourself, or let an agent inspect and arrange the same workspace through lats and the local API.
Start with your desktop
- Download Lattices for Mac, open the DMG, and drag Lattices to Applications.
- Launch Lattices and grant Accessibility access when prompted. Enable Screen Recording for screen capture and OCR.
- Press Control+Option+Left to tile the frontmost window to the left half of your screen. Press Command+Shift+M to open the command palette.
The app requires macOS 26 or later. tmux is optional: window management, layers, search, and the agent API work without it.
| Your workspace | What Lattices does |
| --- | --- |
| Windows | Tile halves, thirds, quarters, and grids with hotkeys, gestures, the command bar, or the API. |
| Projects | Group windows into workspace layers and return to a working context. |
| Spaces | Move between macOS desktops with instant switching and a desktop preview. |
| Search | Find windows by title, app, terminal directory, session, and indexed screen text. |
| Terminals | Define panes in .lattices.json and reattach to persistent tmux sessions. |
| Agents | Expose the same workspace through a local API and installable skills. |
Install the command line tools
Install Bun to run the CLI. You can install the package with npm (Node 18+) or Bun:
npm install -g @lattices/lattices
lats app
latslats app launches the bundled menu bar app. Bare lats shows workspace status. Both lats and lattices run the same CLI.
lats search api --deep
lats tile right
lats mapThe setup guide covers Homebrew, login startup, permissions, and the one-command installer.
Existing installations
@arach/lattices and @lattices/cli remain supported compatibility packages. They receive the same CLI, exports, and bundled app as @lattices/lattices. Update using the package name you already installed. From version 0.14.1, lats app upgrade also preserves that package name.
The repository moved from arach/lattices to lattices-dev/lattices. Existing Git remotes and release links redirect to the new location. Your configuration, sessions, and app identity stay the same. See the migration guide.
Keep a terminal session alive
Install tmux (brew install tmux), then:
cd ~/your-project
lats init
lats startlats init creates .lattices.json. lats start creates or reattaches the project's tmux session; lats tmux is an alias. Close your terminal and run lats start again to return to the session.
{
"ensure": true,
"panes": [
{ "name": "shell", "size": 60 },
{ "name": "server", "cmd": "bun dev" }
]
}Give your agents workspace access
Install the family skills:
npx skills add lattices-dev/lattices --all --global --yesInspect the live API or call it directly:
lats daemon status
lats call api.schema
lats call windows.search '{"query":"api"}'For a script, install the package in your project (npm install @lattices/lattices):
import { daemonCall, isDaemonRunning } from '@lattices/lattices'
if (!(await isDaemonRunning())) {
throw new Error('Start Lattices with: lats app')
}
const windows = await daemonCall('windows.search', { query: 'api' })
console.log(windows)The app hosts the API at ws://127.0.0.1:9399. It is local-only and has no authentication; any process on your Mac can connect. Read the API reference and agent guide for methods, events, and permissions.
The Lattices family
| Product | What it adds | | --- | --- | | Lattices | A programmable workspace: windows, projects, screen search, and terminals. | | Action | Computer use for agents: observe apps, operate browser surfaces, and record what happened. | | Blink | Spatial notes: editable notes that live in floating windows on your desktop. | | Speech | Spoken agent output with queued playback and a readalong HUD. |
Action and Blink are separate apps with their own installation and runtime lifecycles. Their source lives in this repository. Explore the family.
Build and contribute
git clone https://github.com/lattices-dev/lattices.git
cd lattices
bun install
bun link
bun run check
bun run testThe native app uses Swift 6.2 / Xcode 26+. See AGENTS.md for component boundaries and build instructions.
| Source | Purpose |
| --- | --- |
| apps/mac | SwiftUI/AppKit app and local daemon |
| bin | CLI, app helper, and API client |
| swift | LatticesTerminalKit and DeckKit |
| products | Companion products |
| skills | Agent skills |
| apps/site | Website and documentation |
Documentation
Quickstart · App and shortcuts · Configuration · Layers · Screen search · API
