tracksnap
Stateful RSS/Atom feed tracker. Remembers what you've seen — shows only what's new.
pip install tracksnap
The idea
Most feed readers show you everything, every time. tracksnap is different: it tracks which items you've already seen in a local SQLite database and only returns the delta. Run it in a cron job, pipe it into another tool, or use it as part of an agent workflow — you only ever process genuinely new content.
Usage
# First run: shows all items, marks them as seen
tracksnap https://hnrss.org/frontpage
# Second run: shows ONLY items you haven't seen yet
tracksnap https://hnrss.org/frontpage
# Show everything regardless of history
tracksnap https://hnrss.org/frontpage --all
# Forget history for this feed, then show all items fresh
tracksnap https://hnrss.org/frontpage --reset
# Limit number of items
tracksnap https://hnrss.org/frontpage --limit 5
# Output formats
tracksnap https://hnrss.org/frontpage --output json
tracksnap https://hnrss.org/frontpage --output table
tracksnap https://hnrss.org/frontpage --output csv
State storage
History is stored in ~/.local/share/tracksnap/state.db (SQLite). Each feed URL gets its own set of seen item IDs. You can override the path with the TRACKSNAP_DB environment variable.
Automation / agent use
# In a cron job — only process genuinely new items
tracksnap https://example.com/feed.xml --output json | jq '.items[].title'
# Feed into briefsnap or another pipeline tool
tracksnap https://example.com/feed.xml --output csv >> new_items.csv
# Inspect tool capabilities (ACLI-compliant)
tracksnap introspect
tracksnap skill
Feed support
- RSS 2.0 — standard
<item>elements with guid, link, title, author, pubDate, description - Atom —
<entry>elements with id, title, link, updated/published, author, summary/content
Part of the snap family
tracksnap is the stateful companion to feedsnap (stateless RSS reader) and fits naturally into workflows with briefsnap (morning digest aggregator).
| Tool | What it does |
|---|---|
| feedsnap | Stateless RSS/Atom reader |
| tracksnap | Stateful RSS/Atom tracker (only new items) |
| briefsnap | Morning digest aggregator |
| hackersnap | Hacker News top stories |
| bskysnap | Bluesky profile reader |
| reposnap | GitHub repo explorer |
| arxivsnap | arXiv paper search |
License
MIT
Release files for tracksnap 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tracksnap-0.1.0.tar.gz | 9.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tracksnap-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.3 kB
Release files / tracksnap-0.1.0.tar.gz
| Download URL | tracksnap-0.1.0.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e577243632e3902b049727d3816307491b0203d81da66ed0e1960ccd349b11de
|
|
BLAKE2b-256 checksum How to use checksums |
6537ba33943c290b95410175cfa296dcdee55a739f06c8c2a4984dfc63be4b1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / tracksnap-0.1.0-py3-none-any.whl
| Download URL | tracksnap-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ec2255462a061283186e415ff3d751aea717bcb2bc44606d28e55ffd7cf8bd16
|
|
BLAKE2b-256 checksum How to use checksums |
a97ddd66aa40229fa6f1db6e05aae1330be89a306bcdf4618f9909d55c6fbbd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|