> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nomo.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# 在 iPhone 上查看、批准和回复 Antigravity 会话

> 几步就能为 Google Antigravity 配置好 Nomo、配对手机，然后在 iPhone 上跟进你的会话——命令和文件改动都能直接允许或拒绝，还能停止和回复。

在 iPhone 上看你的 Google Antigravity 会话——锁定屏幕上、灵动岛里都能看到。Antigravity 想运行命令或改动文件时，手机会问你要**允许**还是**拒绝**。你还可以在手机上停止一个会话，或者给它发消息。

Antigravity 桌面应用和 `agy` 命令行工具都支持。

> [!NOTE]
>
> 会话功能属于 Nomo Pro。你需要手机上的 Nomo **2.3.5** 或更高版本，以及 Mac 上的插件 **2.3.5** 或更高版本。

## 配置步骤

**1. 打开终端**

在 Mac 上打开**终端** App。它在**应用程序 → 实用工具**里。

**2. 运行安装工具**

复制下面这一行，粘贴到终端里，然后按回车：

```bash theme={null}
bunx nomo-ai --antigravity
```

没有 `bunx`？改用 `npx nomo-ai --antigravity`。

你应该会看到：

```
✅ Antigravity is connected to Nomo. Restart Antigravity, then type /nomo-pair.
```

**3. 重启 Antigravity**

完全退出 Antigravity，再重新打开。如果你用 `agy`，也把它关掉再重新启动。

> [!WARNING]
>
> 别跳过这一步。Antigravity 重启之前，Nomo 不会生效。

**4. 输入 /nomo-pair**

在 Antigravity 的对话里输入下面这条并发送：

```
/nomo-pair
```

**5. 选择 Allow**

Antigravity 运行 Nomo 命令前会先问你。选择 **Allow**（允许）。

你应该会看到浏览器里打开一个带二维码的页面。

在 Antigravity 桌面应用里，第一条 Nomo 命令可能会显示一行 `operation not permitted`。这是正常的——Antigravity 会自己在沙箱外重试。等着就好。

**6. 扫描二维码**

在 iPhone 上打开 Nomo → **会话** → **配对电脑**，扫描这个二维码。

你应该会在 Antigravity 里看到：“Done! This computer is connected to your phone.”（完成！这台电脑已连接到你的手机。）

**7. 在 Antigravity 里发一条消息**

开始一个对话，随便发点什么。

你应该会看到这个会话出现在 Nomo 里，在你这台电脑的 **Antigravity** 标签页下。没有 Antigravity 标签页？轻点 **+** 按钮（**选择智能体**），把 Antigravity 打开。

![“选择智能体”菜单，Claude Code、Codex 和 Antigravity 已勾选，OpenCode 和 Cursor 未勾选](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agent-chooser-antigravity.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=ab74b8032196071cf1d9440a4533eb24)

![“选择智能体”菜单，Claude Code、Codex 和 Antigravity 已勾选，OpenCode 和 Cursor 未勾选](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agent-chooser-antigravity-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=4bd4ead034460b3f0e88379704e07878)

从 + 按钮打开的“选择智能体”。Antigravity 已勾选，所以它有自己的标签页。

> [!TIP]
>
> \*\*已经在 Claude Code、Codex、OpenCode 或 Cursor 里配对过？\*\*一次配对覆盖整台电脑。跳过第 4–6 步——安装工具会改为提示你“type /nomo-status to check”（输入 /nomo-status 检查一下）。

> [!TIP]
>
> \*\*这台电脑上没有浏览器？\*\*改为输入 `/nomo-pair code`。Antigravity 会显示一段短码。在 iPhone 上打开 Nomo → **会话** → **配对电脑** → **输入代码**，把它输进去。这段代码 10 分钟后失效。

> [!WARNING]
>
> **不要把 Nomo 的 Claude Code 插件导入 Antigravity**（比如用 `agy plugin import claude`）。否则每个会话都会出现两次。如果你已经导入了，安装工具会提醒你：
>
> ```
> ⚠️ Antigravity also has the Claude Code version of Nomo ("nomo-cc") imported. It would show every session twice — please remove it by running: agy plugin uninstall nomo-cc
> ```
>
> 要修复，在终端里运行下面这条，然后重启 Antigravity：
>
> ```bash theme={null}
> agy plugin uninstall nomo-cc
> ```

