# Pickoo: a local-first favourites workbench that keeps the evidence next to the summary

> Pickoo is a MIT-licensed Node and Python workbench that turns pasted links into locally stored Markdown with source, transcript and extracted assets, and it shares one library across several desktop agents. Its own documentation is careful about limits: it refuses to bypass logins or DRM, marks incomplete captures as partial, and keeps the local server bound to loopback.

**KristenPan/pickoo-your-favorites** — Local-first creator favorites workbench with evidence-preserving Markdown capture and a complete browser UI.

- Repository: https://github.com/KristenPan/pickoo-your-favorites
- Stars: 20 · Forks: 4
- Language: Python
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/kristenpan-pickoo-your-favorites

## A card stack that expands into groups and then into single-source reading

Pickoo is described as a local-first AI favourites and inspiration workbench. The interface is a desktop-style browsing model in three stages: a stack of cards, which expands into groups, which opens into reading one item at a time. The homepage uses a fixed five-column equal-width compact layout, ordinary content cards have two height variants, audio appears as a separate short card type, and the six asset cards also come in only two heights. That layout discipline is the visible sign of a tool with a specific audience, which the README states directly: content creators, and anyone whose habit is to collect, organise and revisit saved items for inspiration. The package description is blunter, calling it a local-first AI favourites assistant that lets desktop agents collect, understand and organise public content. Nothing here is a social feed, and the design assumes you will browse your own archive rather than follow strangers.

## The summary never replaces the source, because every asset can be traced back

The distinguishing claim is that Pickoo does not substitute an AI summary for the original content. Raw text, images, audio and video, the author and the source are all stored, and the later OCR, ASR, chapter and asset extraction results are layered on top in separate stages. A breakdown can point back to the corresponding passage of text, image, time span or shot, so an agent can use the conclusion and also check where the conclusion came from. The machine-readable truth for the six asset classes lives in a JSON file per entry, evidence/assets/assets.json, versioned as creator-assets/v1, while the human editable entry point is a system-style long filename Markdown file whose exact path is recorded in manifest.document.path. Video, podcast and audio detail views read by semantic chapter name, a continuous verbatim transcript segment and start and end times, with jump-to-play; articles read by semantic chapter name and continuous source paragraphs, and summaries are explicitly not passed off as the body text.

## Six asset classes, and a quality gate that refuses to pad the library

Each source can be refined into six reusable asset categories: quotes, viewpoints, hooks, structure, images and shots. The pipeline behind that starts with media handling, where videos and podcasts can produce timestamped transcripts and semantic chapters and images can go through OCR. What matters is the admission rule. Only candidates that have been checked against the evidence and that meet the quality threshold are admitted to the asset library, and the documentation says plainly that candidates are not promoted to fill a quota. The gate has a parallel effect on the source status shown in the UI: each item is displayed as complete, pending review, partially complete or failed, with the original link and the local evidence pack retained in every case. For a tool that automates extraction, refusing to inflate its own output is the difference between an archive you can trust and one you have to re-check item by item.

## One library, several agents, one settings file

The design decision that separates Pickoo from a single-purpose scraper is that it does not own the agent. Codex, WorkBuddy, Hermes, Claude and Claudian all share the same library and the same task state, so you can continue a search, an organisation pass or an analysis in whichever tool you happen to be using without re-uploading anything. The agent skills are installed into per-agent directories, with save-to-favorites and asset-review-agent landing under paths such as ~/.codex/skills/save-to-favorites and ~/.claude/skills/save-to-favorites. Every entry point shares one settings file at ~/.config/pickoo/settings.json rather than keeping its own copy of path configuration. Hermes is treated differently on purpose: it only exposes the complete save-to-favorites entry point, with the other two execution components wrapped inside its internal runtime directory so they are not routed as competing skills. Disconnecting an agent moves the managed skill pack to ~/.config/pickoo/disconnected-skills/, and because a move cannot be atomic across an iCloud Drive boundary, the tool copies first and verifies file hashes before deleting the original.

## Startup is three commands and a loopback address

Running it needs Node.js 20 or above, and for full media processing Python 3.10 or above, ffmpeg and ffprobe, and yt-dlp. The startup sequence is:

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

That step only installs the base capture dependencies, and the settings page then reuses whatever ASR and OCR capability your machine already has, installing requirements-asr.txt or requirements-ocr.txt into an isolated environment outside the repository only when something is missing. On macOS you can double-click start.command, and on Windows start-windows.cmd. Once started, open http://127.0.0.1:4324. The runtime dependencies are unusually few for something of this scope, with cuelume and iconoir as the only entries in the dependencies list, and the manifest declares node as >=20. The verification command is equally short:

```bash
npm test
```

which runs the Node test files and then the Python unittest discovery over the tests directory, exercising link parsing, media archiving, semantic chaptering and the six-class asset extraction through the built-in local content pipeline.

