{"_id":"@caoxupei/ai-agent-cli","_rev":"3-dcb6e5e40a702626b5ec4b3cb69f9521","name":"@caoxupei/ai-agent-cli","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@caoxupei/ai-agent-cli","version":"1.0.0","keywords":["ai","agent","cli","coding-assistant","anthropic","openai","gemini","claude","gpt","typescript"],"author":{"name":"xpnobug"},"license":"MIT","_id":"@caoxupei/ai-agent-cli@1.0.0","maintainers":[{"name":"caoxupei","email":"2877406366@qq.com"}],"homepage":"https://github.com/xpnobug/ai-agent-cli#readme","bugs":{"url":"https://github.com/xpnobug/ai-agent-cli/issues"},"bin":{"aac":"bin/ai-agent-cli.js","ai-agent-cli":"bin/ai-agent-cli.js"},"dist":{"shasum":"3cfd1b41e2c4edf3de752f5eefc87e7e1c540189","tarball":"https://registry.npmjs.org/@caoxupei/ai-agent-cli/-/ai-agent-cli-1.0.0.tgz","fileCount":393,"integrity":"sha512-iwwXr8v5wwijor7ZWyAUthPtS4dN4aNuMy0rksk+fr9iSGNnRNfdOLQdcrmtX/fuqlnf5loIG79pLYz1574dnw==","signatures":[{"sig":"MEQCIAoC+IUvATVAuTvdzFv0OEeN4jO5DlbMfxcukKrMREPGAiAGau317NNAYSHl5SS9ecdTDk/i6qlvT+stUqtvnNHn1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745921},"main":"./dist/entrypoints/index.js","type":"module","types":"./dist/entrypoints/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"673ab22ed8a166cd1fc2ab2f3ee61f4a0424990b","scripts":{"dev":"tsx src/entrypoints/cli.ts","lint":"eslint src --ext .ts","test":"vitest","build":"tsc","test:ui":"vitest --ui","lint:fix":"eslint src --ext .ts --fix","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"caoxupei","email":"2877406366@qq.com"},"repository":{"url":"git+https://github.com/xpnobug/ai-agent-cli.git","type":"git"},"_npmVersion":"9.5.0","description":"A powerful AI coding agent with multi-provider support (Anthropic, OpenAI, Gemini)","directories":{},"_nodeVersion":"18.15.0","dependencies":{"ora":"^8.0.1","zod":"^3.22.4","boxen":"^7.1.1","chalk":"^5.3.0","execa":"^8.0.1","dotenv":"^16.3.1","openai":"^4.51.0","cheerio":"^1.0.0-rc.12","enquirer":"^2.4.1","fs-extra":"^11.2.0","turndown":"^7.2.2","fast-glob":"^3.3.2","cli-table3":"^0.6.5","gray-matter":"^4.0.3","@types/turndown":"^5.0.6","@anthropic-ai/sdk":"^0.39.0","@google/generative-ai":"^0.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^8.56.0","vitest":"^1.0.4","@vitest/ui":"^1.0.4","typescript":"^5.3.3","@types/node":"^20.10.0","@types/fs-extra":"^11.0.4","@typescript-eslint/parser":"^6.15.0","@typescript-eslint/eslint-plugin":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-agent-cli_1.0.0_1768449539801_0.6539715489338827","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@caoxupei/ai-agent-cli","version":"1.0.1","keywords":["ai","agent","cli","coding-assistant","anthropic","openai","gemini","claude","gpt","typescript"],"author":{"name":"xpnobug"},"license":"MIT","_id":"@caoxupei/ai-agent-cli@1.0.1","maintainers":[{"name":"caoxupei","email":"2877406366@qq.com"}],"homepage":"https://github.com/xpnobug/ai-agent-cli#readme","bugs":{"url":"https://github.com/xpnobug/ai-agent-cli/issues"},"bin":{"aac":"bin/ai-agent-cli.js","ai-agent-cli":"bin/ai-agent-cli.js"},"dist":{"shasum":"8a7d055bbf184a1e480d2d575158a7b69a12cae3","tarball":"https://registry.npmjs.org/@caoxupei/ai-agent-cli/-/ai-agent-cli-1.0.1.tgz","fileCount":393,"integrity":"sha512-UEso40UhJyMwMCOyA5iQLL0WKTjnY7mclt1oiK97YS5MkWeUfJU7AokLDLyK8kW+gETlIKf6EA3015m70q0bsg==","signatures":[{"sig":"MEQCICNI/V5Zx0Jm6HziJBO9Go2wBYIywb4RW8BQfM31RKu3AiAIg3uQNqw9ed9J/BmvrQv/6vb1Gl4aV/6lXq4yB2E9WQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745943},"main":"./dist/entrypoints/index.js","type":"module","types":"./dist/entrypoints/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"673ab22ed8a166cd1fc2ab2f3ee61f4a0424990b","scripts":{"dev":"tsx src/entrypoints/cli.ts","lint":"eslint src --ext .ts","test":"vitest","build":"tsc","test:ui":"vitest --ui","lint:fix":"eslint src --ext .ts --fix","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"caoxupei","email":"2877406366@qq.com"},"repository":{"url":"git+https://github.com/xpnobug/ai-agent-cli.git","type":"git"},"_npmVersion":"9.5.0","description":"A powerful AI coding agent with multi-provider support (Anthropic, OpenAI, Gemini)","directories":{},"_nodeVersion":"18.15.0","dependencies":{"ora":"^8.0.1","zod":"^3.22.4","boxen":"^7.1.1","chalk":"^5.3.0","execa":"^8.0.1","dotenv":"^16.3.1","openai":"^4.51.0","cheerio":"^1.0.0-rc.12","enquirer":"^2.4.1","fs-extra":"^11.2.0","turndown":"^7.2.2","fast-glob":"^3.3.2","cli-table3":"^0.6.5","gray-matter":"^4.0.3","@types/turndown":"^5.0.6","@anthropic-ai/sdk":"^0.39.0","@google/generative-ai":"^0.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^8.56.0","vitest":"^1.0.4","@vitest/ui":"^1.0.4","typescript":"^5.3.3","@types/node":"^20.10.0","@types/fs-extra":"^11.0.4","@typescript-eslint/parser":"^6.15.0","@typescript-eslint/eslint-plugin":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-agent-cli_1.0.1_1768449685130_0.31775908484163873","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@caoxupei/ai-agent-cli","version":"1.0.2","description":"A powerful AI coding agent with multi-provider support (Anthropic, OpenAI, Gemini)","type":"module","main":"./dist/entrypoints/index.js","types":"./dist/entrypoints/index.d.ts","bin":{"ai-agent-cli":"bin/ai-agent-cli.js","aac":"bin/ai-agent-cli.js"},"scripts":{"dev":"tsx src/entrypoints/cli.ts","build":"tsc","test":"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","prepublishOnly":"npm run build"},"keywords":["ai","agent","cli","coding-assistant","anthropic","openai","gemini","claude","gpt","typescript"],"engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/xpnobug/ai-agent-cli.git"},"homepage":"https://github.com/xpnobug/ai-agent-cli#readme","bugs":{"url":"https://github.com/xpnobug/ai-agent-cli/issues"},"author":{"name":"xpnobug"},"license":"MIT","dependencies":{"@anthropic-ai/sdk":"^0.39.0","@google/generative-ai":"^0.17.0","@types/turndown":"^5.0.6","boxen":"^7.1.1","chalk":"^5.3.0","cheerio":"^1.0.0-rc.12","cli-table3":"^0.6.5","dotenv":"^16.3.1","enquirer":"^2.4.1","execa":"^8.0.1","fast-glob":"^3.3.2","fs-extra":"^11.2.0","gray-matter":"^4.0.3","openai":"^4.51.0","ora":"^8.0.1","string-width":"^8.1.0","turndown":"^7.2.2","zod":"^3.22.4"},"devDependencies":{"@types/fs-extra":"^11.0.4","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.15.0","@typescript-eslint/parser":"^6.15.0","@vitest/ui":"^1.0.4","eslint":"^8.56.0","tsx":"^4.7.0","typescript":"^5.3.3","vitest":"^1.0.4"},"_id":"@caoxupei/ai-agent-cli@1.0.2","gitHead":"1c836882194a20d02a1b2d1c6cbe848a11c42923","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-bbLFBdBUk0OANf9qmQjwezw8UIE7oA65cvLi7q1kIUDSSCHwYiRFE5G0yycrA+N/VfnaTgaHG9aO32BrI1ENZw==","shasum":"2fd39ff30f0f121e768e272c2b5274bc7a62f583","tarball":"https://registry.npmjs.org/@caoxupei/ai-agent-cli/-/ai-agent-cli-1.0.2.tgz","fileCount":409,"unpackedSize":791781,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDf8l2CJXV6ZqPU2aYpQtABI936nAr6i4dM6xcVuVODWwIgWrrxY38iCb5zkfdc6dH0/L6Dr5DvzmN+Vk/2/ohpCzA="}]},"_npmUser":{"name":"caoxupei","email":"2877406366@qq.com"},"directories":{},"maintainers":[{"name":"caoxupei","email":"2877406366@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-agent-cli_1.0.2_1768977148056_0.9035187615145628"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-15T03:58:59.729Z","modified":"2026-01-21T06:32:28.366Z","1.0.0":"2026-01-15T03:58:59.955Z","1.0.1":"2026-01-15T04:01:25.283Z","1.0.2":"2026-01-21T06:32:28.239Z"},"bugs":{"url":"https://github.com/xpnobug/ai-agent-cli/issues"},"author":{"name":"xpnobug"},"license":"MIT","homepage":"https://github.com/xpnobug/ai-agent-cli#readme","keywords":["ai","agent","cli","coding-assistant","anthropic","openai","gemini","claude","gpt","typescript"],"repository":{"type":"git","url":"git+https://github.com/xpnobug/ai-agent-cli.git"},"description":"A powerful AI coding agent with multi-provider support (Anthropic, OpenAI, Gemini)","maintainers":[{"name":"caoxupei","email":"2877406366@qq.com"}],"readme":"# AI Agent CLI\n\n一个功能完整的 AI 编程助手命令行工具，支持多个 LLM 提供商（Anthropic Claude、OpenAI、Google Gemini）。\n\n## ✨ 核心特性\n\n### 🤖 多提供商支持\n- **Anthropic Claude**: Claude 3.5 Sonnet, Claude 3 Opus\n- **OpenAI**: GPT-4, GPT-3.5 Turbo\n- **Google Gemini**: Gemini 1.5 Pro, Gemini 1.5 Flash\n\n### 🛠️ 15 个强大工具\n\n#### 基础文件操作\n- **bash** - 执行 Shell 命令\n- **read_file** - 读取文件内容\n- **write_file** - 创建或覆盖文件\n- **edit_file** - 精确编辑文件\n\n#### 高效搜索\n- **Glob** - 快速文件模式匹配（支持 `**/*.ts` 等模式）\n- **Grep** - 正则表达式内容搜索（支持上下文行）\n\n#### 智能交互\n- **AskUserQuestion** - 结构化提问（单选/多选）\n- **TodoWrite** - 任务管理和进度跟踪\n\n#### 高级功能\n- **Task** - 启动子代理执行复杂任务\n- **Skill** - 加载领域专业知识\n- **EnterPlanMode** - 进入规划模式\n- **ExitPlanMode** - 退出规划模式并提交计划\n\n#### 网络能力\n- **WebFetch** - 获取网页内容并转换为 Markdown\n- **WebSearch** - 搜索网络内容（使用 DuckDuckGo）\n\n### 🚀 性能优化\n- **并行工具执行**: 多个独立工具同时运行，性能提升 2-5 倍\n- **智能缓存**: 减少重复 API 调用\n- **流式输出**: 实时显示 AI 响应\n\n### 🎨 增强的用户交互\n- **多行输入**: Shift+Enter 换行支持，轻松输入长 Prompt\n- **外部编辑器**: Ctrl+G 打开外部编辑器（VS Code/Vim/Nano）\n- **历史导航**: ↑↓ 箭头浏览命令历史\n- **Emacs快捷键**: Ctrl+A/E/U/K/W 等编辑快捷键\n- **Token 追踪**: 实时显示 Token 使用情况（工具已实现）\n\n### 🎯 子代理系统\n- **explore** - 只读探索代理（安全的代码库探索）\n- **code** - 代码编写代理（完整工具访问）\n- **plan** - 规划代理（设计实现方案）\n\n### 📚 技能系统 (Production-grade)\n\n#### 目录结构\n```\n项目级 (.ai-agent/):\n├── commands/     # 命令文件 (*.md)\n└── skills/       # 技能目录 (*/SKILL.md)\n\n用户级 (~/.ai-agent/):\n├── commands/\n├── skills/\n└── plugins/\n```\n\n#### 技能文件格式\n```markdown\n---\nname: my-skill\ndescription: 技能描述\nwhen_to_use: AI 自动调用条件\nallowed-tools: [read_file, Glob]\nmodel: sonnet\n---\n技能内容。使用 $ARGUMENTS 获取参数。\n```\n\n#### CLI 命令\n```bash\n/skill list       # 列出技能\n/skill install    # 安装 (本地/GitHub)\n/skill uninstall  # 卸载\n/skill enable     # 启用\n/skill disable    # 禁用\n```\n\n### 🔒 安全特性\n- 只读模式（explore 代理）\n- 路径验证和沙箱保护\n- 危险命令拦截\n\n## 📁 项目结构\n\n```\nai-agent-cli/\n├── src/                          # 源代码目录\n│   ├── entrypoints/             # 入口点\n│   │   ├── cli.ts               # CLI 主入口\n│   │   └── index.ts             # 库导出入口\n│   │\n│   ├── core/                    # 核心逻辑（无 UI 依赖）\n│   │   ├── types.ts             # TypeScript 类型定义\n│   │   ├── loop.ts              # 主代理循环（支持并行工具执行）\n│   │   ├── agents.ts            # 子代理类型定义\n│   │   ├── prompts.ts           # 系统提示词生成\n│   │   ├── constants.ts         # 常量定义\n│   │   ├── reminder.ts          # 智能提醒管理器\n│   │   ├── planMode.ts          # 规划模式管理器\n│   │   ├── projectContext.ts    # 项目上下文管理\n│   │   └── outputStyles.ts      # 输出样式定义\n│   │\n│   ├── services/                # 服务层\n│   │   ├── ai/                  # AI 服务\n│   │   │   └── adapters/        # LLM 提供商适配器\n│   │   │       ├── base.ts      # 抽象基类\n│   │   │       ├── anthropic.ts # Anthropic Claude 适配器\n│   │   │       ├── openai.ts    # OpenAI GPT 适配器\n│   │   │       ├── gemini.ts    # Google Gemini 适配器\n│   │   │       └── factory.ts   # 适配器工厂\n│   │   ├── config/              # 配置服务\n│   │   │   ├── Config.ts        # 配置管理类\n│   │   │   ├── configStore.ts   # 配置持久化存储\n│   │   │   ├── setup.ts         # 交互式配置向导\n│   │   │   └── types.ts         # 配置类型定义\n│   │   ├── system/              # 系统服务\n│   │   │   └── security.ts      # 安全验证（路径/命令检查）\n│   │   ├── customCommands.ts    # 命令/技能加载器 (Production-grade)\n│   │   └── skillMarketplace.ts  # 技能市场 (安装/卸载/启用/禁用)\n│   │\n│   ├── tools/                   # 工具实现（按功能分组）\n│   │   ├── definitions.ts       # 工具定义（JSON Schema）\n│   │   ├── dispatcher.ts        # 工具分发器\n│   │   ├── types.ts             # 工具类型定义\n│   │   ├── filesystem/          # 文件系统工具\n│   │   │   ├── bash.ts          # Bash 命令执行\n│   │   │   ├── fileOps.ts       # 文件操作（read/write/edit）\n│   │   │   └── index.ts\n│   │   ├── search/              # 搜索工具\n│   │   │   ├── glob.ts          # 文件模式匹配\n│   │   │   ├── grep.ts          # 内容搜索\n│   │   │   └── index.ts\n│   │   ├── interaction/         # 交互工具\n│   │   │   ├── askQuestion.ts   # 用户提问\n│   │   │   ├── todo.ts          # 任务管理\n│   │   │   └── index.ts\n│   │   ├── agent/               # 代理工具\n│   │   │   ├── task.ts          # 子代理任务\n│   │   │   ├── planMode.ts      # 规划模式工具\n│   │   │   └── index.ts\n│   │   ├── ai/                  # AI 工具\n│   │   │   ├── skill.ts         # 技能加载 (Production-grade)\n│   │   │   └── index.ts\n│   │   └── network/             # 网络工具\n│   │       ├── webFetch.ts      # 网页获取\n│   │       ├── webSearch.ts     # 网络搜索\n│   │       └── index.ts\n│   │\n│   │\n│   ├── utils/                   # 通用工具\n│   │   ├── cursor.ts            # 光标和文本操作 (Immutable Cursor)\n│   │   ├── tokenCounter.ts      # Token 计数与显示 (API usage)\n│   │   ├── modelConfig.ts       # 模型参数配置\n│   │   └── externalEditor.ts    # 外部编辑器集成\n│   │\n│   └── ui/                      # UI 组件（独立于 core）\n│       ├── index.ts             # UI 模块导出\n│       ├── theme.ts             # 终端主题配置\n│       ├── utils.ts             # UI 工具函数\n│       └── components/          # UI 组件\n│           ├── Banner.ts        # 启动横幅\n│           ├── Input.ts         # 输入组件（基于 Cursor 类）\n│           ├── Logo.ts          # Logo 显示\n│           ├── Messages.ts      # 消息显示\n│           ├── Spinner.ts       # 思考动画\n│           └── ToolDisplay.ts   # 工具调用显示\n│\n├── .ai-agent/                    # 项目级技能配置\n│   ├── skills/                  # 技能目录 (*/SKILL.md)\n│   └── commands/                # 命令文件 (*.md)\n│\n├── bin/                          # 可执行文件\n│   └── ai-agent-cli.js          # CLI 入口\n│\n├── dist/                         # 编译输出（TypeScript → JavaScript）\n│\n├── .env.example                  # 环境变量示例\n├── package.json                  # 项目配置\n├── tsconfig.json                 # TypeScript 配置\n├── INSTALLATION.md               # 安装指南\n├── QUICKSTART.md                 # 快速开始\n└── README.md                     # 本文档\n```\n\n## 🚀 快速开始\n\n### 安装\n\n```bash\n# 克隆仓库\ngit clone https://github.com/your-username/ai-agent-cli.git\ncd ai-agent-cli\n\n# 安装依赖\nnpm install\n\n# 配置环境变量\ncp .env.example .env\n# 编辑 .env 文件，添加你的 API 密钥\n```\n\n### 配置 API 密钥\n\n在 `.env` 文件中配置至少一个提供商的 API 密钥：\n\n```bash\n# Anthropic Claude\nANTHROPIC_API_KEY=your_anthropic_key\n\n# OpenAI\nOPENAI_API_KEY=your_openai_key\n\n# Google Gemini\nGEMINI_API_KEY=your_gemini_key\n```\n\n### 运行\n\n```bash\n# 开发模式\nnpm run dev\n\n# 构建并运行\nnpm run build\nnpm start\n```\n\n## 💡 使用示例\n\n### 基础对话\n\n```\n>>> 帮我创建一个 TypeScript 项目\n```\n\n### 使用子代理\n\n```\n>>> 使用 explore 代理查找所有 TypeScript 文件\n```\n\n### 规划模式\n\n```\n>>> 进入规划模式，设计一个用户认证系统\n```\n\n### 网络搜索\n\n```\n>>> 搜索 React 18 的新特性\n```\n\n## ⚙️ 配置\n\n### 环境变量\n\n| 变量名 | 说明 | 必需 |\n|--------|------|------|\n| `ANTHROPIC_API_KEY` | Anthropic Claude API 密钥 | 可选 |\n| `OPENAI_API_KEY` | OpenAI API 密钥 | 可选 |\n| `GEMINI_API_KEY` | Google Gemini API 密钥 | 可选 |\n| `DEFAULT_PROVIDER` | 默认提供商 (anthropic/openai/gemini) | 否 |\n| `DEFAULT_MODEL` | 默认模型名称 | 否 |\n\n### 提供商和模型\n\n**Anthropic Claude**:\n- `claude-3-5-sonnet-20241022` (推荐)\n- `claude-3-opus-20240229`\n\n**OpenAI**:\n- `gpt-4-turbo-preview`\n- `gpt-3.5-turbo`\n\n**Google Gemini**:\n- `gemini-1.5-pro`\n- `gemini-1.5-flash`\n\n## 🛠️ 开发\n\n### 项目脚本\n\n```bash\n# 开发模式（热重载）\nnpm run dev\n\n# 构建项目\nnpm run build\n\n# 运行测试\nnpm test\n\n# 代码检查\nnpm run lint\n\n# 修复代码风格\nnpm run lint:fix\n```\n\n### 技术栈\n\n- **语言**: TypeScript 5.3+\n- **运行时**: Node.js 18+\n- **依赖管理**: npm\n- **构建工具**: tsc\n- **测试框架**: Vitest\n- **代码检查**: ESLint\n\n\n## 相关文档\n\n- [快速开始](QUICKSTART.md) - 5 分钟上手指南\n\n\n## 参考项目\n\n- [learn-claude-code](https://github.com/shareAI-lab/learn-claude-code) - 原始教育项目\n- [Kode](https://github.com/shareAI-lab/Kode) - 生产级开源Agent\n- [Agent Skills Spec](https://github.com/anthropics/agent-skills) - 官方技能规范\n\n## 致谢\n\n感谢 [shareAI Lab](https://github.com/shareAI-lab) 提供的优秀教育资源和设计理念。\n\n\n## 🌟 特别说明\n\n本项目是功能完整的生产级工具。\n\n---\n","readmeFilename":"README.md"}