mu-zi-lee/Tangentry
Productivity & UtilitiesAggregates videos, podcasts, RSS and articles into one local reader where notes anchor to timestamps and text.
If your saved videos, podcast episodes and RSS articles live in five separate apps with five separate bookmark lists, Tangentry proposes one local reading inbox instead. You paste a link or subscribe to a channel, the content lands in a SQLite database on your own machine, and you read, search, annotate and export from a single interface. The friction it targets is real: platform feeds are built for consumption, not for retrieving what you learned three months ago.
The problem
A user wants to keep the useful part of what they watch and read: the argument in minute 14 of a lecture, a paragraph in a long article, a frame worth remembering. Today that means a browser tab, a platform favourite list, and a separate notes app with a pasted timestamp and no link back. Tangentry moves the note into the same place as the source, so a timestamp note, a highlighted paragraph, a PDF anchor or a captured frame stays attached to the item and can be searched together with everything else. The result is a personal corpus you can query rather than a pile of bookmarks.
What's different
The mechanism is a local Go server plus a React web UI, shipped both as a desktop app and as a Docker image for a NAS or home server. Content is normalised across Bilibili, YouTube, Xiaohongshu, Douyin, Xiaoyuzhou podcasts, RSS/Atom/JSON Feed and local PDFs; the reading layer adds subtitle following, Readability-style article extraction, playback position memory and optional machine transcription. The note model is the genuinely distinctive part: notes attach to a time point, a text range, a PDF location or a screenshot, and export as a Markdown ZIP with Obsidian frontmatter.
The trade-off is that this is a young 0.0.3.x project wrapping sites that change their interfaces. Video parsing and downloading rely on external yt-dlp, so breakage is expected to be fixed by updating that tool rather than the app itself, and some Bilibili content needs a login. AI summaries and translation require a user-supplied OpenAI-compatible endpoint, and cloud transcription sends audio to the provider you choose — the local-first guarantee applies to storage, not to features you explicitly route outward.
Who should try it
Good fit: a heavy consumer of long-form video and podcasts who already takes notes and wants those notes in Markdown next to an Obsidian vault, and who is comfortable running a Docker container or a desktop build. Poor fit: someone who mainly reads social feeds passively, or who wants a hosted service with zero setup and no dependency on yt-dlp, FFmpeg or a locally running process. The Docker route is the alternative for people who would rather keep one always-on instance on a home server than install a desktop app on each machine.
Requirements and limitations
Building from source needs Go 1.27+ and Node.js 24+, though prebuilt desktop and Docker routes exist. Downloads and frame capture need yt-dlp and ffmpeg; local transcription needs Python 3, and its speed depends on CPU/GPU and model size. Desktop auto-update requires an Ed25519 signing key configured in the repository, and the app must live in a user-writable location — installs under /Applications or package-manager paths will not self-update. macOS builds are ad-hoc signed by default and un-notarised builds can be blocked by Gatekeeper. Migration means copying the whole data directory while the app is closed.
HotRepo's take
HotRepo has tracked the project since 2026-10-24; its only observation is #16 on the NEW-REPOSITORY board (新项目榜, not the overall board) on 2026-10-25 with 146 total stars. That is a snapshot of a seven-day-old repository, not a growth series, so persistence cannot yet be judged. Before adopting, check the project's configuration and data-directory notes to confirm where credentials and the SQLite file live on your intended install path.
Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.