{"id":51020726,"url":"https://github.com/freedom-shen/chrome-html-read","last_synced_at":"2026-06-21T16:01:09.282Z","repository":{"id":365633451,"uuid":"1273014910","full_name":"freedom-shen/chrome-html-read","owner":"freedom-shen","description":"🌐 Read content from your already-open Chrome tabs into AI agents. No scraping, no re-login. macOS AppleScript + Chrome.","archived":false,"fork":false,"pushed_at":"2026-06-18T06:58:54.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T08:21:29.761Z","etag":null,"topics":["applescript","browser-automation","chrome","claude-code","llm","macos","mcp","skill"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freedom-shen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-18T06:17:08.000Z","updated_at":"2026-06-18T06:58:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/freedom-shen/chrome-html-read","commit_stats":null,"previous_names":["freedom-shen/chrome-html-read"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/freedom-shen/chrome-html-read","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedom-shen%2Fchrome-html-read","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedom-shen%2Fchrome-html-read/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedom-shen%2Fchrome-html-read/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedom-shen%2Fchrome-html-read/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freedom-shen","download_url":"https://codeload.github.com/freedom-shen/chrome-html-read/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedom-shen%2Fchrome-html-read/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34616512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["applescript","browser-automation","chrome","claude-code","llm","macos","mcp","skill"],"created_at":"2026-06-21T16:01:08.195Z","updated_at":"2026-06-21T16:01:09.277Z","avatar_url":"https://github.com/freedom-shen.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chrome-html-read 🌐\n\n\u003e Read content from your **already-open Chrome tabs** and bring it into your AI agent / LLM.\n\u003e No scraping. No re-login. No headless browser.\n\n一个 macOS 上的小工具集 + Skill,让 AI(Claude Code / Codex / Cursor / ZCode / 任何终端 LLM)能**直接读取你浏览器里已经打开的网页内容**——包括你已登录的、需要 session/cookie 才能访问的页面。\n\n底层是 AppleScript + Chrome 的「允许 Apple 事件中的 JavaScript」能力,纯本地、纯读取、零网络。\n\n## ✨ 为什么需要它\n\n传统的\"让 AI 读网页\"方案有几个痛点:\n\n| 痛点 | 传统方案 | chrome-html-read |\n|------|---------|------------------|\n| 需要登录的页面 | curl/WebFetch 拿不到 | ✅ 复用你的登录态 |\n| SPA / 动态渲染 | 拿到的是空壳 HTML | ✅ 拿到渲染后的 DOM |\n| 内网 / 付费内容 | 外部服务访问不到 | ✅ 本机直接读 |\n| 隐私 | 把 URL 发给第三方 | ✅ 内容只在你本机 |\n\n## 🚀 快速开始\n\n### 1. 安装\n\n```bash\ngit clone https://github.com/freedom-shen/chrome-html-read.git\ncd chrome-html-read\n./install.sh\n```\n\n### 2. 开启 Chrome 的 JS 权限(一次性)\n\nChrome 菜单栏 → **查看 → 开发者 → 允许 Apple 事件中的 JavaScript**\n\n\u003e 英文菜单: `View → Developer → Allow JavaScript from Apple Events`\n\n### 3. 用起来\n\n```bash\n# 列出所有打开的 tab\nchrome-tabs\n\n# 读取某个 tab 的正文(默认 innerText)\nchrome-read 1.5              # 第 1 窗口第 5 tab\nchrome-read \"browser-use\"    # 按关键字匹配\n\n# 读取并截断(喂给 LLM 时推荐)\nchrome-read 2.3 --max 8000\n\n# 在所有 tab 里搜索关键字\nchrome-search \"登录\"\n```\n\n## 📖 命令参考\n\n### `chrome-tabs` — 列出打开的标签\n\n```bash\nchrome-tabs                  # 标题 + URL,带编号 [win.tab]\nchrome-tabs --urls           # 只列 URL\nchrome-tabs --json           # JSON 格式\nchrome-tabs \"github\"         # 按关键字过滤\n```\n\n### `chrome-read` — 读取指定 tab 内容\n\n```bash\nchrome-read 2.3              # 第 2 窗口第 3 tab 的正文\nchrome-read browser-use      # 关键字匹配第一个命中\nchrome-read 2.3 html         # 输出完整 outerHTML\nchrome-read 2.3 --copy       # 复制到剪贴板\nchrome-read 2.3 --max 8000   # 截断到 8000 字符(防 token 爆炸)\n```\n\n### `chrome-search` — 跨 tab 搜索\n\n```bash\nchrome-search \"Tuya\"         # 搜所有 tab,带上下文\nchrome-search error --urls   # 只输出命中的 URL\n```\n\n## 🤖 作为 Skill 使用\n\n本仓库的 `SKILL.md` 遵循 [Superpowers](https://github.com/obra/superpowers) 的 Skill 规范,安装后会自动注册到:\n\n- `~/.claude/skills/chrome-html-read/` — Claude Code\n- `~/.agents/skills/chrome-html-read/` — Codex / ZCode\n- `~/.codex/superpowers/skills/chrome-html-read/` — Superpowers\n\n注册后,在 Claude Code / ZCode 里你可以直接说:\n\n- \"看看我浏览器里打开了哪些网页\"\n- \"读一下我现在开的那个 GitHub 仓库页面\"\n- \"在我打开的网页里搜一下'部署文档'\"\n- \"总结一下我当前看的这篇文章\"\n\nAgent 会自动调用 `chrome-tabs` / `chrome-read` 完成任务。\n\n## 🔒 安全与隐私\n\n- **纯读取**: 三个脚本都不会点击、输入、导航,只读 DOM。\n- **纯本地**: 内容通过 AppleScript 在本机传递,不发送任何外部服务。\n- **复用 session**: 因为读的是你已打开的浏览器,所以登录态天然可用。\n- **不含 telemetry**: 没有任何埋点、上报。\n\n## 🛠 工作原理\n\n```\n你的 Chrome (已登录、已渲染)\n       │\n       │  AppleScript (osascript)\n       ▼\nchrome-* 脚本 (本机执行)\n       │\n       │  stdout\n       ▼\n你的 AI agent / LLM\n```\n\n关键 API 是 Chrome 的 `execute [tab] javascript \"...\"` AppleScript 命令,需要在 Chrome 里手动开启权限(见上文)。\n\n## 📋 系统要求\n\n- **macOS**(用了 AppleScript)\n- **Google Chrome**(不支持 Safari/Edge/Firefox,它们的 AppleScript 字典不同)\n- 任何支持 shell 命令的 AI agent(Claude Code / Codex / ZCode / Cursor 等)\n\n## ❓ 常见问题\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e报错:\"通过 AppleScript 执行 JavaScript 的功能已关闭\"\u003c/b\u003e\u003c/summary\u003e\n\nChrome 没开 JS-from-Apple-Events。菜单: **查看 → 开发者 → 允许 Apple 事件中的 JavaScript**。\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e读到的内容是旧的 / 不完整\u003c/b\u003e\u003c/summary\u003e\n\n某些 SPA 页面 tab 切换后会休眠。先在 Chrome 里手动激活那个 tab 让它刷新,再读。或者用 `chrome-read \u003cidx\u003e html` 看看是不是 DOM 还没渲染。\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003etab 编号变了\u003c/b\u003e\u003c/summary\u003e\n\ntab 顺序会随开关变化。每次读取前不确定的话,先跑一次 `chrome-tabs` 确认编号。\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e能支持 Safari 吗?\u003c/b\u003e\u003c/summary\u003e\n\n技术上可以,Safari 的 AppleScript 字典也支持 `do JavaScript`,但需要在 Safari → 开发 → 允许远程自动化。本仓库暂不提供,欢迎 PR。\n\n\u003c/details\u003e\n\n## 📄 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedom-shen%2Fchrome-html-read","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreedom-shen%2Fchrome-html-read","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedom-shen%2Fchrome-html-read/lists"}