# 命令行界面

命令行界面适合习惯使用终端的用户，也适合快速问一句话、让 Tinybot 处理当前工作区里的文件。

## 启动聊天

```bash
uv run tinybot agent
```

启动后，你会进入一个全屏聊天界面。直接输入需求并按回车发送。

```text
请阅读当前目录，告诉我这个项目的主要模块。
```

退出聊天可以输入 `/exit`，也可以按 `Ctrl+C`。

## 单次提问

如果不想进入聊天界面，可以用 `-m` 发送一条消息：

```bash
uv run tinybot agent -m "请用三句话介绍这个项目"
```

这种方式适合脚本、快速查询或临时总结。

## 终端界面里能看到什么

| 区域 | 说明 |
|------|------|
| 顶部状态 | 当前模型、上下文、工作区等信息 |
| 对话区域 | 你和 Tinybot 的历史消息 |
| 任务进度 | 复杂任务执行时显示步骤和状态 |
| 底部输入 | 输入消息或 `/config`、`/help` 等命令 |

当 Tinybot 读取文件、执行命令或拆分任务时，界面会显示进度提示。你可以据此判断它正在做什么。

## 快捷键和内置命令

| 操作 | 用法 |
|------|------|
| 发送消息 | 回车 |
| 打开配置编辑器 | `Ctrl+O` 或输入 `/config` |
| 查看帮助 | `/help` |
| 清空当前对话历史 | `/clear` |
| 退出 | `/exit`、`:q` 或 `Ctrl+C` |
| 查看更完整的推理内容 | `Ctrl+R`，仅在模型返回推理内容时有用 |

说明：当前命令行输入框按回车发送消息，不是多行编辑器。如果要发送长内容，建议先保存为文件，再让 Tinybot 读取该文件。

## 配置编辑器

在聊天中输入：

```text
/config
```

或按 `Ctrl+O`，可以打开配置编辑器。常改的项目包括：

| 配置 | 什么时候需要改 |
|------|----------------|
| Provider/API Key | 更换 AI 服务或密钥 |
| Model | 切换更快或更强的模型 |
| Workspace | 限定 Tinybot 操作文件的位置 |
| Tools | 开关网络搜索、命令执行、MCP 等能力 |
| Gateway | 修改网页端口和心跳设置 |

编辑完成后按界面提示保存并返回聊天。

## 给 Agent 下指令的方式

Tinybot 能调用工具，所以指令最好写清楚目标、范围和输出格式。

推荐：

```text
请只阅读 docs 目录，找出新手文档中不清楚的地方，并给出修改建议。
```

不推荐：

```text
看看这个。
```

如果你希望它修改文件，要直接说出来：

```text
请修改 docs/quickstart.md，让安装步骤更适合第一次使用的人。
```

如果你只想要建议，不想让它改文件，也要说清楚：

```text
先不要改文件，只列出建议。
```

## 常见问题

### 中文显示乱码

Windows 用户建议使用 PowerShell 或 Windows Terminal，并确保终端使用 UTF-8。Tinybot 会尽量自动设置输出编码，但旧终端仍可能显示异常。

### AI 回复慢

常见原因是模型响应慢、网络慢、任务需要读取很多文件，或正在执行工具。可以尝试：

1. 换用更快的模型，例如 `deepseek-chat`
2. 缩小任务范围，例如“只看 docs 目录”
3. 拆成多个小任务

### 命令执行失败或没有权限

检查工作区、命令执行工具和系统权限。如果开启了 `restrict_to_workspace`，Tinybot 只能在配置的工作区内操作文件。

## 下一步

- [网页界面](webui.md)：更直观地管理会话、知识库和技能
- [配置说明](config.md)：了解模型、密钥和安全设置
- [工具功能](tools.md)：了解 Tinybot 能调用哪些工具
