Skip to main content

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

Project description

AI Signal

AI Signal Terminal

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

Features

  • 🤖 AI-powered content analysis and categorization
  • 🔍 Smart filtering based on customizable categories and quality thresholds
  • 📊 Advanced sorting by date, ranking, or combined criteria
  • 🔄 Automatic content synchronization from multiple sources
  • 🌐 Support for various content sources (YouTube, Medium, Reddit, Hacker News, RSS feeds)
  • 📱 Share curated content directly to social media
  • 📝 Export to Obsidian vault with customizable templates
  • ⌨️ Fully keyboard-driven interface
  • 🎨 Beautiful terminal UI powered by Textual

Installation

pip install ai-signal

Or with poetry:

poetry add ai-signal

Quick Start

  1. Create a configuration file:
aisignal init
  1. Edit your ~/.config/aisignal/config.yaml along these lines:
sources:
- https://news.ycombinator.com
- https://django-news.com

prompts:
  content_extraction: |
    Please extract the top 10 news, articles, posts, whatever items compose this list.

    For each items, find or generate:
    * the title
    * the source (URL of the list source)
    * the original URL of the item, or _link_
    * the categories, among the available ones, listed below.

    Generate a list of items in markdown format, strictly following this syntax:

    # Top 10 Items

    1. **Title:** Announcing the 6.x Django Steering Council elections 🚀  
       **Source:** https://django-news.com  
       **Link:** https://cur.at/3TNDN81?m=web  
       **Categories:** Django

    2. **Title:** Django Channels 4.2.0 Release Notes  
       **Source:** https://django-news.com
       **Link:** https://cur.at/R9ZJhRV?m=web  
       **Categories:** Django
    ...
 
    In particular, the Source should only contain the URL.

categories:
- AI/ML
- Django
- Programming
- Security
- DevOps
- Docker
- Modern Data Stack

quality_threshold: 0.7
sync_interval: 24
obsidian:
  vault_path: '/~/Documents/Obsidian Vault'
  template_path: ''
social:
  twitter_template: '{title}


    {url}


    #AI #Content'
api_keys:
  jinaai: -Your JinaAI key-
  openai: -Your OpenAI key
  1. Run AI Signal:
aisignal

Keyboard Shortcuts

For all views

  • q: Quit application
  • c: Toggle configuration panel
  • s: Force sync content
  • f: Toggle filters

Within the items list

  • /: Navigate items
  • enter: Show item details
  • o: Open in browser
  • t: Share on Twitter
  • l: Share on LinkedIn
  • e: Export to Obsidian

Configuration

AI Signal can be configured via YAML file or through the TUI configuration panel. Main configuration options:

  • Content

    • Sources to monitor
    • Sync interval, in hours
    • Categories of interest
    • Prompt for content extraction
  • Filtering

    • Quality threshold
    • Category filters
    • Source filters
  • Integration

    • Obsidian vault path
    • Obsidian templates
    • Social media templates

See the configuration guide for detailed options.

Screenshots

Main Interface

Main Interface

Contributing

Contributions are welcome! Please read our Contributing Guide to get started.

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 in development mode
poetry run aisignal version

or, entering the virtualenv:

poetry shell
aisignal version

Roadmap

  • Add support for more content sources (YT videos, podcasts, pdf)
  • Implement custom AI models
  • Add content archiving
  • Enable custom prompts for sources
  • Enable custom filtering rules
  • Add data export/import

License

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

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.1.7.tar.gz (11.4 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.1.7-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_signal-0.1.7.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/6.9.2-060902-generic

File hashes

Hashes for ai_signal-0.1.7.tar.gz
Algorithm Hash digest
SHA256 a420e5b01a2d9980c6848bab822222abc2369c716d5eb9384d3fbdaf9053d23b
MD5 2656e3f57ead84d53cd23c2d44a87a57
BLAKE2b-256 082208d136c81ec58243236af1efd8922f0fdf09e191dd310b874643a05af432

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_signal-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/6.9.2-060902-generic

File hashes

Hashes for ai_signal-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a0fd0b675e91d8f86cd1287bd55de3d6547e1fcaba22a7c9feff36c4d1a26a26
MD5 146909dab5099143553dff504e581897
BLAKE2b-256 2d27a49a17e0d88a02e89ca1cd160d2b86e788f85929f0b7bf79e1347347e6e5

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