Terminal-based AI curator that turns information noise into meaningful signal
Project description
AI Signal
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
- Create a configuration file:
aisignal init
- Edit your
~/.config/aisignal/config.yamlalong 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
- Run AI Signal:
aisignal
Keyboard Shortcuts
For all views
q: Quit applicationc: Toggle configuration panels: Force sync contentf: Toggle filters
Within the items list
↑/↓: Navigate itemsenter: Show item detailso: Open in browsert: Share on Twitterl: Share on LinkedIne: 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
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
Author
Guglielmo Celata
- GitHub: @guglielmo
- Mastodon: @guille@mastodon.uno
Project details
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a420e5b01a2d9980c6848bab822222abc2369c716d5eb9384d3fbdaf9053d23b
|
|
| MD5 |
2656e3f57ead84d53cd23c2d44a87a57
|
|
| BLAKE2b-256 |
082208d136c81ec58243236af1efd8922f0fdf09e191dd310b874643a05af432
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0fd0b675e91d8f86cd1287bd55de3d6547e1fcaba22a7c9feff36c4d1a26a26
|
|
| MD5 |
146909dab5099143553dff504e581897
|
|
| BLAKE2b-256 |
2d27a49a17e0d88a02e89ca1cd160d2b86e788f85929f0b7bf79e1347347e6e5
|