Metadata-Version: 2.4
Name: feedtui
Version: 0.1.2
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
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: Programming Language :: Rust
Classifier: Topic :: Terminals
Classifier: Topic :: Utilities
License-File: LICENSE
Summary: A configurable terminal dashboard for stocks, news, sports, and social feeds with a virtual pet companion
Keywords: tui,dashboard,terminal,rss,stocks,cli
Home-Page: https://github.com/muk2/feedtui
Author: malchal
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/muk2/feedtui
Project-URL: Issues, https://github.com/muk2/feedtui/issues
Project-URL: Repository, https://github.com/muk2/feedtui

# feedtui

A configurable terminal dashboard for browsing news, stocks, sports, and more - with a virtual pet companion!

## Features

- **Hacker News** - Browse top, new, and best stories
- **Stock Ticker** - Track your portfolio in real-time
- **RSS Feeds** - Subscribe to your favorite news sources
- **Sports Scores** - Follow NBA, NFL, EPL, and more
- **Tui** - Your virtual companion creature that levels up as you use the terminal!

## Installation

### Option 1: Install via pip (Recommended)

No Rust toolchain required! Install directly from PyPI:

```bash
pip install feedtui
```

Or with pipx for isolated installation:

```bash
pipx install feedtui
```

### Option 2: From crates.io (Rust)

```bash
cargo install feedtui
```

### Option 3: Quick Install Script

```bash
git clone https://github.com/muk2/feedtui
cd feedtui
./install.sh
```

### Option 4: Using Make

```bash
git clone https://github.com/muk2/feedtui
cd feedtui
make install
```

### Option 5: Manual Install

```bash
git clone https://github.com/muk2/feedtui
cd feedtui
cargo install --path .
```

All Rust-based methods install the `feedtui` binary to `~/.cargo/bin/`. Make sure this directory is in your PATH.

## Getting Started

### Interactive Configuration Wizard

The easiest way to get started is to run the configuration wizard:

```bash
feedtui init
```

This will guide you through setting up your dashboard with an interactive prompt.

### Manual Configuration

Alternatively, create a `.feedtui` folder in your home directory and add a `config.toml` file:

```bash
mkdir -p ~/.feedtui
cp config.example.toml ~/.feedtui/config.toml
```

Edit the config to customize your dashboard layout and feeds.

## Usage

### Run the dashboard

```bash
feedtui
```

### Command-line options

```bash
# Use a custom config file
feedtui --config /path/to/config.toml

# Override refresh interval
feedtui --refresh 30

# View configuration status
feedtui config

# Reconfigure with wizard
feedtui init --force

# Show installation help
feedtui install

# Show version
feedtui --version

# Show help
feedtui --help
```

## Meet Tui!

Tui (pronounced "chew-ee") is your virtual companion creature that lives in your terminal. The more you use feedtui, the more Tui grows!

### Features

- **10 Different Species** - Choose from Blob, Bird, Cat, Dragon, Fox, Owl, Penguin, Robot, Spirit, or Octopus
- **Leveling System** - Earn XP just by using the terminal
- **Skill Tree** - Unlock skills with points earned from leveling up
- **Outfits** - Customize Tui with unlockable outfits like Hacker, Wizard, Ninja, Astronaut, and more
- **Moods** - Tui reacts to how often you visit
- **Persistent Progress** - Your creature's progress is saved automatically

### Keybindings

| Key | Action |
|-----|--------|
| `t` | Toggle Tui menu |
| `Tab` / `Shift+Tab` | Switch between menu tabs / widgets |
| `j` / `k` or arrows | Navigate lists |
| `Enter` | Select/purchase items in menu |
| `r` | Refresh feeds |
| `q` | Quit |

### Skill Tree

Unlock skills by spending points:

- **Greeting** (Free) - Tui greets you on startup
- **News Digest** (10 pts) - Highlights important news
- **Stock Alert** (15 pts) - Alerts on significant movements
- **Quick Learner** (15 pts) - +10% XP gain
- **Speed Read** (20 pts) - Faster feed refresh
- **Fast Learner** (30 pts) - +25% XP gain
- **Cosmic Insight** (50 pts) - Trending topic insights
- **Fire Breath** (40 pts) - Cosmetic fire animation
- **Omniscience** (100 pts) - Maximum XP boost

### Outfit Unlocks

Outfits unlock as you level up:

| Level | Outfit |
|-------|--------|
| 1 | Default |
| 5 | Hacker |
| 10 | Wizard |
| 15 | Ninja |
| 20 | Astronaut |
| 25 | Robot |
| 30 | Dragon |
| 50 | Legendary |

## Example Config

```toml
[general]
refresh_interval_secs = 60
theme = "dark"

# Tui - Your companion creature!
[[widgets]]
type = "creature"
title = "Tui"
show_on_startup = true
position = { row = 0, col = 0 }

# Hacker News
[[widgets]]
type = "hackernews"
title = "Hacker News"
story_count = 10
story_type = "top"
position = { row = 0, col = 1 }

# Stocks
[[widgets]]
type = "stocks"
title = "Portfolio"
symbols = ["AAPL", "GOOGL", "MSFT"]
position = { row = 1, col = 0 }
```

## Python API

If you installed via pip, you can also use feedtui as a Python library:

```python
import feedtui

# Run the TUI
feedtui.run()

# Run with custom config
feedtui.run(config_path="/path/to/config.toml")

# Run with custom refresh interval
feedtui.run(refresh_interval=30)

# Initialize a new config file
config_path = feedtui.init_config()
print(f"Config created at: {config_path}")

# Get config path
print(feedtui.get_config_path())

# Get version
print(feedtui.version())
```

## Development

### Running from source (without installing)

```bash
# Debug mode
cargo run

# Release mode
cargo run --release

# Or use make
make dev    # debug mode
make run    # release mode
```

### Common development tasks

```bash
# Format code
cargo fmt
# or
make fmt

# Run linter
cargo clippy
# or
make clippy

# Run tests
cargo test
# or
make test

# Clean build artifacts
cargo clean
# or
make clean
```

## License

MIT

