# Snow CLI 使用文档——启动参数说明

欢迎使用 Snow CLI！在终端中进行 Agentic 编程。

## 启动参数说明

### 基本命令

#### 1. 默认启动

```bash
snow
```

启动 Snow CLI 交互式界面，显示欢迎屏幕。

#### 2. 查看版本

```bash
snow --version
# 或
snow -v
```

显示当前安装的 Snow CLI 版本号。

#### 3. 查看帮助

```bash
snow --help
# 或
snow -h
```

显示所有可用的命令行参数和使用说明。

#### 4. 更新到最新版本

```bash
snow --update
```

自动更新 Snow CLI 到最新版本。

### 快速启动模式

#### 1. 跳过欢迎页直接恢复会话

```bash
snow -c
```

跳过欢迎屏幕，自动恢复最近的对话会话。适合快速继续之前的工作。

#### 2. YOLO 模式（自动批准所有工具调用）

```bash
snow --yolo
```

跳过欢迎屏幕，启动空白对话，并开启 YOLO 模式。在此模式下，所有工具调用会自动批准执行，无需手动确认。

**注意：** YOLO 模式会自动执行所有命令，请谨慎使用！

#### 3. YOLO + 计划模式（YOLO+Plan）

```bash
snow --yolo-p
```

跳过欢迎屏幕，启动空白对话，并开启 YOLO 模式，同时强制启用“计划模式”。适合希望在自动执行的同时，让模型先输出计划再行动的场景。

**注意：** 该模式同样会自动执行所有命令，请谨慎使用！

#### 4. 组合模式：恢复会话 + YOLO

```bash
snow --c-yolo
```

跳过欢迎屏幕，恢复最近的对话会话，并开启 YOLO 模式。结合了会话恢复和自动批准的便利性。

### 无头模式（Headless Mode）

#### 1. 快速提问模式

```bash
snow --ask "你的问题"
```

无头模式下发送单个提示，AI 回复后自动退出。适合快速获取答案或脚本集成。

**示例：**

```bash
snow --ask "如何在JavaScript中使用Promise？"
```

#### 2. 继续对话

```bash
snow --ask "继续的问题" <sessionId>
```

在指定会话中继续对话。sessionId 是之前会话的标识符。

**示例：**

```bash
snow --ask "能详细解释一下吗？" abc123def
```

### 异步任务管理

#### 1. 创建后台任务

```bash
snow --task "任务描述"
```

创建一个后台 AI 任务，任务会在后台执行，不阻塞当前终端。

**示例：**

```bash
snow --task "重构 auth.ts 文件的错误处理逻辑"
```

执行后会显示：

- 任务 ID
- 任务标题
- 查看任务状态的提示

#### 2. 查看任务列表

```bash
snow --task-list
```

打开任务管理器界面，可以查看和管理所有后台任务，包括：

- 查看任务状态（运行中、已完成、失败）
- 审批敏感命令
- 将任务转换为会话
- 删除任务

### 开发者模式

#### 启用开发者模式

```bash
snow --dev
```

启用开发者模式，使用持久化的 userId 进行测试。在开发和调试时使用，保持用户标识一致。

启动时会显示：

```
Developer mode enabled
Using persistent userId: <your-user-id>
Stored in: ~/.snow/dev-user-id
```

### 常用组合

1. **快速恢复上次工作：**

   ```bash
   snow -c
   ```

2. **自动化执行任务：**

   ```bash
   snow --yolo
   ```

3. **自动化执行任务（并强制计划模式）：**

   ```bash
   snow --yolo-p
   ```

4. **快速问答并退出：**

   ```bash
   snow --ask "TypeScript 泛型怎么用？"
   ```

5. **后台执行复杂任务：**

   ```bash
   snow --task "分析并优化整个项目的性能瓶颈"
   ```

6. **继续之前的对话并自动执行：**

   ```bash
   snow --c-yolo
   ```

## 使用技巧

1. **快速查看版本和帮助：** 使用 `--version` 或 `--help` 快速获取信息，这些命令执行速度快，不会显示加载动画。

2. **脚本集成：** 使用 `--ask` 参数可以将 Snow CLI 集成到自动化脚本中。

3. **后台任务：** 对于耗时较长的任务，使用 `--task` 创建后台任务，可以继续使用终端做其他工作。

4. **会话管理：** 使用 `--ask` 的 sessionId 参数可以实现多轮对话，适合需要上下文的问题。

5. **安全使用 YOLO：** YOLO 模式虽然方便，但会自动执行所有命令。建议只在信任的环境和明确的任务中使用。

## 注意事项

1. **YOLO 模式风险：** `--yolo` 和 `--c-yolo` 会自动批准所有工具调用，包括文件修改、命令执行等，请确保了解将要执行的操作。

2. **后台任务：** 使用 `--task` 创建的后台任务会在新进程中运行，即使关闭终端，任务仍会继续执行。

3. **开发者模式：** `--dev` 模式会使用持久化的 userId，仅用于开发和测试环境。

4. **无头模式限制：** `--ask` 模式下，AI 回复后会立即退出，不支持交互式操作。

## 相关文档

- [无头模式详细说明](./12.无头模式.md)
- [异步任务管理](./15.异步任务管理.md)
- [快捷键指南](./13.快捷键指南.md)
