Survey and illuminate the AI/tech landscape.
Project description
lustro
Survey and illuminate the AI/tech landscape.
lustro is a command-line tool that fetches AI/tech news from RSS, web pages, and X accounts, logs new items, and generates monthly thematic digests.
Installation
pip install lustro
uv tool install lustro
Install optional digest dependencies:
pip install "lustro[digest]"
# or
uv tool install "lustro[digest]"
Quickstart
lustro init
lustro fetch
lustro log
lustro status
lustro check
lustro digest --dry-run
What these do:
init: create config/cache/data directories and starter sources config.fetch: fetch sources, dedupe, append to log, archive tier-1 article text.log: show recent log lines.status: show config paths, state age, and cache stats.check: run health checks on configured sources.digest --dry-run: identify monthly themes without writing digest output.
Configuration
lustro uses XDG paths by default:
- config:
~/.config/lustro - cache:
~/.cache/lustro - data:
~/.local/share/lustro
You can override base directories with:
LUSTRO_CONFIG_DIRLUSTRO_CACHE_DIRLUSTRO_DATA_DIR
sources.yaml
lustro init writes ~/.config/lustro/sources.yaml if missing.
Example:
web_sources:
- name: OpenAI News
tier: 1
cadence: daily
rss: https://openai.com/news/rss.xml
url: https://openai.com/news/
- name: Anthropic News
tier: 2
cadence: weekly
rss: https://www.anthropic.com/news/rss.xml
url: https://www.anthropic.com/news
x_accounts:
- name: OpenAI on X
handle: openai
tier: 2
cadence: daily
config.yaml
Create ~/.config/lustro/config.yaml to override defaults:
log_path: ~/.local/share/lustro/news.md
digest_model: google/gemini-3-flash-preview
max_log_lines: 500
digest_output_dir: ~/.local/share/lustro/digests
timezone: America/New_York
Supported options:
log_path: markdown news log path.digest_model: OpenRouter model ID.max_log_lines: log rotation threshold.digest_output_dir: digest markdown output directory.timezone: timezone label for your setup.
Source Format
Top-level keys are grouped lists; each source item is a mapping.
web_sources: supportsname,tier,cadence, and eitherrssorurl(or both).x_accounts: supportsname,handle,tier,cadence.
tier controls archival behavior during fetch (tier: 1 enables full-text archive attempts).
X / Twitter Support
X account fetching/checking requires the bird CLI available on PATH.
If bird is missing, lustro skips X operations gracefully and continues with web/RSS sources.
Digest Support
Digest generation uses OpenRouter and requires:
LUSTRO_API_KEYorOPENROUTER_API_KEY- optional deps installed (
lustro[digest])
Without these, lustro digest exits with a clear error.
Project details
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 lustro-0.1.0.tar.gz.
File metadata
- Download URL: lustro-0.1.0.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33c1d4e4ae0b643979fa327b3bfc59f3f1dc57e30a8fd0e8f73287af2d598b67
|
|
| MD5 |
52663a56bb8079500271cb9e0aaf957e
|
|
| BLAKE2b-256 |
117807382969fe7814a1ef15209386db170901009371a52020b69375d6ad795e
|
File details
Details for the file lustro-0.1.0-py3-none-any.whl.
File metadata
- Download URL: lustro-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9395fd2577a99601c0a75feed7f0c01ef412e3d1a5b5080dd050d1ed77f30ab
|
|
| MD5 |
eb5ebc15e1d779327b71d33bcdfc42ef
|
|
| BLAKE2b-256 |
ef0bf1a2a82de181bd4391709ba4bd7d11cb92871fffd82fd33da270c051c3dd
|