
Lattices – open-source Programmatic Window Manager
With the Lattices skill, Claude Code can find and arrange your project’s windows.
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
With the Lattices skill, Claude Code can find and arrange your project’s windows.
CodexCodex“Find the terminal running my dev server.”
With the Lattices skill, Codex can search your terminal sessions and bring the right one into focus.
With the Lattices skill, Gemini CLI can start a project session and place its terminal window.
Connect Lattices through MCP, or run Lattices commands from Hermes’s local terminal, to arrange your windows.
With the Lattices skill, OpenCode can apply a saved layer to arrange your workspace.
Arrange your windows, terminals, and projects. Give your agents the same workspace controls, across every computer you connect.
Download for macOSRead the docs →
Apple Silicon · .dmg · 0.15.3Homebrew or the Bun CLIAlso on Linux, with Hyprland and Omarchy
TerminalShell Edit View Window9:41 AM
[lattices:tideline-5e354e] claudeTerminal
draw today's tides as a curve⏺ Read(src/tides.ts)⎿ Read 67 lines
⏺ Write(src/chart.ts)⎿ Wrote 58 lines to src/chart.ts
⏺ Drew a half-cosine between each high and low.> mark where the tide is right now⏺ Update(src/chart.ts)⎿ Updated src/chart.ts with 1 addition51 + markNow(svg, now);
⏺ A dashed line and a dot now mark the time.> tide times are showing in UTC⏺ Read(src/format.ts)⎿ Read 42 lines
⏺ Update(src/format.ts)⎿ Updated src/format.ts with 1 addition14 hour: "numeric",15 minute: "2-digit",16 + timeZone: station.tz,17 })
⏺ Bash(bun test format)⎿ 9 pass · 0 fail
⏺ Times now follow each station's time zone.>? for shortcuts
~/dev/tideline bun devVITE v7.3.3 ready in 488 ms➜ Local: http://localhost:5173/➜ Network: use --host to expose➜ press h + enter to show help9:41:07 AM [vite] (client) hmr update /src/format.ts
Tideline · Half Moon BaySafari
TidelineHalf Moon Bay, CATodayTomorrow
1.4 ft falling · 9:41 AM
5:12 AM 6.1 ft11:24 AM 0.4 ft5:36 PM 5.4 ft11:48 PM 2.1 ft
12 AM6 AM12 PM6 PM12 AM
format.ts — tidelineZed
TIDELINEsrcchart.tsformat.tsstations.tstides.ts
export function tideTime(tide: Tide, station: Station) {return tide.at.toLocaleTimeString("en-US", {hour: "numeric",minute: "2-digit",timeZone: station.tz,})}
⌘⌥1switch layer
claude~/dev/tidelineLocal workspace API
where's tideline? put it on the right⏺ Bash(lats search tideline --deep)⎿Terminal "[lattices:tideline-5e354e] claude" wid:4127 score:16 (title, session, cwd, tmux)tab 1: ~/dev/tideline ● [tideline-5e354e]Zed "format.ts — tideline" wid:4131 score:6 (title)Safari "Tideline · Half Moon Bay" wid:4129 score:5 (title)
⏺ Bash(lats place tideline right)⎿ Terminal "[lattices:tideline-5e354e] claude" (wid:4127) → right
Gesture previewDraw a gesture. Lattices does the rest.Watch the demo →
Lattices engine3 windows · 2 overlaps
5,500+ installs
Local first
API driven
Open source
Product update: Your workspace, programmable
local workspace APIlattices.searchwindows.searchterminals.searchocr.snapshotwindow.focuswindow.placelayer.activatespace.optimizedesktop.snapshotsession.launchtabStacks.createhistory.listhistory.undostates.restore
local workspace APIlattices.searchwindows.searchterminals.searchocr.snapshotwindow.focuswindow.placelayer.activatespace.optimizedesktop.snapshotsession.launchtabStacks.createhistory.listhistory.undostates.restore
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.
The terminal is back where it was. Need more? lats state restore picks any snapshot from the last three days.
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.
Hold Caps Lock for Hyper. These are defaults; change them in Settings.
middle ↑DictationHold middle, draw up, release.
L ↓→L ↓←L ↑→L ↑←⌐ →↓¬ ←↓V ↓↑Λ ↑↓
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.
Arrange windows, group them into project layers, and move between contexts without rebuilding your desktop each time. Keep the tools for the task together.
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.
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.
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.
{ "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.
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.
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.
Run in your Omarchy desktop. Installs the app, CLI, host, and tray.
Arch/Omarchy · Hyprland · systemd user session · x86-64 or ARM64
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.3Open the download. Drag Lattices into Applications.
The same Mac app, installed from your terminal.
Build scripts and integrations for your workspace.
For you and your agents, across the computers you connect. Free and open source.
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。