Skip to main content

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_DIR
  • LUSTRO_CACHE_DIR
  • LUSTRO_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: supports name, tier, cadence, and either rss or url (or both).
  • x_accounts: supports name, 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_KEY or OPENROUTER_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

lustro-0.1.0.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lustro-0.1.0-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

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

Hashes for lustro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 33c1d4e4ae0b643979fa327b3bfc59f3f1dc57e30a8fd0e8f73287af2d598b67
MD5 52663a56bb8079500271cb9e0aaf957e
BLAKE2b-256 117807382969fe7814a1ef15209386db170901009371a52020b69375d6ad795e

See more details on using hashes here.

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

Hashes for lustro-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9395fd2577a99601c0a75feed7f0c01ef412e3d1a5b5080dd050d1ed77f30ab
MD5 eb5ebc15e1d779327b71d33bcdfc42ef
BLAKE2b-256 ef0bf1a2a82de181bd4391709ba4bd7d11cb92871fffd82fd33da270c051c3dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page