文档

功能文档

从快捷键到 MCP 配置——Lattice 的全部使用面。

Lattice 是什么

Lattice 是一个 AI 原生的 macOS 命令中心:菜单栏常驻,⌥Space(可改键)呼出命令面板,用键盘完成启动应用、搜索文件、管理剪贴板、运行快捷指令与调用 AI 工具。原生 Swift 6 + SwiftUI + AppKit,没有 Electron、没有账号体系、没有云同步。

它同时是四样东西:Spotlight 的升级版、Mac 版 Everything、带 AI 工具循环的助手面板、以及应用快捷指令入口。

三分钟上手

  1. 安装后按 ⌥Space 呼出面板(菜单栏格子图标 → Open Settings → General 可重录快捷键)
  2. 输入 saf 回车——Safari 已启动;输入 12*(3+4) ——计算器置顶出 84,回车复制
  3. 进入 Search Files(输入 files 回车),输入任意文件名片段,回车打开
  4. 复制一段文字后再进 Clipboard History(输入 clipboard),⌘Y 预览,回车回写
  5. 想用 AI:Open Settings → AI,填入 API Key 并启用 AI Requests,回到面板进 Ask AI
⚠️
首次索引
第一次使用文件搜索时,Lattice 会在后台建立全盘索引(本机 548 万文件约 14 分钟),期间所有功能正常使用,Settings → File Index 可查看进度。

快捷键总表

按键行为
⌥Space显示 / 隐藏 Command Palette(跨应用,可自定义)
↑ / ↓选择结果;Actions 打开时选择 Action
执行选中结果或 Action
⌘K打开 / 关闭当前结果的 Actions
⇥ Tab选中应用时进入 Arguments 参数模式
Esc关闭 Actions → 退出 Arguments → 返回 Commands → 隐藏面板;AI 运行中先取消
⌘Y剪贴板 / 文件结果预览
点击面板外部隐藏面板(弹窗打开时不生效)

四种模式

  • Commands:应用、系统命令、Quicklinks、快捷指令、Agents、计算器——统一排序(精确 > 前缀 > 子串 > 关键词,使用频率有限加权)
  • Search Files:全盘文件名搜索,支持目录范围过滤(Choose Folder)
  • Clipboard History:文本与 URL 历史,搜索、预览、回写
  • Ask AI:AI 对话 + 工具循环,Esc 取消

搜索语法

文件搜索支持词法运算符组合,带引号的词组按原样匹配:

# 名词 + 扩展名过滤
report ext:pdf

# 路径限定 + 类型 + 排序
path:Downloads kind:file sort:size

# 引号词组 + 多扩展名
"meeting notes" ext:md,tex

# 只搜文件夹
kind:folder config
运算符含义
ext:按扩展名过滤,逗号分隔多个
path:路径包含指定片段
kind:file / kind:folder只搜文件或只搜文件夹
sort:size / sort:modified / sort:name按大小 / 修改时间 / 名称排序(默认按相关度)

索引机制

  • 自建 SQLite 索引:默认覆盖用户 Home、/Applications、/System/Applications、/Library;Settings → File Index 可增删目录或重建
  • FTS5 trigram 子串索引承担 ≥3 字符查询,1–2 字符走前缀索引
  • FSEvents 实时增量:文件变化 2 秒内同步,重启从断点续传不重扫
  • 刻意不索引 ~/Library/CloudStorage 与 iCloud 目录,避免文件供应商占位文件阻塞
  • 无完全磁盘访问权限时部分系统目录静默跳过(Settings 有引导)

应用专属操作与参数模式

选中应用按 ⌘K 展开专属操作;按 ⇥ 进入 Arguments 模式直接输入启动参数(支持引号包裹含空格的值),每个应用自动记忆最近参数,空输入时即可挑选。

应用专属操作
Chrome / Edge / Brave / ArcNew Window;Chrome 与 Edge 另有无痕 / InPrivate 窗口
VSCode / VSCodiumNew Window;VSCode 另有 Diff Two Files
SlackReset App State

参数经 NSWorkspace 的 argv 传递,不经过 shell,不触发额外的系统授权弹窗。

运行 macOS 快捷指令

命令模式直接输入快捷指令名称即可搜索并运行。调用走固定的 /usr/bin/shortcuts 命令行(argv 方式、无 shell 参与),AI 通过 shortcuts.list / shortcuts.run 工具也能查询与运行,运行前需确认。

剪贴板历史

  • 650ms 轮询 changeCount,内容去重,默认 500 条,可配置 1–10,000,单条上限 1MB
  • ⌘Y 富文本预览,回车回写剪贴板,清空历史需要确认
  • 默认忽略 Concealed / Transient / AutoGenerated 类型(密码库等),但未标记的敏感文字仍会被记录——介意可在 Settings 关闭

Agents 与 Skills

Settings → Agents 创建 Agent:命名、选择可用工具白名单、保存后按名称搜索进入对话。Skills 从 ~/.config/lattice/skills 等目录扫描定义文件,Examples/Skills 内附带示例。

Ask AI 与工具审批

AI 默认关闭。Settings → AI 中填入 OpenAI 兼容 API Key(只进 Keychain)并启用后,Ask AI 模式可用。模型最多 8 轮工具循环,每轮最多 8 个调用,单次工具输出上限 256KB。

权限行为
read直接执行(clipboard.read 例外:另行确认,防提示注入)
write弹窗确认(可设置放行)
destructive始终确认(含所有远程 MCP 调用)

配置 MCP 服务器

Settings → MCP 添加 stdio 服务器配置,连接前展示程序与参数并确认:

{ "name": "Lattice local fixture",
  "transport": "stdio",
  "command": "/usr/bin/python3",
  "args": ["/Users/you/LatticeMCPFixture.py"],
  "env": {} }

凭据写入 Keychain 后以 secretEnvironment 引用,不会持久化到配置 JSON。第三方服务器进程拥有你的用户权限,Tool 审批不是操作系统沙箱——只连接可信的服务器。

隐私与数据

  • 所有本地数据位于 ~/Library/Application Support/Lattice/lattice.sqlite(目录权限 0700,内容为本地明文)
  • API Key 与 MCP 凭据只存 Keychain(WhenUnlockedThisDeviceOnly)
  • AI 关闭时零网络请求;开启后请求只发往你配置的 Provider
  • 日志不记录 Prompt、剪贴板内容、凭据与服务器 stderr
  • 全局快捷键用 Carbon RegisterEventHotKey,不做全局键盘监听,无需辅助功能权限(Lock Screen 事件除外)

常见问题

  • 为什么 Dock 里没有图标?—— Lattice 是菜单栏应用(LSUIElement),只在菜单栏常驻。
  • 首次索引要多久?—— 取决于文件数量,本机 548 万文件约 14 分钟;之后 FSEvents 增量维护。
  • 和 Spotlight 冲突吗?—— 完全独立,Lattice 自建索引,不读取也不干扰 Spotlight。
  • 支持 Intel Mac 吗? —— 当前安装包为 arm64;源码包可自行编译,未在 Intel 硬件验证。
  • 怎么卸载? —— 关闭 Launch at Login、删除 API Key,Quit 后移除 App;数据目录与 Keychain 项按需手动清理。