yohamza/tq

Simplest Tutorial Manager TUI - Manage All your learning tutorials from your terminal

โ˜… 0Forks 0PythonGitHub โ†—Compare

README

๐Ÿ“š tq โ€” Tutorial Queue

Never lose a tutorial in a forgotten browser tab again.

tq is a smart CLI + TUI app that helps you track, schedule, and actually finish the tutorials you save. It lives in your terminal, works on every platform, and takes seconds to install.

Platform Python License


โœจ Features

  • ๐Ÿ“ฅ Queue management โ€” add tutorials with title, URL, topic, and duration
  • ๐ŸŽฏ Smart Pick โ€” tq pick chooses your next best tutorial automatically
  • ๐Ÿ“Š Progress tracking โ€” track % completion per tutorial
  • ๐Ÿ“… Scheduling โ€” assign tutorials to specific days
  • ๐Ÿ”ฅ Streaks & daily goals โ€” build a learning habit with streaks and a daily minute goal
  • ๐Ÿ–ฅ๏ธ Full TUI dashboard โ€” a clean interactive terminal UI
  • โšก Fast CLI โ€” one-liners for everything when you don't need the TUI

๐Ÿš€ Installation

Quick install (recommended)

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/yohamza/tq/main/install.sh | bash

After install, restart your terminal or run source ~/.zshrc (or source ~/.bashrc) for the tq command to be available.

Windows (PowerShell):

irm https://raw.githubusercontent.com/yohamza/tq/main/install.ps1 | iex

After install, open a new terminal window for the tq command to be available.

Manual install

pip install typer rich textual
git clone https://github.com/yohamza/tq.git
cd tq
python tq.py

๐Ÿ–ฅ๏ธ TUI Mode

Launch the full interactive dashboard:

tq
โ”Œโ”€ tq - Tutorial Queue โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Streak: 3d  |  Goal: 30m/60m (50%)  |  Queue: 4               โ”‚
โ”‚                                                                 โ”‚
โ”‚   Title              Topic    Duration  Progress     URL        โ”‚
โ”‚ โ–ถ React Hooks        React    45m       โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 40%   Open       โ”‚
โ”‚ โ—‹ CSS Grid           CSS      30m       โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  0%   Open       โ”‚
โ”‚ โ—‹ Python Basics      Python   2h        โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  0%              โ”‚
โ”‚ โ—‹ Node.js APIs       Node     1h 15m    โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  0%   Open       โ”‚
โ”‚ โœ… TypeScript 101    TS       1h        โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%  Open       โ”‚
โ”‚                                                                 โ”‚
โ”‚ A Add  O Open URL  P Pick  D Done  E Progress  X Delete  Q Quit โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Key Action
โ†‘ / โ†“ Navigate the list
A Add a new tutorial
O Open selected tutorial's URL in browser
D Mark selected as Done
E Set progress %
P Smart pick โ€” best next tutorial
X Delete selected tutorial
Q Quit

Double-clicking a row also opens its URL in your default browser.


โŒจ๏ธ CLI Commands

Add a tutorial

tq add "React Hooks Deep Dive"
tq add "CSS Grid Guide" --url https://youtube.com/... --duration 30 --topic CSS
tq add "Python Basics" -d 120 -t Python --schedule today

View your queue

tq list                        # full queue
tq list --topic React          # filter by topic
tq list --status in_progress   # filter by status

Smart pick

tq pick
# Resumes in-progress โ†’ picks scheduled for today โ†’ picks shortest

Track progress

tq progress abc123 60          # set to 60%
tq done abc123                 # mark as 100% complete

Schedule

tq schedule abc123 today
tq schedule abc123 tomorrow
tq schedule abc123 2026-04-01

Goals & stats

tq goal 45                     # set daily goal to 45 minutes
tq stats                       # view streak, totals, and daily progress

๐Ÿง  Smart Pick Logic

tq pick selects your next tutorial using this priority:

  1. Resume โ€” the in-progress tutorial with the highest completion %
  2. Scheduled โ€” tutorials due today, shortest first (quick wins)
  3. Queue โ€” the shortest unstarted tutorial

๐Ÿ’พ Data Storage

All data is stored locally as plain JSON:

Platform Path
macOS / Linux ~/.config/tq/data.json
Windows ~/.config/tq/data.json

You can back it up, sync it with Dropbox / iCloud, or edit it manually.


๐Ÿ—‚๏ธ Project Structure

tq/
โ”œโ”€โ”€ tq.py                        # main app (CLI + TUI)
โ”œโ”€โ”€ install.sh                   # macOS/Linux installer
โ”œโ”€โ”€ install.ps1                  # Windows installer
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ .github/
    โ””โ”€โ”€ workflows/
        โ””โ”€โ”€ build.yml            # auto-builds binaries on release

๐Ÿ”จ Development

# Clone
git clone https://github.com/yohamza/tq.git
cd tq

# Install dependencies
pip install typer rich textual

# Run locally
python tq.py

๐Ÿ“ฆ Releasing a new version

git add .
git commit -m "feat: my new feature"
git tag v1.1.0
git push && git push --tags

GitHub Actions will automatically build binaries for all 3 platforms and attach them to the release.


๐Ÿ›ฃ๏ธ Roadmap

  • tq update โ€” self-update from GitHub Releases
  • tq import <url> โ€” auto-fetch title & duration from YouTube
  • Weekly review mode
  • Export learning log to Markdown
  • Browser extension to send tabs directly to queue

๐Ÿ“„ License

MIT โ€” do whatever you want with it.

Contributors

yohamza

Issues