Akash-nath29/Coderrr

GitHub: Akash-nath29/Coderrr

Coderrr 是一个 AI 驱动的开源编程命令行助手,能将复杂编程任务自动拆解为步骤并执行文件操作、命令执行和测试。

Stars: 68 | Forks: 26

# Coderrr - AI Coding Agent CLI [![npm version](https://badge.fury.io/js/coderrr-cli.svg)](https://www.npmjs.com/package/coderrr-cli) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Node.js Version](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen)](https://nodejs.org/) [![GitHub issues](https://img.shields.io/github/issues/Akash-nath29/Coderrr)](https://github.com/Akash-nath29/Coderrr/issues) [![GitHub stars](https://img.shields.io/github/stars/Akash-nath29/Coderrr)](https://github.com/Akash-nath29/Coderrr/stargazers) ``` ██████╗ ██████╗ ██████╗ ███████╗██████╗ ██████╗ ██████╗ ██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗ ██║ ██║ ██║██║ ██║█████╗ ██████╔╝██████╔╝██████╔╝ ██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗██╔══██╗██╔══██╗ ╚██████╗╚██████╔╝██████╔╝███████╗██║ ██║██║ ██║██║ ██║ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ``` **你友好的开源 AI 驱动编程助手** Coderrr 是一个 AI 驱动的编程助手,它能够分析任务、创建可执行的计划、执行文件操作,并在用户授权下执行命令。专为希望在不牺牲控制权的前提下获得自动化协助的开发者而打造。 ## 🧩 技能市场 **通过安装技能扩展 Coderrr 的功能!** 浏览并从 [coderrr-skills](https://github.com/Akash-nath29/coderrr-skills) 市场安装技能: ``` # 浏览可用技能 coderrr market # 安装技能 coderrr install web-scraper # 列出已安装的技能 coderrr skills ``` | 技能 | 描述 | |-------|-------------| | **web-scraper** | 抓取并提取网页内容 | | **pdf** | 创建、合并、拆分和提取 PDF | | **code-analyzer** | 代码 Lint、统计行数、查找 TODO | | **docx/xlsx/pptx** | 处理 Office 文档 | | **api-client** | 发起 HTTP 请求 | 👉 **[浏览所有技能 →](https://github.com/Akash-nath29/coderrr-skills)** ## 目录 - [🧩 技能市场](#-skills-marketplace) - [查看 Coderrr 实际运行效果](#see-coderrr-in-action) - [功能](#features) - [核心能力](#core-capabilities) - [高级功能](#advanced-features) - [安装说明](#installation) - [快速开始](#quick-start-zero-config) - [高级配置](#advanced-configuration-optional) - [自托管后端](#self-hosting-backend-advanced) - [使用示例](#usage-examples) - [交互模式](#interactive-mode-default) - [单命令模式](#single-command-mode) - [选项](#options) - [命令示例](#example-commands) - [工作原理](#how-it-works) - [架构](#architecture) - [代码库智能](#codebase-intelligence) - [安全功能](#safety-features) - [项目自定义](#project-customization) - [支持的测试框架](#supported-test-frameworks) - [贡献指南](#contributing) - [文档](#documentation) - [许可证](#license) ## 查看 Coderrr 实际运行效果 ![coderrr_output](https://github.com/user-attachments/assets/e3172bc8-6b42-42b9-aef1-39ebdd42153f) ## 功能 ### 核心能力 - **任务分析** - 将复杂的请求分解为结构化、可执行的 TODO 项 - **文件操作** - 创建、更新、打补丁、删除和读取文件,并自动创建目录 - **命令执行** - 在强制权限提示下运行 shell 命令(GitHub Copilot 风格) - **独立终端执行** - 长时间运行的命令会在单独的终端窗口中运行,保持 Coderrr 的响应速度 - **自我修复** - 使用 AI 生成的修复方案自动重试失败的步骤 - **自动化测试** - 完成任务后自动检测并运行测试 - **代码库智能** - 扫描并理解项目结构,以实现精准的文件编辑 - **Git 集成** - 自动创建检查点和提交,并具备便捷的回滚功能 - **交互模式** - 用于迭代开发的持续对话循环 - **美观的 CLI** - 带有进度指示器和状态更新的简洁界面 ### 高级功能 - **跨会话记忆** - 通过 `.coderrr/memory.json` 跨会话记住对话上下文 - **Skills.md 支持** - 为你的项目定义持久的编码规范和模式 - **Coderrr.md 支持** - 添加用于指导 AI 行为的特定任务指令 - **代码库扫描器** - 具备 1 分钟缓存的项目自动感知能力 - **多框架支持** - 兼容 Node.js、Python、Go、Rust、Java 项目 - **环境配置** - 通过环境变量灵活配置后端 - **安全第一** - 对所有破坏性操作进行权限提示 - **双重架构** - 使用 Python 处理 AI 后端,使用 Node.js 处理文件操作前端 ## 安装说明 ## 极简快速开始(面向初次使用的用户) 如果你只想快速试用 Coderrr 而不想进行任何配置,请按照以下步骤操作: ``` npm install -g coderrr-cli cd C:\Coder\Coderrr coderrr ### 快速开始(零配置!) ``` ``` npm install -g coderrr-cli ``` 就是这样!CLI 已预先配置好了托管后端。 ## 前置条件 要在本地从源码运行 Coderrr 或为项目做贡献,请确保你具备: - Node.js >= 16.x - npm(随 Node.js 一起提供) - Python >= 3.8 - pip - Git ### 用法 导航到任何文件夹并开始编码: ``` cd my-project coderrr ``` ## 高级配置(可选) 默认情况下,Coderrr 使用我们位于 `https://coderrr-backend.vercel.app` 的托管后端。 如果你想使用自定义后端(自托管或不同的提供商),你有几个选项: ### 选项 1:用户配置文件(推荐) 创建 `~/.coderrr/.env`: **Windows:** ``` mkdir $HOME\.coderrr echo CODERRR_BACKEND=http://localhost:8000 > $HOME\.coderrr\.env ``` **Linux/Mac:** ``` mkdir -p ~/.coderrr echo "CODERRR_BACKEND=http://localhost:8000" > ~/.coderrr/.env ``` ### 选项 2:系统环境变量 **Windows:** ``` setx CODERRR_BACKEND "http://localhost:8000" ``` **Linux/Mac:** ``` export CODERRR_BACKEND="http://localhost:8000" # 添加到 ~/.bashrc 或 ~/.zshrc 以实现持久化 ``` ### 选项 3:命令行标志 ``` coderrr --backend http://localhost:8000 ``` ## 自托管后端(高级) 大多数用户不需要这个!但如果你想出于隐私或定制化目的运行自己的后端,请查看我们的[自托管指南](./docs/SELF_HOSTING.md)。 ## 使用示例 ### 交互模式(默认) 导航到你的项目并启动 agent: ``` cd my-project coderrr ``` 或者明确指定: ``` coderrr start ``` ### 单命令模式 执行单个请求并退出: ``` coderrr exec "Create a FastAPI endpoint for user authentication" ``` ### 选项 - `-b, --backend ` - 覆盖默认的后端 URL - `-d, --dir ` - 工作目录(默认:当前目录) - `--no-auto-test` - 禁用自动运行测试 - `--no-auto-retry` - 禁用错误时的自动重试/自我修复 - `--max-retries ` - 每个失败步骤的最大重试次数(默认:2) - `--auto-commit` - 启用 git 检查点和自动提交(选择性开启) **默认后端:** 使用位于 `https://coderrr-backend.vercel.app` 的托管后端 **自我修复:** 当某个步骤失败时,Coderrr 会自动分析错误并尝试修复,最多重试 2 次后才会放弃。 **Git 集成:** 加上 `--auto-commit` 标志后,Coderrr 会在操作前创建安全检查点,并自动提交成功的更改。使用 `coderrr rollback` 撤销更改。 ## 命令示例 ``` # 交互模式 coderrr # 创建新功能 coderrr exec "Add a REST API endpoint for creating blog posts" # 重构代码 coderrr exec "Refactor the authentication module to use JWT tokens" # 修复 Bug coderrr exec "Fix the database connection timeout issue" # 编写测试 coderrr exec "Add unit tests for the user service" # 启用 git 安全(自动提交) coderrr --auto-commit exec "Create user authentication system" # 回滚更改 coderrr rollback # 自定义 backend coderrr start --backend http://my-backend:5000 # 不同的工作目录 coderrr start --dir /path/to/project ``` ## 工作原理 1. **用户输入** - 你提供一个编程任务或请求 2. **AI 分析** - 后端 LLM 进行分析并创建结构化的计划 3. **TODO 生成** - 将任务分解为可执行的步骤 4. **执行** - agent 执行每一个步骤: - 文件操作(创建、更新、打补丁、删除) - 在单独的终端窗口中执行命令(带有权限提示) 5. **测试** - 如果检测到测试框架,则自动运行测试 6. **完成** - 显示摘要和执行统计数据 ## 📁 项目结构 Coderrr 仓库遵循简洁和模块化的结构,以提高 可维护性、可扩展性,并方便贡献者上手。 ``` 📁 Coderrr/ ├── 📁 bin/ # CLI entry points (modern CLI & legacy TUI) ├── 📁 src/ # Core agent logic, file operations, execution & UI ├── 📁 backend/ # FastAPI backend for AI processing ├── 📁 docs/ # Detailed documentation (architecture, API, guides) ├── 📁 examples/ # Example usage and demo projects ├── 📁 test/ # General test files ├── 📁 tests/unit/ # Unit tests for core components ├── 📁 .github/ # GitHub Actions, CI/CD workflows, templates ├── 📄 package.json # Node.js dependencies and CLI metadata ├── 📄 README.md # Project overview and usage guide └── 📄 LICENSE # MIT license ``` ## 架构 ``` 📁 Coderrr/ ├── 📁 bin/ │ ├── 📄 coderrr.js # Modern CLI (commander-based) │ └── 📄 coderrr-cli.js # Legacy TUI (blessed-based) ├── 📁 src/ │ ├── 📄 agent.js # Core agent logic & orchestration │ ├── 📄 fileOps.js # File operations handler │ ├── 📄 executor.js # Command executor with permissions │ ├── 📄 todoManager.js # TODO tracking & visualization │ ├── 📄 codebaseScanner.js # Project structure scanner │ └── 📄 ui.js # UI utilities & components ├── 📁 backend/ │ ├── 📄 main.py # FastAPI backend server │ └── 📄 requirements.txt # Python dependencies ├── 📁 test/ # Test suite ├── 📁 docs/ # Documentation ├── 📁 examples/ # Usage examples ├── 📁 .github/ # CI/CD workflows ├── 📄 package.json └── 📄 .env # Environment configuration ``` ### 后端 处理 AI 模型通信、请求处理和 JSON schema 强制校验。默认运行在端口 5000。 ### 前端 管理用户交互、文件操作、命令执行和项目扫描。提供 CLI 和 TUI 界面。 ## 代码库智能 Coderrr 包含一个智能的**代码库扫描器**,它能够: - 在首次请求时**自动扫描**你的项目 - **记住**所有现有文件及其位置 - 在编辑现有代码时**防止**文件名不匹配 - **缓存**结果以加快后续请求的响应速度 - **忽略**常见的文件夹,如 `node_modules`、`env`、`__pycache__` 这意味着当你要求“编辑 agent 文件”时,它知道你指的是 `src/agent.js`,而不是 `agent.py` 或 `agentController.js`。 **了解更多:** 查看 [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) 获取详细的架构文档。 ## 安全功能 - **权限提示** - 所有命令在执行前都需要用户确认 - **Diff 预览** - 在修改文件前查看更改内容 - **逐步执行** - 每个动作都会单独执行并提供反馈 - **错误处理** - 优雅的错误处理机制,提供继续或停止的选项 - **Git 友好** - 在 Git 仓库中运行效果最佳,便于回滚 ## 项目自定义 Coderrr 通过特殊文件支持针对特定项目的自定义: ### Skills.md - 持久规范 在你的项目根目录下创建一个 `Skills.md` 文件,以定义适用于**所有任务**的编码规范: ``` # 项目技能 ## 代码风格 - Use TypeScript strict mode - Prefer functional components in React - Always add JSDoc comments to public functions ## 架构 - Follow clean architecture patterns - Keep business logic in /src/domain ``` ### Coderrr.md - 任务特定指令 创建一个 `Coderrr.md` 文件用于提供针对特定任务的指导: ``` # 当前焦点 Working on authentication module. Priority: 1. Security first - validate all inputs 2. Use bcrypt for password hashing 3. JWT tokens with 1-hour expiry ``` ### 跨会话记忆 Coderrr 会自动将对话历史保存在 `.coderrr/memory.json` 中: - **跨会话持久化** - 从你上次中断的地方继续 - **项目专属** - 每个项目都有其独立的记忆 - **自动管理** - 保留最近 30 轮对话 - **随时清除** - 删除 `.coderrr/memory.json` 即可重置 ## 支持的测试框架 Coderrr 会自动检测并运行以下框架的测试: - **JavaScript/TypeScript** - npm test - **Python** - pytest - **Go** - go test - **Rust** - cargo test - **Java** - Maven (mvn test) 或 Gradle (gradle test) ## 本地开发设置(面向贡献者) 本部分介绍如何在本地从源码运行 Coderrr 以进行开发或贡献。 ### 1. 克隆仓库 ``` git clone https://github.com/Akash-nath29/Coderrr.git cd Coderrr ``` ### 2. 后端设置 你可以使用 Docker(推荐)或手动设置来运行后端。 #### 选项 A:Docker(推荐) ``` docker compose up --build ``` 后端将启动在 `http://localhost:5000`,并启用了热重载。 #### 选项 B:手动设置 ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` 运行后端服务器: ``` uvicorn main:app --reload --port 5000 ``` 后端将可以通过以下地址访问: ``` http://localhost:5000 ``` ### 3. CLI 设置 在项目根目录下执行: ``` npm install npm link ``` 这允许你使用以下命令运行本地 CLI: ``` coderrr ``` ### 4. 配置 CLI 使用本地后端 创建一个用户配置文件: ``` mkdir -p ~/.coderrr echo "CODERRR_BACKEND=http://localhost:5000" > ~/.coderrr/.env ``` 或者直接运行: ``` coderrr --backend http://localhost:5000 ``` ### 5. 验证本地设置 ``` cd any-project coderrr ``` ## 故障排除 ### 无法连接后端 - 确保 FastAPI 正在端口 5000 上运行 - 检查 `CODERRR_BACKEND` 的值 ### 找不到 `coderrr` 命令 - 再次运行 `npm link` - 重启终端 ### Python 依赖错误 - 确保已激活虚拟环境 - 重新运行 `pip install -r requirements.txt` ## 贡献指南 在贡献之前,请阅读上方的**项目结构**部分,以了解应将新代码、测试或文档添加到何处。 欢迎 contributions!在提交 pull request 之前,请阅读我们的[贡献指南](./CONTRIBUTING.md)。 ### 分支工作流 - `feature/*` → `dev` → `main` - 直接将 feature 提交到 main 的 PR 会被 CI 阻止 - 所有测试都会在针对 dev 或 main 的 PR 上运行 有关详细的开发设置和指南,请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md)。 ## 文档 - [架构](./docs/ARCHITECTURE.md) - 系统设计和数据流 - [API 参考](./docs/API.md) - 完整的 API 文档 - [常见问题](./docs/FAQ.md) - 常见问题解答- [部署](./docs/DEPLOYMENT.md) - 生产环境部署指南 - [示例](./examples/) - 使用示例和教程 ## 许可证 MIT 许可证 - 详情请参阅 [LICENSE](./LICENSE) 文件。 ## 鸣谢 灵感来源于: - Claude Code (Anthropic) - GitHub Copilot CLI - Cursor AI **由开发者构建,为开发者服务**
标签:AI编程助手, GNU通用公共许可证, MITM代理, Node.js, SOC Prime, 开发工具, 开源, 暗色界面, 网络安全研究, 网络调试, 自动化, 自定义脚本, 逆向工具