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

# 交互与输入

Step Code 的交互围绕一个输入框展开：打字、粘贴图片、引用文件和执行 Shell 命令都在这里；审批、Plan 与目标模式也在这里切换，流式输出期间仍可插话。

## 输入框基本操作

| 操作        | 快捷键                                   |
| --------- | ------------------------------------- |
| 发送消息      | Enter                                 |
| 换行        | Shift+Enter、Ctrl+J 或 Alt+Enter        |
| 浏览输入历史    | 空输入框中按 ↑ / ↓                          |
| 向前跳到指定字符  | Ctrl+]                                |
| 按词向后或向前删除 | Ctrl+W / Alt+D                        |
| 删除到行首或行尾  | Ctrl+U / Ctrl+K                       |
| 粘回删除的文本   | Ctrl+Y；Alt+Y 切换删除记录                   |
| 撤销        | Ctrl+-；Windows 使用 Ctrl+Z，WSL 使用 Alt+Z |
| 退出        | Ctrl+C 清空后再次按下；空输入框也可按 Ctrl+D         |
| 挂起到后台     | Ctrl+Z，原生 Windows 不适用                 |

Windows Terminal 还支持 Ctrl+Enter 换行。键位定义在 `~/.stepcode/agent/keybindings.json`，修改后 `/reload` 生效。完整键位见[键盘快捷键](/docs/zh/step-code/reference/keyboard-shortcuts)。

## 粘贴图片

使用 Ctrl+V 粘贴剪贴板图片；Windows / WSL 使用 Alt+V。支持的终端也可以拖入图片路径。

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
step -p @screenshot.png "这张截图里的报错怎么修？"
```

请先选择支持图片输入的模型。默认图片缩放会将过大的图片限制在 2,000 px 以内，以减少输入体积；可通过 `[images]` 配置调整。终端内联显示与模型接收图片是两项不同能力，关闭内联显示不等于禁止发送图片。

## 斜杠命令

输入 `/` 打开补全菜单，Esc 关闭菜单。

| 命令                    | 作用                    |
| --------------------- | --------------------- |
| `/model`              | 选择模型                  |
| `/permissions`        | 选择审批模式                |
| `/thinking`、`/effort` | 调整思考级别                |
| `/plan`               | 切换 Plan 模式；带任务则直接开始规划 |
| `/new`、`/resume`      | 新建或恢复会话               |
| `/compact`            | 压缩上下文                 |
| `/goal`、`/cron`       | 管理目标或定时任务             |
| `/tree`、`/fork`       | 浏览会话树或派生会话            |

Skills 使用 `/skill:<名称>` 调用。完整列表见[斜杠命令](/docs/zh/step-code/reference/slash-commands)。

## 文件引用

输入 `@` 搜索项目文件，使用 Tab 补全路径。Git 和非 Git 目录均可使用，也可以从命令行传入文件：

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
step @README.md "总结这个项目的用途和运行方式"
step @src/app.ts @src/app.test.ts "审查这两个文件的实现与测试是否一致"
```

被引用或被工具读取的文件内容可能进入模型上下文。引用前请检查密钥、个人信息和业务敏感数据。

## 审批流程

Ask 模式或 Autopilot 遇到需确认项时，工具调用前显示确认框，标题为 `Approve <工具名>` 或 `Dangerous <工具名>`，正文列出拦截原因和参数摘要。批准后执行；拒绝后本次调用取消，模型收到拒绝原因继续对话。批量调用可能逐个询问。

### 权限模式

| 模式         | 普通工具调用行为               |
| ---------- | ---------------------- |
| Ask        | 安全的只读工具直接运行；写入和命令执行先询问 |
| Read Only  | 仅允许只读和发现类工具            |
| Bypass（默认） | 不逐项审批普通工具调用            |
| Autopilot  | 跳过普通审批，并在部分瞬时模型故障后自动恢复 |

使用 `/permissions` 选择，或 `/permissions cycle`、Shift+Tab 循环切换。环境变量可覆盖初始模式，见[环境变量](/docs/zh/step-code/configuration/environment)。

被危险命令规则识别的操作仍需额外确认；Read Only 下拒绝执行。规则检查不能覆盖任意脚本或所有危险行为，不能作为沙箱使用。

非交互模式（`step -p`）默认拒绝需要审批的调用，可通过 `--approval-mode` 调整普通调用的审批策略；危险命令不因此豁免。详见 [`step` 命令](/docs/zh/step-code/reference/cli)。

## 模式切换

### Plan 模式

```text theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
/plan 梳理鉴权模块的依赖，先给出迁移计划，不修改业务代码
```

`/plan` 切换模式，`/plan <任务>` 直接开始规划；启动时也可以使用 `step --plan`。模型先勘察项目并写入计划文件，批准计划后再实施。

Plan 模式将文件编辑限制为只读勘察，唯一可写的是计划文件本身；Shell 仍按正常权限执行。批准计划后退出 Plan 模式并开始实施。

### Shell 命令直通

```text theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
!npm run lint
!!git status --short
```

`!` 执行本地 Shell 命令并将输出加入模型上下文；`!!` 执行但不将输出发给模型。逐条前缀触发，没有独立模式，也没有用户侧的后台运行。输出以卡片形式显示，长输出自动收起，可使用 Ctrl+O 展开。

### 目标模式

```text theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
/goal 将测试迁移到 Vitest，保持现有用例通过，并提供改动摘要
```

目标模式持续驱动多轮执行，直到目标达成或手动停止，适合几小时量级的长任务。任务期间请保持 Step Code 进程运行。

| 命令             | 作用                  |
| -------------- | ------------------- |
| `/goal status` | 查看目标、状态和用量          |
| `/goal pause`  | 暂停自动续跑，中断进行中的目标续跑轮次 |
| `/goal resume` | 恢复目标                |
| `/goal edit`   | 修改目标描述              |
| `/goal clear`  | 清除目标                |

状态行显示活跃计时，例如 `Goal: active · 12m 3s`，仅累计目标活跃时间。

定时任务使用五字段 cron 表达式；持久任务保存在项目 `.stepcode/cron/tasks.json`，需要项目信任。持久保存任务不意味着无需启动进程即可调度。

## 流式输出期间

* Enter 将新消息排队，当前助手轮次的工具调用结束后投递。
* Esc 中止当前轮次，并将队列消息恢复到输入框。
* Alt+↑ 取回排队消息；Windows / WSL 使用 Alt+Q。
* Ctrl+O 折叠或展开工具输出。

`steeringMode` 和 `followUpMode` 控制消息投递方式，可在设置中调整。follow-up 默认没有单独快捷键。

## 外部编辑器

Ctrl+G 打开外部编辑器编辑当前输入，动作名为 `app.editor.external`。选择顺序为 `externalEditor` 设置、`VISUAL`、`EDITOR`，最后使用 Windows 记事本或其他系统的 nano。

## 下一步

* [会话与上下文](/docs/zh/step-code/guides/sessions)
* [常见使用案例](/docs/zh/step-code/guides/use-cases)
* [Agent 与 subagent](/docs/zh/step-code/customization/agents)
