{"_id":"@alexjza/xht","_rev":"3-69487d813e3d471a5bae71f00a310d02","name":"@alexjza/xht","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@alexjza/xht","version":"1.0.0","keywords":["cli","ai","agent","multi-agent","coding-assistant","claude","anthropic","llm"],"author":{"name":"jinzhean","email":"hibehero@gmail.com"},"license":"ISC","_id":"@alexjza/xht@1.0.0","maintainers":[{"name":"alexjza","email":"hibehero@gmail.com"}],"bin":{"xht":"dist/cli.js"},"dist":{"shasum":"57e685de6152e7493a82cffec0228cbcff91d3d0","tarball":"https://registry.npmjs.org/@alexjza/xht/-/xht-1.0.0.tgz","fileCount":37,"integrity":"sha512-YDUwuai8M1hqeg55+aUXFHwUXTu6Ik9jgvMAyC+91aBKuJsZaqEUICVYfvmYqvuPKeor3kgSfAN1SplAPYn4sw==","signatures":[{"sig":"MEYCIQCeDmmMJYAsqIw/VEH0+UDpqudvbXZtdRpeNfXSl+kvCQIhALeU9fHhcKBaUobqxhT/e1mrJDjDNnaZxVfl30i/lEHB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71935},"type":"module","engines":{"node":">=18"},"gitHead":"f4c2e0e8e08ca7a50b5d7dd3bab9962b61b24437","scripts":{"xht":"tsx src/cli.ts","eval":"tsx src/eval/run-ci.ts","test":"node --import tsx/esm --test test/*.test.ts","build":"tsc -p tsconfig.build.json","eval:ci":"tsx src/eval/run-ci.ts --baseline src/eval/baseline.json --min-pass-rate 0.75","typecheck":"tsc --noEmit","test:watch":"node --import tsx/esm --test --watch test/*.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexjza","email":"hibehero@gmail.com"},"_npmVersion":"10.9.3","description":"xht —— 一个命令行编程助手（mini Claude Code），由《从零设计生产级 Multi-Agent Harness》组装而成。","directories":{"doc":"docs"},"_nodeVersion":"22.18.0","dependencies":{"zod":"^4.4.3","@anthropic-ai/sdk":"^0.100.1","zod-to-json-schema":"^3.25.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/xht_1.0.0_1780649010226_0.32389604936258953","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexjza/xht","version":"1.0.1","keywords":["cli","ai","agent","multi-agent","coding-assistant","claude","anthropic","llm"],"author":{"name":"jinzhean","email":"hibehero@gmail.com"},"license":"ISC","_id":"@alexjza/xht@1.0.1","maintainers":[{"name":"alexjza","email":"hibehero@gmail.com"}],"homepage":"https://github.com/hibehero/xht#readme","bugs":{"url":"https://github.com/hibehero/xht/issues"},"bin":{"xht":"dist/cli.js"},"dist":{"shasum":"8b444729e5d7a7fd46a802f7fdfeb7b825556239","tarball":"https://registry.npmjs.org/@alexjza/xht/-/xht-1.0.1.tgz","fileCount":37,"integrity":"sha512-58nDZBZ/enCtFx62GhLTUXQVpbddEFBPbnqPcKpqfiEVMYH4akDeTgTJimZfv36ILeia48LvshE/VMEiOC3iRA==","signatures":[{"sig":"MEQCIGOtqrKMIZUta7AwCoKaLiWA+mOI6S8P+8+T3/Og+wVfAiBfkerQB/GIGxbpSwkMI/M56kSbaoE7DoDRfSO1SW1uXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72151},"type":"module","engines":{"node":">=18"},"gitHead":"ff9f383fe7f65853851ee1dc0cfc21f576be5f10","scripts":{"xht":"tsx src/cli.ts","eval":"tsx src/eval/run-ci.ts","test":"node --import tsx/esm --test test/*.test.ts","build":"tsc -p tsconfig.build.json","eval:ci":"tsx src/eval/run-ci.ts --baseline src/eval/baseline.json --min-pass-rate 0.75","typecheck":"tsc --noEmit","test:watch":"node --import tsx/esm --test --watch test/*.test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexjza","email":"hibehero@gmail.com"},"repository":{"url":"git+https://github.com/hibehero/xht.git","type":"git"},"_npmVersion":"10.9.3","description":"xht —— 一个命令行编程助手（mini Claude Code），由《从零设计生产级 Multi-Agent Harness》组装而成。","directories":{"doc":"docs"},"_nodeVersion":"22.18.0","dependencies":{"zod":"^4.4.3","@anthropic-ai/sdk":"^0.100.1","zod-to-json-schema":"^3.25.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/xht_1.0.1_1780649179839_0.883295921271436","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexjza/xht","version":"1.0.2","description":"xht —— 一个命令行编程助手（mini Claude Code），由《从零设计生产级 Multi-Agent Harness》组装而成。","bin":{"xht":"dist/cli.js"},"engines":{"node":">=20"},"directories":{"doc":"docs"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build","release":"node scripts/release.mjs","xht":"tsx src/cli.ts","test":"node --import tsx/esm --test test/*.test.ts","test:watch":"node --import tsx/esm --test --watch test/*.test.ts","typecheck":"tsc --noEmit","eval":"tsx src/eval/run-ci.ts","eval:ci":"tsx src/eval/run-ci.ts --baseline src/eval/baseline.json --min-pass-rate 0.75"},"keywords":["cli","ai","agent","multi-agent","coding-assistant","claude","anthropic","llm"],"author":{"name":"alex","email":"hibehero@gmail.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/hibehero/xht.git"},"homepage":"https://github.com/hibehero/xht#readme","bugs":{"url":"https://github.com/hibehero/xht/issues"},"type":"module","dependencies":{"@anthropic-ai/sdk":"^0.100.1","zod":"^4.4.3","zod-to-json-schema":"^3.25.2"},"devDependencies":{"@types/node":"^25.9.1","tsx":"^4.22.4","typescript":"^6.0.3"},"_id":"@alexjza/xht@1.0.2","gitHead":"52d53532a6e3b57827f7e84e69707ff95d10f927","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-jfkM1b+dp7CkdtJ8d4xHF4Gody62HnvXYfej8j4Q5Upxy19Cz2JxR1DWsXCkr7ZI5Wr5KhYRYBE30w8Y+cXUaQ==","shasum":"b8e3f5977080823311a8db853efe1e43f7a4677d","tarball":"https://registry.npmjs.org/@alexjza/xht/-/xht-1.0.2.tgz","fileCount":38,"unpackedSize":71298,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE9jYTvQGVst+3N22e+sSCqeRXeqvoV22MQIrz3Iuvs5AiB5Y7liH7+2aTuFUafxjLJovaEvgn10LOu9X9LZM47qbA=="}]},"_npmUser":{"name":"alexjza","email":"hibehero@gmail.com"},"maintainers":[{"name":"alexjza","email":"hibehero@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xht_1.0.2_1780651925682_0.4062579755694924"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T08:43:30.071Z","modified":"2026-06-05T09:32:06.262Z","1.0.0":"2026-06-05T08:43:30.373Z","1.0.1":"2026-06-05T08:46:20.010Z","1.0.2":"2026-06-05T09:32:05.834Z"},"bugs":{"url":"https://github.com/hibehero/xht/issues"},"author":{"name":"alex","email":"hibehero@gmail.com"},"license":"ISC","homepage":"https://github.com/hibehero/xht#readme","keywords":["cli","ai","agent","multi-agent","coding-assistant","claude","anthropic","llm"],"repository":{"type":"git","url":"git+https://github.com/hibehero/xht.git"},"description":"xht —— 一个命令行编程助手（mini Claude Code），由《从零设计生产级 Multi-Agent Harness》组装而成。","maintainers":[{"name":"alexjza","email":"hibehero@gmail.com"}],"readme":"# xht · 命令行编程助手（mini Claude Code）\n\n[![npm](https://img.shields.io/npm/v/@alexjza/xht.svg)](https://www.npmjs.com/package/@alexjza/xht)\n[![node](https://img.shields.io/node/v/@alexjza/xht.svg)](https://nodejs.org)\n\n> 一个跑在终端里的 AI 编程助手：像 Claude Code 一样**先启动、再输入问题**，多轮对话、上下文跨轮累加。它会读写文件、跑命令、联网搜索、按需向你要权限，完成后汇报结果——崩了能续跑，每一步花了多少钱都看得见。\n\n## ✨ 能做什么\n\n- 💬 **对话 + 自主行动**：理解任务，自己决定调哪些工具、调几次\n- 📁 **读写 / 编辑文件**：`read_file` / `write_file` / `edit_file` / `list_dir`\n- 🖥️ **执行 shell 命令**：跑测试、装依赖、git——危险操作先问你\n- 🌐 **联网搜索**：拿最新信息（需 Tavily 密钥）\n- 🤝 **拆子任务**：大任务派给隔离上下文的只读调研子 agent\n- 🔒 **安全可控**：危险命令拦截 + 审批门 + 只读 / 默认 / 自动三模式\n- 💾 **会话可续跑**：关掉再开 `--resume` 接着干\n- 🔍 **可观测、能算钱**：每步、每次 API 调用的 token 与花费都看得见\n- 🛡️ **抗抖动**：限流 / 超时 / 流式中断自动恢复\n\n## 🚀 安装\n\n要求 **Node.js ≥ 20**。\n\n```bash\nnpm i -g @alexjza/xht\n```\n\n或从源码构建：\n\n```bash\ngit clone https://github.com/hibehero/xht.git && cd xht\nnpm install && npm run build && npm link\n```\n\n## ⚡ 快速上手\n\n```bash\nexport ANTHROPIC_API_KEY=sk-ant-...      # PowerShell: $env:ANTHROPIC_API_KEY=\"sk-ant-...\"\n\nxht                                       # 进交互界面，输入任务开始（推荐）\nxht \"把 README 加一个安装章节\"             # 带任务启动，跑完留在会话里继续追问\nxht \"列出 src 目录结构\" --once             # 单发：跑完即退（适合脚本 / CI）\nxht --resume <会话ID>                      # 恢复历史会话\n```\n\n执行期间默认只显示人话进度，结束给出回答；想看完整执行 trace 加 `--verbose`。\n\n## ⚙️ 配置\n\n| 变量 | 必填 | 说明 |\n|------|:---:|------|\n| `ANTHROPIC_API_KEY` | ✅ | API 密钥 |\n| `ANTHROPIC_BASE_URL` | — | 自定义端点（网关 / 代理 / 自建中转） |\n| `ANTHROPIC_MODEL` | — | 默认模型，缺省 `claude-sonnet-4-6`（也可 `--model` 覆盖） |\n| `TAVILY_API_KEY` | — | 启用 `web_search`（[免费注册](https://app.tavily.com)）；不配则该工具返回提示、其余功能照常 |\n\n可设系统环境变量，或在**运行目录**放 `.env`（优先级更高）。完整说明见 [docs/USAGE.md](docs/USAGE.md)。\n\n## 📋 命令与参数\n\n```\nxht                      启动交互界面\nxht \"<任务>\"             带任务启动，跑完进交互\nxht \"<任务>\" --once       单发，跑完即退\nxht --resume <会话ID>     恢复历史会话\n```\n\n| 参数 | 默认 | 说明 |\n|------|------|------|\n| `--mode` | `default` | 权限模式：`readOnly` / `default` / `auto` |\n| `--model` | `claude-sonnet-4-6` | 模型 ID：`claude-opus-4-8` / `claude-sonnet-4-6` / `claude-haiku-4-5` |\n| `--max-cost` | `5` | **整个会话**累计费用上限（美元），触顶即停 |\n| `--verbose` / `-v` | 关 | 打印完整执行 trace（步号、入参、token、费用、延迟） |\n\n交互内置命令：`/help`、`/cost`、`/mode <模式>`、`/exit`。\n\n## 许可证\n\nISC © alex\n","readmeFilename":"README.md"}