GitHub Trending (API)短讯
ThariqS/ai-newtab:基于浏览器历史的每日新标签页生成器
这是一个开源项目,利用 Claude 模型根据用户的浏览器历史记录自动生成每日新标签页内容。
一个为你阅读互联网的标签页。
AI Homepage 将 Chrome 的新标签页替换为专为你生成的页面。智能代理会查看你实际浏览过的内容,以你的身份登录并打开你关注的网页,然后根据从中发现的内容撰写全新的首页。它会在后台自动重建,因此每次打开新标签页时,首页都是最新的。

插图。你的首页基于你自己的浏览记录构建,因此其中的故事会有所不同。
晨报只是其中一种风格。你可以描述任何你想要的风格,下一次生成便会遵循该风格:安静的单栏摘要、信息密集的仪表盘、黑底绿字的终端界面,或是独立杂志。
隐私优先。为了构建你的首页,该扩展程序会将你的浏览历史记录摘要(顶级域名、访问次数、部分页面标题)以及最多 8 个页面的清理后 HTML 发送至 Anthropic API,使用的是你自己的 API 密钥。这些页面是在你已登录的浏览器中加载的,因此可以包含私密内容。每次生成结束后,智能代理会话和所有上传的页面都会被删除。你的 API 密钥仅保存在扩展程序的本地存储中。更多细节请参阅 ARCHITECTURE.md。
安装
你需要 Chrome(或其他 Chromium 内核浏览器)、Node.js 20+ 以及一个 Anthropic API 密钥。
git clone https://github.com/ThariqS/ai-newtab.git
cd ai-newtab
npx pnpm@10.11.1 install
npx pnpm@10.11.1 build(如果你已经安装了 pnpm,直接运行 pnpm install && pnpm build 也可以。)
- 前往 chrome://extensions。
- 开启开发者模式(右上角)。
- 点击“加载已解压的扩展程序”,选择 apps/extension/.output/chrome-mv3。
如果 Chrome 询问是否保留更改后的新标签页,请选择“保留”。
你的第一个首页
- 打开一个新标签页,粘贴你的 Anthropic API 密钥。
- 点击“生成今日首页”。
- 观看其工作过程。进度视图会逐步展示每个步骤:准备智能代理、读取你的历史记录、在浏览器中打开页面、分析页面内容以及撰写你的首页。
首次生成需要几分钟时间。你可以在生成过程中关闭标签页,因为生成任务在扩展程序的后台工作者中运行,并且会出现在你打开的任何新标签页中。
个性化设置
在新标签页上点击 ⚙️ 设置。
指令。你在此处输入的任何内容都会纳入每次生成中,并优先于智能代理的默认设置。此框同时设定内容和风格:
| 你输入的内容 | 你将获得的效果 |
|---|---|
| “一份晨报。衬线字体,醒目的报头,头条新闻,以及一则简讯专栏。” | 大报风格的头版 |
| “一个平静的单栏。无图片。五条值得阅读的内容,每条附一行推荐理由。” | 安静的阅读列表 |
| “信息密集的仪表盘:首先是 GitHub 的 PR 和 Issue,然后是 Hacker News,最后是其他所有内容。” | 工作驾驶舱 |
| “黑底绿字的终端界面,等宽字体,宛如 1980 年代的 BBS。” | 正是如此 |
| “跳过体育和政治。始终显示天气和我的接下来三个日历事件。” | 每日遵循你的规则 |
点击“保存并重新生成”以立即应用这些设置。
模型。选择负责撰写页面的 Claude 模型:
- Claude Sonnet 5.5(默认):质量与成本的最佳平衡。
- Claude Haiku 5.5:速度最快且最便宜。
- Claude Opus 5.5:编辑最为严谨,但成本最高。
新模型将在你下次生成时生效。
自动重新生成。默认开启。一旦你的首页超过你设定的间隔时间(6、12、24 或 48 小时),扩展程序便会在后台静默地重新生成它。它仅在手动生成过一次后才会启动,并且在失败后不会重试,直到下一个间隔周期才开始,因此永远不会陷入循环。
↻ 点击右上角的“重新生成”可立即执行重新生成。
须知
- 成本。每次构建都是一个单独的代理会话,费用计入你的 API 密钥。具体花费取决于所选模型以及它读取的内容量。Haiku 是最便宜的选择,你可以关闭自动重建功能,仅在需要时进行构建。
- 可见范围。它会对你历史记录中的网站进行排名,每次构建最多打开其中的 8 个。它会跳过搜索引擎、网络邮箱、银行页面以及已登出的营销页面。任何无法打开的内容都会被报告,而不是被隐藏。
- 链接真实有效。页面上的每个链接都来自代理实际阅读过的页面。系统明确指示其不得捏造 URL。
- 中断的构建。如果 Chrome 在构建过程中关闭,新标签页会在下次提供“恢复中断的构建”选项。
- 更新。拉取新代码后,再次运行
npx pnpm@10.11.1 build,然后在chrome://extensions中点击扩展的重载图标。
工作原理
- getHistory:代理获取你访问频率最高的域名的排名摘要。
- getPageHtml:它选择最多 8 个页面,扩展程序会在后台窗口中打开这些页面,清理内容,并将其作为文件挂载到代理的沙箱中。
- grep / read:代理从其沙箱内的这些文件中提取标题、帖子和链接。
- write:它编写一个 React 组件,新标签页会渲染该组件。
扩展程序的后台工作进程直接驱动 Claude Managed Agents 会话,中间没有服务器介入。两个自定义工具在扩展程序中运行,因为它们需要访问 chrome.history 和 chrome.tabs。其他所有操作都在代理的沙箱中进行,其中 shell 访问处于禁用状态:抓取到的页面被视为不可信输入。
有关事件流、布局以及值得注意的注意事项,请参阅 ARCHITECTURE.md。
开发环境
packages/agent-core 代理循环:主机无关,不包含 chrome.* 或 node:*
apps/extension MV3 扩展程序(基于 WXT + React)
harness 在 Chrome 之外运行 agent-core 并测试构建好的扩展程序的 Bun 脚本pnpm dev # 使用 WXT 进行热重载
pnpm typecheck # 检查所有包
pnpm test # 单元测试(无 API 调用;需要 Bun)
pnpm extension:test # 将构建好的扩展程序加载到无头 Chrome 中(无 API 调用)
cp .env.example .env # 添加 ANTHROPIC_API_KEY,然后执行:
pnpm agent:run # 针对真实 API 进行完整构建,并使用示例历史数据
pnpm agent:verify # 检查输出是否确实能正确渲染状态
早期且处于实验阶段。这是一个由你自己使用自己的密钥运行的工具。不要将其原样发布到应用商店:任何能够访问浏览器配置文件的人都可以读取存储的 API 密钥。
许可证
译文已达到本站中文翻译的字数上限,剩余内容请查看原文。