Take control of your workspace.

Arrange your windows, terminals, and projects. Give your agents the same workspace controls, across every computer you connect.

Apple Silicon · .dmg · 0.15.3Homebrew or the Bun CLIAlso on Linux, with Hyprland and Omarchy

Simulated desktop · tideline
claude~/dev/tidelineLocal workspace API
> where's tideline? put it on the right Bash(lats search tideline --deep) Bash(lats place tideline right) Terminal "[lattices:tideline-5e354e] claude" (wid:4127) → right
Gesture previewDraw a gesture. Lattices does the rest.Watch the demo →
  • 5,500+ installs
  • Local first
  • API driven
  • Open source
Product update: Your workspace, programmable

The same controls. Across your computers.

Use a shortcut, a script, or an agent to find windows, arrange layouts, and bring projects into focus. Connect another computer to extend that control beyond the one in front of you. You choose which machines and actions your agents can access.

A placement made through lats or the API returns a receipt: which window moved, from which frame to which, and whether it landed. history.undo puts it back. After every change settles, Lattices also saves a map of each display, desktop and window frame, kept for 72 hours, so you can restore the whole desktop from before the agent touched it.

Your agentlats place tideline right
Receiptverified · undoable · wid:4127 → right
Youlats call history.undo

The terminal is back where it was. Need more? lats state restore picks any snapshot from the last three days.

Make room for what’s next.

Meet Hyperspace. Choose your windows, explore an arrangement, then put everything in place.

Open full screen
Hyperspace’s luminous desktop overview: selected windows, a layout preview, and a floating glass toolbar.
Interactive desktop preview · Simulated windowsSelect · Preview · Apply

Shape the workspace as you work.

On macOS, tile halves with ⌃⌥ and an arrow, use Caps Lock as Hyper, or hold a mouse button, draw a gesture, and release. Explore the paths in the 3×3 gesture matrix below.

Keyboard

Enable Tile HUD in Settings, hold ⌃⌥ and point at a side or a corner, then let go to put the front window there. The centre fills the screen; dead centre cancels.
  • ⌃⌥← / →Tile halves
  • ⌃⌥G4×4 grid on the front window
  • ⌃⌥VFill the next 3×2 cell
  • ⌘⌥1 / 2 / 3Switch workspace layer
  • ⌘⇧MCommand palette
  • HyperLStudio / screen map

Hold Caps Lock for Hyper. These are defaults; change them in Settings.

The matrix

middle ↑Dictation

Hold middle, draw up, release.

Defaults

Shape alphabet

The whole workspace, visible.

Keep the windows for each project together in a named layer. See what’s running, find what you need, and switch the whole workspace when it’s time to change focus.

  • See every project and live session
  • Launch, attach, or detach with a click
  • Tile with ⌃⌥ chords, a 4×4 grid, or a mouse drag
  • Search windows, terminals, and screen text
  • Middle-drag for Spaces, Screen Map, and dictation
lattices app showing screen map with dual displays, layers, and inspector

Make your environment part of your workflow.

Window manager

Organize around the work.

Arrange windows, group them into project layers, and move between contexts without rebuilding your desktop each time. Keep the tools for the task together.

Tools and terminals

Run the whole project.

Launch your editor, browser, and terminal commands together. Keep your development server, tests, and coding agents running in their own panes, ready when you return.

Configuration

Make your workflow executable.

Define tools and layouts in a config file. Connect scripts and agents to the same workspace controls you use by hand. Turn a repeated setup into something you can run.

Define the workspace. Return to the work.

Give each project a repeatable setup: named panes, startup commands, and a layout that fits the task. Define it once in .lattices.json, then launch or reattach with a command.

.lattices.json
{
  "ensure": true,
  "panes": [
    { "name": "claude", "cmd": "claude", "size": 60 },
    { "name": "dev",    "cmd": "bun dev" }
  ]
}

Give your agents workspace control.

Give agents the same workspace capabilities you use yourself: find windows, arrange layouts, activate project layers, and inspect the result. Use the API locally, or enable remote access on a connected computer with the permissions you choose. For clicking and typing inside apps, use Action.

  • lattices.search: title, app, session, or cwd
  • window.place: tile by session, app, or window id
  • layer.activate: launch or focus a workspace
  • space.optimize: rebalance visible windows
  • history.list: receipts for recent placements
  • history.undo: put the last placement back
  • states.restore: return to a saved desktop map
Full API reference →
agent-example.js
import { daemonCall } from '@lattices/lattices'

// Find a window by title, app, session, or cwd
const [match] = await daemonCall('lattices.search', {
  query: 'tideline'
})
await daemonCall('window.focus', {
  wid: match.wid
})

// Bring up the project's layer
await daemonCall('layer.activate', {
  name: 'tideline',
  mode: 'launch',
})

// Or move one window, by app and title
await daemonCall('window.place', {
  app: 'Safari',
  title: 'Tideline',
  placement: 'right',
})

Your workspace, under your control.

Workspace control and action history stay on your computers. Remote access is opt-in, with permissions you approve. Screen text reading is off until you turn it on. Optional vision-model features may send screen context to the provider you choose. Lattices is open source, so you can inspect how it works.

Your workspace,
on Omarchy.

Omarchy is a Linux desktop built on Arch and Hyprland, with tiling windows at its heart.

Lattices brings your windows into named layers, helps you find what’s open, and gives your tools and agents an API to work with. Keep each project together, then switch focus when you’re ready.

Install from your terminal

Run in your Omarchy desktop. Installs the app, CLI, host, and tray.

curl -fsSL https://raw.githubusercontent.com/lattices-dev/lattices/main/install.sh | bash

Arch/Omarchy · Hyprland · systemd user session · x86-64 or ARM64

Build your workspace.

Download the Mac app, or install on Linux.

Lattices for Mac

Your windows, projects, and tools, ready to work together.

Download for MacApple Silicon · .dmg · 0.15.3

Open the download. Drag Lattices into Applications.

Prefer Homebrew?

The same Mac app, installed from your terminal.

brew tap arach/tap brew trust arach/tap brew install --cask arach/tap/lattices
Apple Silicon · macOS 26 or later

Install with Bun

The command line for your workspace.

bun install -g @lattices/lattices
CLI 0.15.3 · Setup guide
Developer setup Agent skills & API

Agent skills

npx skills add lattices-dev/lattices

Teach your coding agent to use Lattices.

Agent setup →

Typed API

npm i @lattices/lattices

Build scripts and integrations for your workspace.

API reference →

Put your workspace to work.

For you and your agents, across the computers you connect. Free and open source.