## 命令

在 Antigravity 的对话里输入这些。每次 Antigravity 都会先问你——选择 **Allow**。

| 输入 | 作用 |
| - | - |
| `/nomo-pair` | 把这台电脑连接到你的手机 |
| `/nomo-pair code` | 同上，但改用一段短码代替二维码 |
| `/nomo-status` | 检查一切是否正常 |
| `/nomo-status verbose` | 同上，显示全部细节 |
| `/nomo-approvals off` | 不再问手机——改由 Antigravity 在电脑上问你 |
| `/nomo-approvals on` | 重新问手机 |
| `/nomo-approvals status` | 查看手机审批是开着还是已暂停 |
| `/nomo-reset` | 清掉手机上卡住的会话，连接保持不变 |
| `/nomo-unpair` | 断开这台电脑和手机的连接 |

一切正常时，`/nomo-status` 只显示一行，像这样：

```
✅ Connected to your phone as “MacBook Pro” · Phone approvals: on · Last activity: 2 min ago
```

如果有问题，它会多加一行，告诉你该怎么做。

连接和审批开关由这台电脑上的所有编程工具共用。在这里关掉审批，Claude Code 和 Codex 的审批也会一起关掉。

这些命令只在 Antigravity 里询问你，永远不会在手机上弹出卡片。

## 会显示的内容

