Metadata-Version: 2.1
Name: ai-signal
Version: 0.5.1
Summary: Terminal-based AI curator that turns information noise into meaningful signal
Home-page: https://github.com/guglielmo/ai-signal
License: MIT
Keywords: ai,curation,terminal,tui,textual,content,aggregator,filter
Author: Guglielmo Celata
Author-email: guglielmo.celata@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Terminals
Classifier: Topic :: Text Processing :: Filters
Classifier: Topic :: Utilities
Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
Requires-Dist: html2text (>=2024.2.26,<2025.0.0)
Requires-Dist: lxml-html-clean (>=0.4.1,<0.5.0)
Requires-Dist: markdown (>=3.7,<4.0)
Requires-Dist: openai (>=1.3.0,<2.0.0)
Requires-Dist: python-frontmatter (>=1.0.0,<2.0.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: readability-lxml (>=0.8.1,<0.9.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: textual (>=0.87.0,<0.88.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: typer (>=0.13.1,<0.14.0)
Project-URL: Documentation, https://github.com/guglielmo/ai-signal#readme
Project-URL: Repository, https://github.com/guglielmo/ai-signal
Description-Content-Type: text/markdown

# AI Signal

![AI Signal Terminal](https://raw.githubusercontent.com/guglielmo/ai-signal/main/docs/images/main.png)

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

```bash
pip install ai-signal
```

or 
```bash
pipx install ai-siganl
```
for global installation.


If using poetry:

```bash
poetry add ai-signal
poetry shell # enter the virtualenv
```

## Quick Start

1. Create a configuration file:
```bash
aisignal init
```
modify it, as described in the [configuration guide](docs/configuration.md):

2. Run AI Signal:
```bash
aisignal run
```

## 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


## Screenshots

### Main Interface
![Main Interface](https://raw.githubusercontent.com/guglielmo/ai-signal/main/docs/images/main.png)

### Configuration interface
![Configuration Interface](https://raw.githubusercontent.com/guglielmo/ai-signal/main/docs/images/configuration.png)

### Resource detail interface
![Resource Detail Interface](https://raw.githubusercontent.com/guglielmo/ai-signal/main/docs/images/detail.png)

### Sidebar hidden
![Sidebar hidden](https://raw.githubusercontent.com/guglielmo/ai-signal/main/docs/images/sidebar_hidden.png)

## Project Status

This project is in its early development stages. 
I am not yet ready to provide a working prototype. As an open source initiative, I welcome contributors 
who can help advance the project. Please read the [Contributing Guide](CONTRIBUTING.md)


### Development environment setup

```bash
# 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:

```bash
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](LICENSE) file for details.

## Acknowledgments

- Built with [Textual](https://github.com/Textualize/textual)
- AI powered by OpenAI and Jina AI
- Inspired by Daniel Miessler's [Fabric](https://github.com/danielmiessler/fabric)

## Author

**Guglielmo Celata**
- GitHub: [@guglielmo](https://github.com/guglielmo)
- Mastodon: [@guille@mastodon.uno](https://mastodon.uno/@guille)
