35+ RPC methods. AI agents and scripts drive the same desktop you do.
Tile with hotkeys, organize into layers, search text across every window.
We make tmux easy. Use your own terminal — panes and layouts just work.
$npm install -g @lattices/cliBuilt with SwiftUI. Manage your workspace — terminal sessions, app windows, and layers — from the menu bar.
Cmd+Shift+MCmd+Option+1/2/3
Run lattices — session created, dev server running.
Survives reboots. Reattach anytime.
Hotkeys, snap to grids, switchable window groups.
AX + OCR. Search text across all windows.
Speak to tile, search, focus, and launch — via Vox.
WebSocket on localhost. Full workspace control.
AI agents and scripts drive your desktop.
We make tmux easy. Use your own terminal — define panes and layouts in a single JSON file.
Single focus
Side-by-side
Main-vertical
{
"ensure": true,
"panes": [
{ "name": "claude", "cmd": "claude", "size": 60 },
{ "name": "dev", "cmd": "bun dev" }
]
}Agents are limited to a terminal. Lattices gives them eyes — every window, every pixel of text, every layout change — over a single WebSocket.
windows.search — find windows by title, app, session, OCRterminals.search — inspect terminal tabs, processes, cwdsocr.search — full-text search across all screen contentsession.launch — start a project sessionwindow.tile — snap windows to screen positionsimport { daemonCall } from '@lattices/cli' // Search windows by content const hits = await daemonCall('windows.search', { query: 'myproject' }) // Launch and tile side-by-side await daemonCall('session.launch', { path: '/Users/you/dev/frontend' }) await daemonCall('session.launch', { path: '/Users/you/dev/api' }) const sessions = await daemonCall('tmux.sessions') await daemonCall('window.tile', { session: sessions[0].name, position: 'left' }) await daemonCall('window.tile', { session: sessions[1].name, position: 'right' })
Install globally. Your agent gets a control plane in seconds.