* 会话在你发出**第一条消息**时出现——只是打开一个对话并不会出现。
* Antigravity 工作时显示**运行中**，结束后显示**完成**。
* 名称是 Antigravity 自己给这个对话起的标题。在它起好之前，会用你的第一条消息，或者文件夹名称。
* 徽标显示 Antigravity 正在使用的模型。
* [灵动岛](https://docs.nomo.gg/zh-Hans/sessions/island.md)和其他智能体一样可用。

## 在手机上回答

Antigravity 想**运行命令**或**创建、改动文件**时，手机会问你。读取和搜索文件永远不会送到手机。

按住那一行会话，或者用灵动岛，然后选择：

![Antigravity 会话 Fix token refresh race 的审批卡片，请求运行 npm test，带有“拒绝”“允许”和“拒绝并附注…”按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-approval-card.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=e9e3fe7c789c7f2f3c9c7938593af49e)

![Antigravity 会话 Fix token refresh race 的审批卡片，请求运行 npm test，带有“拒绝”“允许”和“拒绝并附注…”按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-approval-card-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=82b60c484b2831a3535f5541197a9a0c)

一个请求运行命令的 Antigravity 会话。

* **允许**——Antigravity 继续执行。
* **拒绝**——Antigravity 跳过这一步，接着往下做。
* **拒绝并附注…**——跳过这一步，并用你自己的话告诉 Antigravity 原因。

更多内容见[在手机上回答](https://docs.nomo.gg/zh-Hans/sessions/approvals.md)。

小提示：

* \*\*你自己的 Antigravity 规则优先。\*\*被你的规则拦下的操作始终会被拦下——在手机上轻点允许也推翻不了。在 `agy` 里，你的规则已经允许的命令会直接运行，不会问手机。
* \*\*桌面应用里，每样都会问手机。\*\*Nomo 读不到桌面应用的权限设置，所以每条命令、每次文件改动都会送到你的手机。
* \*\*手机不在身边也没关系。\*\*如果手机连不上，或者远程审批已[暂停](https://docs.nomo.gg/zh-Hans/sessions/approvals.md#pausing-it)，Antigravity 会在电脑上问你，和没有 Nomo 时一样。
* \*\*在电脑上停掉了对话？\*\*手机上的卡片会自己消失。
* \*\*等待期间，终端里什么都不显示。\*\*请求在等你的手机时，终端里不会出现任何内容。这是正常的——请求在你的手机上。
* \*\*回复表单开着？\*\*请求也会出现在聊天里，你可以在那里回答——见[在聊天里审批](#approve-in-chat)。

## 停止这一轮

在**运行中**的 Antigravity 会话上轻点[**停止**](https://docs.nomo.gg/zh-Hans/sessions/list.md#interrupt-a-running-session)，就能让它停下。需要绿色的 **⚡ 本地**角标。Antigravity 会做完当前这一步再停下，会话显示**完成**。对话仍然开着——发一条新消息就能接着来。

## 在手机上回复

在 iPhone 上给 Antigravity 会话发一条消息——纠正一处、交代下一步，或者一句“继续”。它会像你在 Mac 上输入的一样送到 Antigravity。回复界面是一个聊天：你的消息在右边，Antigravity 的请求出现在左边。

> [!NOTE]
>
> **目前，你的 iPhone 和 Mac 必须连着同一个 Wi-Fi**，并且在 Nomo 里打开\*\*[本地网络](https://docs.nomo.gg/zh-Hans/sessions/settings.md#local-network)\*\*。即将到来的服务器更新之后，在哪里都能回复。

**1. 打开会话**

在 Nomo 里打开你的电脑，选择 **Antigravity** 标签页。轻点会话的名称。

你应该会看到这个会话展开，详细信息下方有一个蓝色的**回复**按钮。正在运行的会话还有一个红色的**停止**按钮。

![已展开的 Antigravity 会话行 Fix token refresh race，显示模型、文件夹、agy CLI，以及“停止”和“回复”两个按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-button.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=29656b6a955b4de62f10c7d556e28d8d)

![已展开的 Antigravity 会话行 Fix token refresh race，显示模型、文件夹、agy CLI，以及“停止”和“回复”两个按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-button-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=ea60c2cf929f67b2dc46d70e21d645c1)

一个正在运行、已展开的 Antigravity 会话，详细信息下方有“停止”和“回复”。

**2. 轻点“回复”**

你应该会看到一张表单滑上来，顶部是会话名称，下方是写着**给此会话发消息**的输入框。

随时要关闭表单，轻点右上角的 **✕**。

**3. 输入消息并发送**

输入你的消息，然后轻点箭头。

你应该会看到消息变成右边的一个气泡，下面有一行简短的状态。状态告诉你这条消息走到了哪里——见下面的列表。

![Fix token refresh race 的回复表单，一条消息标着“已送达”，另一条标着“等待下一步”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-sheet.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=e183fc86ff558c17e6d10661aba26af3)

![Fix token refresh race 的回复表单，一条消息标着“已送达”，另一条标着“等待下一步”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-sheet-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=00b35177b68a5ee0807f702da7e86e48)

两条消息：第一条已经送到 Antigravity，第二条在等它的下一步，还可以取消。

### 在聊天里审批

回复表单开着时，如果 Antigravity 请求运行命令，你可以直接在聊天里回答。

**1. 找到请求**

在左边找到来自 Antigravity 的气泡。上面写着**想要运行：**，接着是命令，然后是**拒绝**和**允许**两个按钮。

![显示“等待你批准”的 Fix token refresh race 回复表单，Antigravity 的气泡里写着“想要运行：”npm test -- auth/refresh.test.ts，带有“拒绝”和“允许”按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-approval.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=7b259a436d9bd30bf4c8d37da2b1cd1d)

![显示“等待你批准”的 Fix token refresh race 回复表单，Antigravity 的气泡里写着“想要运行：”npm test -- auth/refresh.test.ts，带有“拒绝”和“允许”按钮](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-approval-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=2ab009a3417b8e567dcac86bb50f3e38)

Antigravity 在回复聊天里请求运行一条命令。

**2. 轻点“允许”或“拒绝”**

轻点**允许**让 Antigravity 运行它。轻点**拒绝**让它跳过。

你应该会看到气泡缩成一行，说明发生了什么——见[已回答的请求](#answered-requests)。

气泡里的**拒绝**和**允许**按钮永远不会发送你在输入框里写的内容。你输入的文字会留在输入框里。

### 拒绝并发送

想说不，同时告诉 Antigravity 改做什么？一个按钮就能同时做到。

**1. 写下理由**

请求还在等待时，在输入框里写下 Antigravity 应该改做什么——比如“用 bun，不要用 npm”。

你应该会看到发送箭头变成红色的**拒绝并发送**按钮，输入框上方出现一行**将作为拒绝的理由发送**。

![回复表单里有一个等待中的 npm test 运行请求，输入框里有文字，还有红色的“拒绝并发送”按钮和“将作为拒绝的理由发送”这一行](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-deny-send.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=7262a8e0586d40fe651c2d4014e69341)

![回复表单里有一个等待中的 npm test 运行请求，输入框里有文字，还有红色的“拒绝并发送”按钮和“将作为拒绝的理由发送”这一行](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-deny-send-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=c814ce1ea9a4b73105a74d3ff3a5ffb3)

请求等待时输入文字：发送按钮变成“拒绝并发送”。

**2. 轻点“拒绝并发送”**

Antigravity 会跳过这条命令，并把你的文字当作理由读到。

你应该会看到请求变成 **✕ 已拒绝**，下面引用着你的理由。

> [!TIP]
>
> 理由最多 500 个字符。超过的话，按钮会保持普通的发送箭头。你的消息会等着，你回应请求后立即送达。

### 已回答的请求

| 你看到 | 含义 |
| - | - |
| `✓ 已允许 · <命令>` | 你允许了它。 |
| `✕ 已拒绝 · <命令>` | 你拒绝了它。如果用了**拒绝并发送**，下面会引用你的理由。 |
| `已在电脑上回答` | 在 Mac 上回答了。 |
| `已超时 — 在 Mac 上继续` | 等你的手机等得太久了。Antigravity 改在 Mac 上询问。 |

### 消息下方状态的含义

| 你看到 | 含义 |
| - | - |
| `发送中…` | 你的手机正在发送。 |
| `等待你批准` | Antigravity 在等你回答聊天里的请求。你回应后，消息会立即送达。 |
| `等待下一步` | 你的 Mac 已经收到。Antigravity 会在它的下一步读到。在那之前，你可以轻点气泡上的 **×** 取消它。 |
| `已送达` | Antigravity 已经读到了。 |
| `正在 Mac 上唤醒…` | 会话已经结束，你的 Mac 正在带着你的消息重新启动它。只有 Mac 真的开始重新启动时才会显示。这时已经不能取消。 |
| `已在 Mac 上继续` | 会话带着你的消息又跑起来了。 |
| `重新连接中…` | 你的手机现在连不上你的 Mac。它会自己一直重试——你不需要再发一次。 |

### 在哪些情况下能用

取决于你在哪里使用 Antigravity。

**使用 `agy` 命令行工具时：**

* **正在工作**——消息会在它的下一步送到。
* **已结束，`agy` 已关闭**——你的 Mac 会带着你的消息重新启动会话。你会先看到 `正在 Mac 上唤醒…`，然后是 `已在 Mac 上继续`。
* **已结束，但 `agy` 还开着**——消息会等着。在你于 Mac 上的 `agy` 里发出下一条消息之前，它一直显示 `等待下一步`；发出之后，Antigravity 会把两条一起读到。

**使用 Antigravity 桌面应用时：**

* **正在工作**——消息会在它的下一步送到。
* **已结束**——只能在 Mac 上继续。**回复**会变灰，下面那一行写着**Antigravity 应用的会话只能在 Mac 上继续**。

![已展开、标着“完成”的 Antigravity 应用会话，“回复”按钮变灰，下面一行写着“Antigravity 应用的会话只能在 Mac 上继续”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-idle-app.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=58448dde8f68ab4456aaacad1af4eb31)

![已展开、标着“完成”的 Antigravity 应用会话，“回复”按钮变灰，下面一行写着“Antigravity 应用的会话只能在 Mac 上继续”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-reply-idle-app-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=ef99689006efb0df74352102a5afdfd5)

桌面应用里已结束的会话：“回复”变灰，下面那一行说明原因。

须知：

* \*\*每条消息最多 4000 个字符。\*\*输入框到这里就不再接收文字。
* \*\*停止永远优先。\*\*如果在有消息排队时轻点[**停止**](#interrupt)，Antigravity 会先停下。这条消息绝不会交给你停掉的那一轮。
* \*\*消息只在 Nomo 开着时保留。\*\*如果你彻底关闭 Nomo，下次打开时表单是空的。你的 Mac 已经收到的消息照样会送到。

## 这个版本的限制

* \*\*没有提问和计划。\*\*Antigravity 的提问和计划审批不会显示在你的手机上。
* \*\*没有“在 Mac 上打开”。\*\*这个按钮在 Antigravity 会话上不可用。
* **没有“始终允许”。**每次回答都是一次性的**允许**或**拒绝**。

## 出了问题

> [accordion] 手机上什么都没显示
>
> 1. 重启 Antigravity。
> 2. 输入 `/nomo-status`，然后选择 **Allow**。
> 3. 照着以 ⚠️ 或 ❌ 开头的那一行去做。
>
> 还是没有？在 Nomo 里轻点 **+** 按钮（**选择智能体**），把 Antigravity 打开。
>
> 如果 Antigravity 标签页显示**还没有 Antigravity 会话**，先在 Antigravity 里发一条消息——会话只有在你发出第一条消息后才会出现。
>
> ![一台电脑的 Antigravity 标签页，显示“还没有 Antigravity 会话”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-drawer-tab.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=5537ed946ad5654d0c71890164fd32aa)
>
> ![一台电脑的 Antigravity 标签页，显示“还没有 Antigravity 会话”](https://mintcdn.com/nomo-ba73b2e6/HJUMQrMIl3MpghxG/images/agy-drawer-tab-dark.png?fit=max\&auto=format\&n=HJUMQrMIl3MpghxG\&q=85\&s=62eaa46f7b1bf028d41660c9f54f8ff4)
>
> 还没有会话送达时的 Antigravity 标签页。

> [accordion] 回复一直显示“等待下一步”
>
> 你的 Mac 已经收到了这条消息。如果 Antigravity 正在工作，它会在下一步读到——长时间运行的命令可能要等一会儿。
>
> 如果会话已经结束，而 Mac 上的 `agy` 还开着，这条消息会等你在那里发出下一条消息。在 `agy` 里随便发点什么，Antigravity 就会把两条一起读到。也可以轻点气泡上的 **×** 取消它。

> [accordion] Nomo 命令显示“operation not permitted”
>
> 第一次在 Antigravity 桌面应用里用 Nomo 命令时可能会出现。这是正常的：Antigravity 会自己在沙箱外重试。等它完成就好，你什么都不用做。

> [accordion] “回复”是灰色的
>
> 这个会话来自 Antigravity 桌面应用，并且已经结束。只能在 Mac 上继续。请在应用里发下一条消息。

> [accordion] 每个会话都出现两次
>
> Nomo 的 Claude Code 插件被导入了 Antigravity。在终端里运行下面这条，然后重启 Antigravity：
>
> ```bash theme={null}
> agy plugin uninstall nomo-cc
> ```

> [accordion] Nomo 命令提示找不到它的文件
>
> Nomo 文件夹被移动或删除了。Antigravity 照常工作，但什么都不会送到你的手机。重新运行安装工具，然后重启 Antigravity：
>
> ```bash theme={null}
> bunx nomo-ai --antigravity
> ```

> [accordion] 手机不再问我审批了
>
> 输入 `/nomo-approvals on`。如果审批本来就是开着的，检查[设置](https://docs.nomo.gg/zh-Hans/sessions/settings.md#remote-approvals)里的**在 iPhone 上回答**。

> [accordion] 会话一直卡在运行中
>
> 等几秒钟——Nomo 会自己发现对话已经停了。还是卡着？输入 `/nomo-reset`。

更多帮助见[故障排查](https://docs.nomo.gg/zh-Hans/sessions/troubleshooting.md)。

## 更新

再运行一次安装工具，然后重启 Antigravity：

```bash theme={null}
bunx nomo-ai --antigravity
```

## 卸载

**1. 在终端里运行这条**

```bash theme={null}
node ~/.nomo/plugin/scripts/antigravity-install.mjs --uninstall
```

你应该会看到：

```
✅ Nomo is removed from Antigravity. Restart Antigravity to finish. Your phone stays connected for your other coding apps.
```

**2. 重启 Antigravity**

退出 Antigravity，再重新打开。

如果还想断开这台电脑和手机的连接，请在卸载**之前**在 Antigravity 里输入 `/nomo-unpair`。

## 进阶

> [accordion] 在终端里运行
>
> 同样的命令，改在终端里运行，而不是在 Antigravity 对话里：
>
> | | |
> | - | - |
> | 配对 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/pair.mjs` |
> | 用手输代码配对 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/pair.mjs --show-code` |
> | 检查状态 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/status-cmd.mjs antigravity` |
> | 暂停审批 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/cc-permission.mjs off` |
> | 恢复审批 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/cc-permission.mjs on` |
> | 清理卡住的会话 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/reset.mjs` |
> | 解除配对 | `~/.nomo/plugin/scripts/run.sh ~/.nomo/plugin/dist/unpair.mjs` |
>
> 给安装工具加上 `--verbose`，可以看到它改了哪些东西。

> [accordion] 工作原理
>
> * \*\*安装工具改了什么。\*\*它把插件克隆到 `~/.nomo`，在 `~/.gemini/config/hooks.json` 里加入一个名为 `nomo` 的区块（其他区块原样不动），并把一个小小的 Antigravity 插件 `nomo`——带五条 `/nomo-*` 命令——复制到 `~/.gemini/config/plugins/nomo`。如果 `hooks.json` 不是有效的 JSON，或者那里的 `nomo` 插件文件夹不是它自己的，它会拒绝执行，什么都不改。卸载只删掉那个区块和那个文件夹。
> * **Hook。**`SessionStart`、`PreInvocation`、`PostInvocation`、`Stop` 和 `PostToolUse` 负责上报状态。它们立刻回答 `{}`，在后台完成自己的工作，所以 Antigravity 从不等待 Nomo。一行会话从第一次 `PreInvocation` 开始，而不是 `SessionStart`。
> * **审批。**`PreToolUse` hook 只匹配 shell 命令和文件的写入与编辑（`run_command`、`write_file`、`write_to_file`、`edit_file`、`replace_file_content`、`multi_replace_file_content`），超时时间为 24 小时。允许回答 `auto_approve`；拒绝回答 `deny`，并把你的附注作为理由。其他所有结果都回答 `allow`，也就是把决定交还给 Antigravity 自己的设置和权限请求。`agy` 的 `~/.gemini/antigravity-cli/settings.json` 里任何 `deny` 规则可能匹配的操作永远不会送到手机；被纯前缀 `allow` 规则覆盖、且没有任何 `ask` 规则涉及的调用会直接放行。
> * \*\*故障保护。\*\*每条 hook 命令都会先检查它的脚本是否还在。如果 `~/.nomo` 被移动或删除，它会自己作答，所以永远不会挡住任何操作。审批 hook 里出任何错误，也会退回到 Antigravity 自己的权限请求。
> * \*\*停止。\*\*你的手机设置一个一次性标记；下一次 `PostInvocation` 会结束这一轮。标记存在期间，正在等手机答复的 shell 命令或文件写入会以“Stopped from phone”被拒绝。没用上的标记 10 分钟后丢弃。Nomo 从不向 `agy` 进程发送信号。
> * \*\*没有事件就结束的轮次。\*\*当你取消一轮，或者一次运行退出时，Nomo 会盯着运行 hook 的那个进程和 Antigravity 自己的对话索引，把这一行标为完成。安静 30 分钟的会话会作为最后手段被清掉。卡片还在手机上时取消，卡片会被撤回。
> * \*\*回复。\*\*手机把一条 `send-message` 命令（一个消息 ID 和最多 4000 个字符）加密封装，同时经本地连接和中继服务器发出。Mac 为每条消息写一个只有所有者能读的文件（`<conversation>.<id>.agy-inbox`）。下一次 `PreInvocation` 会把所有排队的消息作为用户消息交给智能体；在这一轮最后一步期间送达的消息，会让这一轮的 `Stop` 继续一次。回执（排队、唤醒中、已送达、已继续、已取消、已拒绝）随会话的加密更新返回。对于已经结束、且 `agy` 已退出的 `agy` 对话，Nomo 会在该对话的文件夹里运行 `agy --conversation <id> --print=<message>`（消息是单独一个参数，从不经过 shell 解析）。已结束但仍开着的 `agy` 会把消息留到它的下一轮——Nomo 绝不会在同一个对话上启动第二个 `agy`。停止标记永远优先：消息绝不会交给正在被停止的那一轮。没人取走的消息一天后删除。Nomo 自己的 `/nomo-*` 命令永远不会在手机上弹出卡片。
> * \*\*标题。\*\*用系统自带的 `sqlite3` 以只读方式读取 Antigravity 的 `conversation_summaries.db`。在它出现之前：用对话记录的第一行，再不行就用工作区文件夹名称。
> * **命令。**`/nomo-*` 命令只运行 Nomo 自己的本地命令——配对、状态、审批开关、重置、解除配对——每条都要先经过 Antigravity 自己的运行命令请求。它们从不输出配对链接或二维码密钥。
>
> 完整细节见插件的 [README](https://github.com/KarrixLee/nomo#install--antigravity)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.