#rss #stock #dashboard #tui

bin+lib feedtui

A configurable terminal dashboard for stocks, news, sports, and social feeds with a virtual pet companion

3 releases

new 0.1.2 Feb 7, 2026
0.1.1 Jan 25, 2026
0.1.0 Jan 24, 2026

#1799 in Command line utilities

MIT license

210KB
5.5K SLoC

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

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

Dependencies

~23–44MB
~699K SLoC