Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feedtui-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file feedtui-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for feedtui-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ba6ce4a6e9f90d855b380e0feb16e85dc5b5e424aac752e3a74ba7163934cd7
MD5 65ca753d65ed0afef2133d9998b86abc
BLAKE2b-256 49c0ca86ba5f2bdc2621f6754b4ae205e6b99bd1762f96b9f27b72bf357f8619

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page