dennisonbertram/website-to-cli
GitHub: dennisonbertram/website-to-cli
一个 Claude Code agent skill,通过捕获浏览器 HAR 流量并分析网站私有 API,自动生成零依赖的类型化终端客户端。
Stars: 3 | Forks: 0
# website-to-cli
**将任何网站变成快速、美观的命令行客户端。**
一个 [Claude Code](https://claude.com/claude-code) / agent skill,它会**一次性**驱动浏览器来学习网站的私有 API,然后生成一个类型化的终端客户端,直接调用这些 endpoint —— 比浏览器自动化更快、可脚本化,并且可以通过管道传递给 `jq`。
🌐 **[落地页与演示 →](https://dennisonbertram.github.io/website-to-cli/)**
## 安装
使用 [skills.sh](https://skills.sh) —— 只需一条命令:
```
# 安装到当前项目,适用于 Claude Code
npx skills add dennisonbertram/website-to-cli -a claude-code
# …或者全局安装,在每个项目中均可用
npx skills add dennisonbertram/website-to-cli -a claude-code -g
# 无需安装即可查看 repo 中的内容
npx skills add dennisonbertram/website-to-cli --list
```
skills.sh 支持 70 多种 agent(Claude Code、Codex、Cursor、OpenCode 等)—— 将 `-a claude-code` 替换为你的 agent,或者省略 `-a` 以交互方式选择。
**手动安装:** 将 `skills/website-to-cli/` 复制到你 agent 的 skills 目录中(例如,项目级使用 `.claude/skills/`,全局使用 `~/.claude/skills/`)。
## 使用
安装完成后,只需向你的 agent 提问:
```
make a CLI for news.ycombinator.com
build me a client for the crates.io API
turn this site into a command-line tool:
```
该 skill 会运行分为三个阶段的方法:
| 阶段 | 发生的操作 | 工具 |
| --- | --- | --- |
| **1. 捕获** | 通过无头或有头浏览器操作你想要的功能;将所有流量记录到 HAR 中(包含响应正文 + session)。 | `scripts/capture.ts` |
| **2. 分析** | 剔除分析/静态噪音;恢复真实的 endpoint —— 方法、路径模板、参数、请求/响应结构、auth 标头。 | `scripts/analyze-har.ts` |
| **3. 构建** | 填充一个零依赖、美观的 CLI 模板,指向这些 endpoint。默认带有颜色和对齐;使用 `--json` 输出精确的 JSON。 | `templates/cli.ts` |
浏览器仅在阶段 1 中使用。生成的 CLI 不再需要它。
## 效果展示
该 skill 为 **crates.io**(Rust 包注册表)构建的 CLI,基于捕获的三个页面加载操作 —— 搜索、crate 详情、版本:
```
$ crates info tokio
crate tokio 1.53.0
description An event-driven, non-blocking I/O platform for writing async apps.
downloads 810,732,335 (190,888,616 recent)
homepage https://tokio.rs
repository https://github.com/tokio-rs/tokio
$ crates search serde --json | jq -r '.[0] | "\(.name) \(.downloads)"'
serde 1174796480
```
默认美观;`--json` 输出精确、无颜色的 JSON,因此可以直接通过管道传递给 `jq`。在 [`examples/`](examples/) 中有两个可运行的示例:`crates.ts` 和 `hn.ts`(Hacker News 搜索)。
## 本仓库包含的内容
```
skills/website-to-cli/ the skill (installed by skills.sh)
SKILL.md the three-phase method
scripts/capture.ts headed + headless (--auto) HAR recorder
scripts/analyze-har.ts HAR → clean endpoint map (has --self-test)
templates/cli.ts zero-dependency beautiful CLI skeleton
reference/ capture recipes & the CLI aesthetic
examples/ crates.ts, hn.ts — real CLIs the skill produced
docs/ the GitHub Pages landing page
```
## 环境要求
- [Bun](https://bun.sh)(脚本和模板原生支持 Bun;CLI 模板为零 npm 依赖)。
- 用于捕获的 [Playwright](https://playwright.dev) —— `bun add -D playwright && bunx playwright install chromium`(仅首次运行需要)。或者跳过这一步,直接从浏览器的 DevTools 导出 HAR(“Save all as HAR with content”)。
## 负责任的使用
本项目用于恢复网站的*未记录* API 并将其自动化。仅捕获你拥有或被允许自动化的网站,尊重每个网站的服务条款,切勿绕过 auth、付费墙或机器人防御机制。捕获的 cookie/token 应存放在 `.env`(被 git 忽略)中,切勿硬编码在代码中。
## 许可证
MIT —— 见 [LICENSE](LICENSE)。
标签:SOC Prime, TypeScript, 安全插件, 开发工具, 特征检测, 自动化代码生成, 自动化攻击