Pickoo!

当前版本:0.2.3

把有趣的,都扔进来。

一个为创作者做的、可以玩的本地收藏夹 Agent。

Pickoo 是一个本地优先的创作收藏工作台。界面采用“卡片堆 → 分组展开 → 单条阅读”的桌面式浏览,数据层使用可编辑 Markdown 与证据包,不绑定内容平台。

产品特色

本地优先,Agent 原生

原文、媒体、逐字稿和拆解结果保存在用户自己的本地资料库中,以可编辑 Markdown 与证据包作为长期入口。Codex、WorkBuddy、Hermes、Claude 和 Claudian 共用同一份资料与任务状态,可以直接继续检索、分析和创作,不必在不同 AI 工具之间反复上传材料。

Pickoo 会优先复用用户已有的 Agent、本机 OCR 和 ASR 能力,不强制绑定 Pickoo 自有的云端 AI 服务。实际成本仍取决于用户选择的 Agent、模型和本机运行环境;“本地优先”也不代表抓取公开链接时完全离线。

收藏动作足够随手

在 Pickoo 中粘贴链接,或把公开可访问的链接和平台分享文字直接交给已经接入的 Agent。通过 Hermes 等消息入口,还可以从微信或飞书提交内容;不同入口最终进入同一个任务中心和本地资料库。

Pickoo 负责识别来源、查重、抓取和后续处理。平台登录、会员、DRM、地区与访问限制仍然有效;无法完整取得的内容会明确显示为待复核、部分完成或失败。

为创作者拆内容,而不只做摘要

视频和播客可以生成带时间戳的逐字稿与语义章节,图片可以执行 OCR。每条来源还可以继续提炼 金句 / 观点 / 钩子 / 结构 / 图像 / 镜头 六类创作资产;只有经过证据复核、达到质量门槛的候选才进入资产库。

可选的说话人分离可以区分访谈中谁在什么时候发言,并支持人工改名与跨集记忆。它不等同于无依据地自动确认真实身份,结果仍受质量门约束。

保留原始证据,方便继续调用

Pickoo 不用一段 AI 总结替代原内容。原始正文、图片、音视频、作者与来源和后续 OCR、ASR、章节、资产拆解分层保存;拆解结果可以回到对应原文、图像、时间段或镜头。Agent 因此既能调用结论,也能核对结论从哪里来。

收藏也可以是一场探索游戏

用户可以收藏单张图片、视频单帧和镜头片段,补充标签、批注和自己的偏好。成就系统会根据收藏、整理和探索行为解锁徽章,让资料库逐渐长成一张个人兴趣地图,而不只是另一份等待清理的收藏列表。

完整功能与用户使用见本页;开发环境见 开发说明,模块关系见 架构说明,文件、网络、浏览器及 Agent 权限见 权限与隐私,安全报告方式见 SECURITY.md