## The project refuses to bypass logins, DRM and regional limits

This is the constraint that decides whether the tool fits your workflow. Pickoo handles identification of the source, deduplication, fetching and downstream processing, but platform login, membership, DRM, region and access restrictions all still apply. Content that cannot be retrieved in full is shown explicitly as pending review, partially complete or failed rather than silently summarised. The NetEase Cloud Music path shows the same principle in detail. Share short links and standard song links are normalised by song ID for deduplication, and the default route stays on the anonymous public path. Clicking the login option in settings opens the official login page, and after logging in you return to Pickoo and confirm the connection, which enables audio completion without copying a URL or a cookie. Once enabled it only attempts to download audio the platform officially returns for that account, falls back to public playback or stays partially complete on failure, and does not bypass membership, copyright, region, signature, DRM or playback restrictions. The login state lives only in a private session file next to the settings file at ~/.config/pickoo/netease-session.json with 0600 permissions, and never enters shared settings, the Markdown, the evidence pack or the front-end API responses.

## Local means local, and the permission surface is written down

The README is unusually explicit about what stays on your machine. The local service listens only on 127.0.0.1. Browser access, agent skill directories, dependency installation and model installation all require explicit user action. The default library for new captures is the directory the user chose in settings, or ~/Documents/Pickoo Library when nothing is chosen, and each entry is a single editable Markdown file named from the source, channel, short title, short author and date. The queue and interface preferences live outside the source tree, at ~/Library/Application Support/Pickoo on macOS, so they never enter the repository or the release package. Two details deserve attention. The assistant panel appends user, assistant and link handling messages without limit to a local chat-history.jsonl file, and the browser view of recent messages is only a display cache, not the archive of record. And every user message is written to disk and fsynced through the same-origin local API before any external agent is called, so a network outage, a proxy failure or a model timeout does not lose an already completed capture, and the browser outbox holds pending messages while the local service is down.

## Version 1.0.1, MIT terms, and a release package with size limits built in

The repository carries no GitHub releases, and the project states that package.json is the single source of the version number, which reads 1.0.1. The licence is MIT, with LICENSE, THIRD_PARTY_NOTICES.md and a SECURITY.md in the tree, and the documentation set is unusually complete for a project at this stage, with docs covering the development environment, module relationships, and the file, network, browser and agent permissions. Two release channels are described. The GitHub release keeps the full front end, fonts, tests and development tooling, while the RED Skill release is produced by a script, npm run release:redskill, and checked by another, with the checks covering SKILL.md, local hardcoding, a 10 MB single-file limit and a 30 MB total package limit. The RED Skill package drops the 27 MB hand-drawn fonts and GitHub brand assets to fit those limits, and the build script also verifies the release artefacts. The repository is not archived and the last push was on 2026-09-17.

## Conclusion

Pickoo suits a creator or researcher who keeps a personal archive of articles, videos, podcasts and images, and who wants the raw capture and the derived summary to sit in the same place on their own disk rather than inside a platform account. It does not suit someone who expects a turnkey social client, because platform logins, membership, DRM, region and access restrictions still apply and the capture will often come back marked as partial or failed. Before you adopt it, run npm ci and npm start on a machine with Node.js 20 or above, check the default library path of ~/Documents/Pickoo Library against where you actually want the archive, and decide up front whether you will run the ASR and OCR runtimes, because those installs happen separately from the base setup.

## FAQ

### How do I start Pickoo for the first time?

You need Node.js 20 or above, and Python 3.10 or above with ffmpeg, ffprobe and yt-dlp for full media handling. Run npm ci, install the capture requirements, then npm start and open http://127.0.0.1:4324.

### Does Pickoo bypass logins, membership or DRM on the platforms it captures?

No. Platform login, membership, DRM, region and access restrictions still apply, and content that cannot be fully retrieved is shown as pending review, partially complete or failed rather than summarised anyway.

### Where does Pickoo store my captures and my agent settings?

New captures go to the library directory chosen in settings, defaulting to ~/Documents/Pickoo Library, with one editable Markdown file per entry. All agent entry points share ~/.config/pickoo/settings.json, and the queue and interface preferences live in ~/Library/Application Support/Pickoo on macOS.

### Can I use Pickoo with several AI agents at once?

Yes. Codex, WorkBuddy, Hermes, Claude and Claudian share the same library and task state. Each agent gets the save-to-favorites and asset-review-agent skills installed into its own skills directory, and clicking an agent card in settings connects or disconnects it.

## Sources

- [Issues](https://github.com/KristenPan/pickoo-your-favorites/issues)
- [KristenPan/pickoo-your-favorites on GitHub](https://github.com/KristenPan/pickoo-your-favorites)
- [License: MIT](https://github.com/KristenPan/pickoo-your-favorites/blob/main/LICENSE)
- [README](https://github.com/KristenPan/pickoo-your-favorites/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kristenpan-pickoo-your-favorites
