每个 Agent tab 底部的文本框就是消息输入。看起来就一行,但能做几件有意思的事 —— 旁边一排工具按钮、粘图、shell 命令前缀、斜杠菜单。

## 发送与编辑

| 键 | 做什么 |
|---|---|
| `Enter` | 发送消息 |
| `Shift+Enter` | 插入换行;不发送 |
| `Esc`(鼠标停在聊天区上) | 中断当前正在生成的回复 |

输入框随你打字增高到约 8–10 行(约 200px),超出就在框里滚动。

> **中文 / 日文输入法**:打字时拼音 / 假名候选框开着,`Enter` 和 `Shift+Enter` 都不会触发发送 —— 留给输入法选词。等候选关掉再回车。

## 输入框旁边的工具按钮

文本框左边有一排小图标,从左到右:

- **git 暂存所有改动** —— 把工作区改动一次性 `git add`。
- **查看 git 变更** —— 打开变更面板看现在改了什么。
- **查看评注** —— 打开 Explorer 里[评注](/zh/docs/explorer/file-tree/#评注)列表。
- **历史消息** —— 翻这个 tab 里的用户消息历史。
- **项目笔记** —— 打开当前项目的笔记(见 [笔记](/zh/docs/agent/notes/))。
- **定时任务** —— 打开本 tab 的[定时任务](/zh/docs/agent/scheduled-tasks/)管理。

这些都是"AI 还没开始打字之前,我先准备点上下文"的快捷入口。

## 附图片

要附图片,直接**粘贴**(`Cmd+V`)。Cockpit 接受:

- PNG、JPEG、WEBP、GIF
- 每张最大 **5 MB**
- 一条消息可以多张图 —— 连着粘几张

每张附件在输入框上方显示小缩略图。点缩略图上的 `×` 删掉它。

> 不支持拖放 —— 只有粘贴。

支持图片的引擎:**Claude**、**Codex**、**DeepSeek**。**Kimi** 和 **Ollama** tab 收到图片附件**静默丢弃**(不报错也不警告)。

## 在聊天里跑 shell 命令 —— `!` 前缀

如果你消息**第一行**以 `!` 开头,Cockpit 把这一行剩下的当 shell 命令执行,然后把输出作为新消息回填给 AI。后续行(如果有)作为你给这条命令输出的备注一起发出去。

```text
!ls -la src/
顺便看看 utils/ 里有什么 helper
```

AI 收到目录列表 + 你的备注。从聊天里给 AI 提供系统事实最快的路径,不用离开窗口 —— `git log -5`、`npm outdated`、`cat .env.example`、`gh pr view 42`,什么都行。

> `!` 只在**第一行第一个字符**触发。`Use !important here` 在句子中间不会跑 shell 命令。多行 shell 脚本也**不支持** —— 只跑第一行。要多行命令请用 `sh -c "..."` 之类塞进一行。

## 斜杠菜单 —— `/`

在输入框开头打 `/`,菜单弹出来,分成两段:

- **Commands**(内置) —— `/qa`、`/fx`、`/ex`、`/go`、`/cg`、`/cc`、`/cr`(见 [AI 模式命令](/zh/docs/agent/skills/))。
- **Skills**(你装过的) —— `/你的-skill-名`(见 [Skills](/zh/docs/agent/skills/#custom-skills))。

输入即过滤。`Tab` 或 `Enter` 把选中命令插入输入 —— 然后你打实际消息,回车发送。

> **把命令串起来。** 一条消息可以放不止一个命令。让好几行分别以 `/`(主会话执行)或 `@`(委派给子代理)开头,Cockpit 就把它们拼成一条有序的多步工作流。见 [工作流](/zh/docs/agent/workflows/)。

`!` 和 `/` 不冲突 —— `!` 只在第一行第一个字符触发,斜杠命令只在你先打 `/` 时触发。

要在 AI 面前引用具体代码,官方路径是走 [评注](/zh/docs/explorer/file-tree/#评注) —— 在 Explorer 选中代码、加评注、把格式化的评注块粘到聊天。

## 下一步

- [会话管理](/zh/docs/agent/sessions/) —— 管理多个聊天 tab
- [Skills](/zh/docs/agent/skills/)