已支持

  • 右下角浮动 只接收链接或平台分享文字;Agent 自动识别、查重并分配抓取任务。已抓过会明确提示,不重复收藏。
  • Codex、WorkBuddy、Hermes、Claude 和 Claudian 的直接收藏与前端共用同一任务中心;任务卡保留 Agent、微信/直连入口、阶段、心跳和最终 Markdown 位置。
  • 小红书图文/视频、公开收藏夹、公众号、抖音、B站、普通网页、小宇宙和网易云音乐单曲元数据。
  • 网易云分享短链与标准歌曲链接会按 song ID 归一化去重;默认仍使用匿名公开链路。
  • 设置中点击“登录网易云”会自动打开官方登录页;登录后回到 Pickoo 点“已登录,确认连接”,即可自动启用音频补全,无需复制网址或 Cookie。启用后仅尝试下载平台对当前账号正式返回的音源,失败则回退公开播放或保持部分完成;不绕过会员、版权、地区、签名、DRM 或播放限制。
  • 网易云登录态保存在本机 ~/.config/pickoo/netease-session.json0600),不会进入共享设置、Markdown、资料包或前端 API 响应。
  • 内置 creator-content-ingest,统一完成抓取、媒体下载、OCR、ASR 与质量门。
  • 自动读取已有 Obsidian 高质量输入包,不搬家、不重复存储。
  • 搜索标题、正文、作者与标签;收藏夹和全部标签在同一侧栏,支持搜索、排序、置顶、改名/图标和删除。
  • 顶栏支持 全文 / 播客+音乐 / 金句+观点 / 钩子+结构 / 图像+镜头 切换:“播客”特指小宇宙内容;组内可单选或双选,组间互斥。
  • 首页固定五列等宽紧凑排版;正文普通卡两档高度,音频为独立短卡,六类资产卡也只有两档高度。
  • 显示 完整 / 待复核 / 部分完成 / 失败,保留原链接和本地证据包。
  • 每篇内容以 manifest.document.path 指向的系统长文件名 Markdown 作为人类可编辑入口;六类资产的机器事实源为 evidence/assets/assets.json (creator-assets/v1)。
  • 视频/小宇宙播客/音频详情按“语义章节名+连续整段逐字稿+起止时间”阅读并跳播;文章按“语义章节名+连续原文段落”阅读,不把摘要冒充正文。
  • 每条来源可产出 金句 / 观点 / 钩子 / 结构 / 图像 / 镜头 六类资产,但只有经证据复核的 strong/useful 候选才会 admitted,不为凑数晋级。
  • Obsidian 修改会在详情页自动刷新;前端编辑会原子写回同一文件,并通过版本哈希阻止并发覆盖。
  • 设置可选择“跟随来源包”或“集中阅读”:集中模式会在一个目录生成标题可读的 Markdown 视图,按 favorite_id 与来源包双向同步,并在双侧同时修改时先保存冲突备份。
  • 修改资料库根目录时会先拒绝仍在运行的任务,再整体迁移来源包与跟随目录、重定位历史任务路径;设置写入或路径校验失败会回滚目录和任务记录。

启动

需要 Node.js 20+。完整媒体处理还需要 Python 3.10+、ffmpeg/ffprobe 和 yt-dlp。

npm ci
python3 -m pip install -r skill-source/creator-content-ingest/requirements.txt
npm start

这一步只安装基础抓取依赖。设置页会先复用通过验证的本机 ASR/OCR;只有缺失时,才分别安装 requirements-asr.txtrequirements-ocr.txt 到仓库外的隔离环境。

macOS 可双击 start.command,Windows 可双击 start-windows.cmd。也可以运行:

npm start

然后打开 http://127.0.0.1:4324

Agent Skill

同一份抓取 Skill 和资产处理 Skill 已安装到:

  • ~/.codex/skills/save-to-favorites
  • ~/.workbuddy/skills/save-to-favorites
  • ~/.hermes/skills/social-media/save-to-favorites
  • ~/.claude/skills/save-to-favorites
  • ~/.codex/skills/asset-review-agent
  • ~/.workbuddy/skills/asset-review-agent
  • ~/.hermes/skills/social-media/asset-review-agent

creator-content-ingest 与独立的 asset-review-agent 可在设置页直接接入 Codex、WorkBuddy、Hermes、Claude,或通过 PICKOO_OBSIDIAN_VAULT 指定的 Claudian Skill 目录。点击 Agent 卡片即安装或断开;它们共用 ~/.config/pickoo/settings.json,不会各自保存一套路径配置。

断开 Agent 时,Pickoo 会把自己管理的三个 Skill 移到 ~/.config/pickoo/disconnected-skills/。跨 iCloud Drive 边界无法原子移动时,会先复制并逐文件校验哈希,确认备份完整后才删除原目录。

ASR 与 OCR 都先验证本机已有能力,包括显式配置、Pickoo/项目/Agent 环境和系统 Python。ASR 复用可用的 MLX Whisper 或 Faster-Whisper;OCR 在 macOS 优先复用 Apple Vision,在其他兼容系统复用已有 RapidOCR + ONNX Runtime。只有找不到通过运行检查的后端时,设置页才创建 Pickoo 隔离环境:Apple 芯片 Mac 安装 MLX Whisper,Intel Mac 和 Windows x64 安装 Faster-Whisper CPU int8;Windows/Linux OCR 安装 RapidOCR ONNX。不同后端写入相同的证据、置信度与复核结构。任务处理中不会临时安装依赖;Pickoo 管理的组件位于 ~/.cache/creator-content-ingest/asr-runtime/~/.cache/creator-content-ingest/ocr-runtime/

