# ChatStep **Repository Path**: Elams/chat-step ## Basic Information - **Project Name**: ChatStep - **Description**: 支持在与AI对话时执行Shell命令 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ChatStep ## 重要提示 - README.md和README.en.md里可能有错误 ## 介绍 - 支持自然语言生成并执行Shell脚本的CLI工具 - 支持自定义命令别名 - 多AI平台支持 - 🔥 **新功能**:自我进化模式支持 `--self` 参数,自动使用当前git仓库 - [QQ群](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XE6sZHD2Bi1IFKZyZ_hMa4T9UsFTMeBD&authKey=sCB6CvS4j%2BxPSlfh3BNR2%2F%2FTr%2BJ45T6Uku2YvmiyScPISHjiWSMZU%2BQMJJzh1EdW&noverify=0&group_code=1035618715) - [Discord](https://discord.gg/MepDu9XJnd) - [matrix](https://matrix.to/#/#chat-step:matrix.org) ## 安装 ```bash cargo install --git https://gitee.com/qwe12345678/chat-step.git ``` 或获取源码后: ```bash bash install.sh ``` ## 配置文件 配置文件位于 `~/.config/chatstep/chatstep.conf`,首次运行会自动生成。完整配置结构: ```toml # API 配置示例 [glm-4-flash] API_KEY = "your_api_key_here" # 从AI平台获取 MODEL_NAME = "glm-4-flash" # 模型标识 API_ENDPOINT = "https://api.example.com/v4/chat/completions" # API地址 # 场景配置 [scenarios] dialogue = "glm-4-flash" # 对话模式默认模型 multifunction = "glm-4-flash" # 脚本生成默认模型 # 命令别名配置 [aliases] random = { prompt = "生成一个1-100的随机数" } create_py = { prompt = "创建名为{0}的Python项目,包含{1}和README.md", profile = "QwQ-32B" } ``` ## 使用方法 ### 基础命令 对话模式(不执行命令): ```bash chatstep ask "要是基于TypeScript搞一个支持依赖类型的编程语言价值大吗?" ``` 生成并执行脚本: ```bash chatstep run "生成随机数并保存到random.txt" ``` ### 别名命令 使用预定义的别名: ```bash chatstep random # 等价于 chatstep run "生成一个1-100的随机数" ``` 带参数的别名: ```bash chatstep create_py myproject setup.py ``` 等价于: ```bash chatstep run "创建名为myproject的Python项目,包含setup.py和README.md" -p QwQ-32B ``` ### 高级功能 1. 指定AI模型: ```bash chatstep run "用QwQ-32B生成脚本" -p QwQ-32B ``` 3. 自动修复: 当脚本执行出错时,会自动尝试生成修复方案并询问是否执行 ## 别名配置指南 在配置文件的 `[aliases]` 部分添加: ```toml [aliases] # 简单别名 别名 = { prompt = "固定prompt内容" } # 带参数的别名(使用{0}、{1}占位符) 别名 = { prompt = "包含{0}个参数和{1}的模板", profile = "指定使用的模型" } ``` 示例: ```toml [aliases] latex_report = { prompt = "生成包含'{0}'主题的LaTeX报告,保存为{1}.tex并编译为PDF", profile = "glm-4-flash" } ``` 使用: ```bash chatstep latex_report "AI发展前景" report_2024 ``` ## 安装后终端提示 `command not found: chatstep`? 这是因为 `cargo` 的二进制文件安装目录(`~/.cargo/bin`)没有被添加到你终端的 `PATH` 环境变量中。你需要手动添加一次,之后所有通过 `cargo install` 安装的工具都可以直接使用了。 **解决方案:** 1. **找到你的 Shell 配置文件** * 如果你使用 **Bash** (大多数 Linux 发行版),文件是 `~/.bashrc`。 * 如果你使用 **Zsh** (macOS 默认),文件是 `~/.zshrc`。 2. **在配置文件末尾添加以下这行代码:** ```bash export PATH="$HOME/.cargo/bin:$PATH" ``` 3. **让配置生效** * **最简单的方法:** 完全关闭并重新打开你的终端窗口。 * **或者**,在当前终端运行 `source ~/.bashrc` 或 `source ~/.zshrc` (根据你的 Shell 选择)。 现在,`chatstep` 命令应该可以正常使用了! ## 自我进化功能 ChatStep 现在支持自我进化模式,可以自动克隆项目、运行测试、检测bug并进行改进。 ### 配置自我进化 在配置文件 `~/.config/chatstep/chatstep.conf` 中添加 `[self_evolution]` 部分(可选): ```toml [self_evolution] # AI工具的shell命令模板({prompt}会被替换为实际的提示词) shell_command = "qwen -p \"{prompt}\" --yolo" # 进化循环间隔(秒) interval = 300 # 最大进化次数 max_iterations = 10 # 是否启用自我进化(可选,默认为true) enabled = true ``` ### 使用自我进化 直接运行进化命令,无需任何配置: ```bash # 基本用法 chatstep evolve https://github.com/user/repo.git # 指定目标目录 chatstep evolve https://github.com/user/repo.git ./my_project # 使用当前git仓库(自动检测当前项目的远程URL)⭐新功能 chatstep evolve --self # 使用当前git仓库并指定目标目录 chatstep evolve --self ./my_project ``` ### 自我进化流程 1. **克隆/更新项目**:自动从指定的Git仓库克隆代码或更新现有代码 2. **运行测试**:自动尝试多种测试命令(cargo test、npm test、pytest等) 3. **AI分析改进**:调用配置的AI工具分析项目并生成改进建议 4. **循环进化**:按照配置的间隔和次数重复上述过程 ### 使用 --self 参数 `--self` 参数允许你直接使用当前git仓库的远程URL,无需手动输入: ```bash # 在当前git仓库目录下运行 chatstep evolve --self # 这会自动检测当前项目的远程origin URL # 例如:如果当前在 https://gitee.com/qwe12345678/chat-step.git 项目下 # 等同于:chatstep evolve https://gitee.com/qwe12345678/chat-step.git ``` 使用 `--self` 参数的好处: - **方便快捷**:无需复制粘贴仓库URL - **减少错误**:避免手动输入URL可能产生的错误 - **适用于脚本**:可以在自动化脚本中使用 - **智能检测**:自动获取当前项目的远程仓库地址 注意事项: - 必须在git仓库目录下使用 - 需要配置远程origin(运行 `git remote -v` 检查) - 如果项目有多个远程,会使用origin远程的URL ### 配置说明 - `[self_evolution]` 配置段是可选的,如果不配置会使用默认值 - 默认AI工具命令:`qwen -p "{prompt}" --yolo` - 默认间隔:300秒(5分钟) - 默认最大迭代次数:10次 - 默认启用状态:true(运行进化命令时直接生效) ### 进化提示词 自我进化使用的固定提示词: ``` 判断一下这个项目有什么值得改进的地方,如果有就改进一下,同时运行像cargo test这种的命令,判断一下代码是否有bug,如果有bug就修复,debug的时候可以通过加日志和打断点(在命令行当中打断点)来debug ``` ### 注意事项 1. **安全第一**:进化功能会自动修改代码,建议在测试环境中使用或先备份重要代码 2. **网络要求**:需要能访问配置的AI工具和Git仓库 3. **资源消耗**:进化过程可能会消耗大量CPU和网络资源 4. **自定义AI工具**:可以通过修改`shell_command`配置来使用不同的AI工具 ## 其他注意事项 1. API密钥可以手动添加(需要从对应平台申请),自带API和密钥 2. 执行脚本前请仔细检查生成的内容 3. 参数替换遵循从0开始的索引: - {0} → 第一个参数 - {1} → 第二个参数 - 以此类推 4. 可通过`--profile`参数覆盖别名中指定的模型