briefsnap
One command. Five data sources. Your morning in one digest.
briefsnap pulls Hacker News, RSS feeds, Bluesky profiles, GitHub repos, and arXiv papers in parallel and formats them as a combined morning briefing — text or JSON.
$ briefsnap
# Morning Briefing — August 15, 2026
## Hacker News
1. **Show HN: I built a thing** (342 points · 87 comments · by someone)
https://example.com/thing
...
Install
pip install briefsnap
Requires Python 3.10+. Pulls in the five *snap sibling packages automatically.
Quickstart
# Default: HN top 5 stories
briefsnap
# More HN stories
briefsnap --hn 10
# Add an RSS feed
briefsnap --rss https://simonwillison.net/atom/everything/
# Follow a Bluesky handle
briefsnap --bsky simonw.bsky.social
# Watch a GitHub repo
briefsnap --repo simonw/llm
# arXiv search
briefsnap --arxiv "LLM agents"
# Mix and match
briefsnap --hn 5 --rss https://news.ycombinator.com/rss --bsky simonw.bsky.social
# JSON output
briefsnap --output json | jq .
Config file
For a repeatable daily briefing, drop a briefsnap.toml anywhere and point at it with --config:
[hackersnap]
enabled = true
limit = 5
type = "top" # top / new / best / ask / show / job
[feedsnap]
feeds = [
{ url = "https://simonwillison.net/atom/everything/", limit = 5 },
{ url = "https://www.joelonsoftware.com/feed/", limit = 3 },
]
[bskysnap]
handles = [
{ handle = "simonw.bsky.social", limit = 5 },
]
[reposnap]
repos = [
{ repo = "simonw/llm", limit = 5 },
]
[arxivsnap]
queries = [
{ query = "LLM agents", limit = 3 },
]
briefsnap --config briefsnap.toml
briefsnap --config briefsnap.toml --output json
CLI flags override the config file — handy for one-off adjustments:
briefsnap --config briefsnap.toml --hn 10
Output modes
| Flag | Description |
|---|---|
--output text |
Markdown digest (default) |
--output json |
Structured JSON with date envelope |
Agent / ACLI support
briefsnap introspect # ACLI-compliant JSON description
briefsnap skill # agentskills.io SKILL.md
How it works
- Each source is fetched in a separate thread (
ThreadPoolExecutor) — five sources run in parallel, not serially. - One source failing (network error, bad feed) does not kill the digest — it falls back to an empty section.
- Uses
hackersnap,feedsnap,bskysnap,rook-reposnap, andarxivsnapas library imports.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file briefsnap-0.1.0.tar.gz.
File metadata
- Download URL: briefsnap-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
129868b3dff7d831c69568af9d9228f0d06bda88220f1cb5ec2efdde44647224
|
|
| MD5 |
7cb9479b938ba31f53b107dfb5baa849
|
|
| BLAKE2b-256 |
3401214ba37e8920cfae89dc1787d28de84a7b12e2d7ead23b5ca43d5737ee8f
|
File details
Details for the file briefsnap-0.1.0-py3-none-any.whl.
File metadata
- Download URL: briefsnap-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e97880dd6614dab989c7da292cf42a7c719d5cb6e6e1f63923d761cb55517ac2
|
|
| MD5 |
b55085f18e810edff9fab1065dfde3af
|
|
| BLAKE2b-256 |
e1d367b23efe0169d5e535a8d0925ac16e57889fc8ea9c6ee27c5ec8f6df4e36
|