RED Skill 可移植包由 npm run release:redskill 生成。完整包包含前端、本地服务和三个 Agent Skill;为满足平台单文件 10MB、总包 30MB 的限制,RED Skill 版本不携带 27MB 手写字体,动态卡片映射系统宋体,品牌圆体映射保持不变。三个 Agent 都应调用 Skill 内的 scripts/save_link.py,不要绕过重复检查直接调用底层抓取器。

ASR 词典

  • 仓库只提交 skill-source/creator-content-ingest/assets/asr-lexicon.seed.json,它是新安装时的只读初始词汇,不是个人或团队积累的数据。
  • 运行时词典默认在 $XDG_CONFIG_HOME/creator-content-ingest/asr-lexicon.json;未设置 XDG_CONFIG_HOME 时为 ~/.config/creator-content-ingest/asr-lexicon.json
  • 容器、部署环境或需要共用词汇的团队,请设置 CREATOR_INGEST_ASR_LEXICON=/managed/path/asr-lexicon.json。该路径应指向受管理的配置卷或仓库外的共享存储。
  • 词典不使用软链接、~/.codex 路径或另一个项目目录作为存储位置或模块导入来源。每个兼容 Skill 自带相同的读取模块和种子词表,但指向同一个由环境决定的运行时词典。

数据边界

  • 新收藏写入用户在设置中选择的资料库;未配置时默认使用 ~/Documents/Pickoo Library。每条以 来源-渠道-短标题-短作者-日期.md 作为唯一可编辑内容文档,确切文件名记录在 manifest.document.path
  • Codex、WorkBuddy、Hermes、Claude 安装同一个 save-to-favorites Skill 并共享这个目录。
  • 集中阅读模式不会搬走证据包;它维护一个可连续浏览的 Markdown 视图,来源包仍是 Agent 的提交边界。

可选的播客说话人分离不影响基础抓取和逐字稿。需要时一次性运行:

bash skill-source/save-to-favorites/scripts/install_speaker_runtime.sh

安装器会在 ~/.cache/creator-content-ingest/speaker-diarization/ 创建独立 Python 环境,并下载 sherpa-onnx 官方分段模型与中文说话人 embedding 模型。普通用户不安装时,播客仍正常生成章节和语义/停顿段落,只是不显示 A/B/C、改名和跨集声纹记忆。自动增强需显式设置 CREATOR_INGEST_ENABLE_DIARIZATION=1,避免长音频声纹计算阻塞默认流程。说话人层默认只接受 1–5 人;访谈有明确双人证据时可固定为 2 人,超过 5 个聚类会被隔离为待复核结果,不进入正文。

  • 分组、隐藏偏好和任务队列写在外部运行目录;macOS 默认为 ~/Library/Application Support/Pickoo,不会进入源码仓库或发布包。
  • “从桌面移除”只隐藏卡片,不删除证据包。
  • 小红书公开收藏夹先展开目录,再逐条尝试单篇解析;某篇失败不会阻塞其他条目。

验证

npm test

项目使用内置本地内容管线完成链接解析、媒体归档、语义分章和六类资产提炼。

本地数据与权限

  • 运行队列和界面偏好默认位于 macOS 的 ~/Library/Application Support/Pickoo,不再写进源码目录。
  • 设置默认位于 ~/.config/pickoo/settings.json
  • 网易云登录态只保存在设置文件旁的私有会话文件中。
  • 本地服务只监听 127.0.0.1
  • 浏览器、Agent Skill 目录、依赖和模型安装均需由用户显式触发。

完整声明见 docs/PERMISSIONS.md

发布

package.json 是唯一版本号来源。GitHub 发布保留完整前端、字体、测试和开发工具;RED Skill 发布由脚本生成,并自动检查 SKILL.md、本地硬编码、10MB 单文件限制与 30MB 总包限制。