A configurable terminal dashboard for stocks, news, sports, and social feeds with a virtual pet companion
Project description
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:
pip install feedtui
Or with pipx for isolated installation:
pipx install feedtui
Option 2: From crates.io (Rust)
cargo install feedtui
Option 3: Quick Install Script
git clone https://github.com/muk2/feedtui
cd feedtui
./install.sh
Option 4: Using Make
git clone https://github.com/muk2/feedtui
cd feedtui
make install
Option 5: Manual Install
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:
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:
mkdir -p ~/.feedtui
cp config.example.toml ~/.feedtui/config.toml
Edit the config to customize your dashboard layout and feeds.
Usage
Run the dashboard
feedtui
Command-line options
# 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
[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:
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)
# Debug mode
cargo run
# Release mode
cargo run --release
# Or use make
make dev # debug mode
make run # release mode
Common development tasks
# 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
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 Distributions
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 feedtui-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: feedtui-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ba6ce4a6e9f90d855b380e0feb16e85dc5b5e424aac752e3a74ba7163934cd7
|
|
| MD5 |
65ca753d65ed0afef2133d9998b86abc
|
|
| BLAKE2b-256 |
49c0ca86ba5f2bdc2621f6754b4ae205e6b99bd1762f96b9f27b72bf357f8619
|