Skip to main content

Terminal-based AI curator that turns information noise into meaningful signal

Project description

AI Signal

Tests Coverage Python Code Style

AI Signal Terminal

Turn information noise into meaningful signal with AI-powered content curation.

AI Signal helps you regain control over your information diet. While platforms and algorithms decide what content reaches you, AI Signal empowers you to define your own curation strategy. You set the categories, quality thresholds, and filtering criteria—ensuring the content you consume aligns with your interests and goals.

Think of it as your personal content curator, running locally on your machine, surfacing valuable information while filtering out noise.

Features

  • AI-Powered Analysis - Smart categorization and ranking using OpenAI
  • Custom Filters - Define categories, quality thresholds, and filtering criteria
  • Multiple Sources - Support for RSS feeds, YouTube, Medium, Reddit, Hacker News
  • Export & Share - Send to Obsidian vault or social media platforms
  • Keyboard-Driven - Fully accessible terminal interface powered by Textual
  • Cost Tracking - Monitor AI token usage and costs in real-time

Why AI Signal?

Built with a clean, event-driven architecture featuring:

  • Interface-based design (ABC) for all core services
  • Dependency injection with automated service resolution
  • Real-time UI updates via pub/sub event bus
  • 94% test coverage across core services
  • Thread-safe operations ready for future multi-UI support

See Architecture Documentation for technical details.

Getting Started

Installation

# Install with pip
pip install ai-signal

# Or with pipx (recommended for global installation)
pipx install ai-signal

# Or with poetry
poetry add ai-signal

Quick Start

# Initialize configuration
aisignal init

# Edit ~/.config/aisignal/config.yaml with your:
# - OpenAI API key
# - Jina AI API key
# - Content sources
# - Categories of interest

# Run the application
aisignal run

See the Configuration Guide for detailed setup instructions.

Usage

Keyboard Shortcuts

Global: q Quit • c Config • s Sync • f Filters • u Usage stats

Navigation: ↑↓ Move • Enter Details • o Open browser

Actions: e Export to Obsidian • t Share Twitter • l Share LinkedIn

Project Status & Roadmap

Current Version: 0.11.0 • Status: Active Development

AI Signal is production-ready with all core features functional. The architecture migration is complete with 94% test coverage.

Currently: Finishing RSS/Atom feed integration (88% complete) to reduce API costs by 50-80%.

See STATUS.md for detailed project status, roadmap, and what's in development.

Contributing

We welcome contributions! Whether it's bug reports, feature requests, or code contributions, your help makes AI Signal better.

Development Setup:

# Clone the repository
git clone https://github.com/guglielmo/ai-signal.git
cd ai-signal

# Install dependencies
poetry install

# Run tests
poetry run pytest

# Run the application
poetry shell
aisignal run

See CONTRIBUTING.md for detailed contribution guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

Acknowledgments

  • Built with Textual
  • AI powered by OpenAI and Jina AI
  • Inspired by Daniel Miessler's Fabric

Author

Guglielmo Celata

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

ai_signal-0.11.0.tar.gz (58.8 kB view details)

Uploaded Source

Built Distribution

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

ai_signal-0.11.0-py3-none-any.whl (74.8 kB view details)

Uploaded Python 3

File details

Details for the file ai_signal-0.11.0.tar.gz.

File metadata

  • Download URL: ai_signal-0.11.0.tar.gz
  • Upload date:
  • Size: 58.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for ai_signal-0.11.0.tar.gz
Algorithm Hash digest
SHA256 6d04dd110769c7dc75bef706994f77a68df15a454be8e4443ebd1d9bfab56e13
MD5 2f99f21be2ab0b5ef32f84534306f77f
BLAKE2b-256 04df6115a09dfba4b2035269564475ebbd3d0ac232f22853548e8938c5abf546

See more details on using hashes here.

File details

Details for the file ai_signal-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: ai_signal-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 74.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for ai_signal-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2148a4d62435a34dc3ff764beb0ac88fcb27e93ebc1322c827bea94dc137607f
MD5 d3a696195637aa3c9775d2b7f7d16e5a
BLAKE2b-256 4f0da7a1ca0ca837108ae331957b281eaa627b6f4be738ac756a11a52a9c2fe5

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