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.
- ๐ฅ Queue management โ add tutorials with title, URL, topic, and duration
- ๐ฏ Smart Pick โ
tq pickchooses 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
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/yohamza/tq/main/install.sh | bashAfter install, restart your terminal or run
source ~/.zshrc(orsource ~/.bashrc) for thetqcommand to be available.
Windows (PowerShell):
irm https://raw.githubusercontent.com/yohamza/tq/main/install.ps1 | iexAfter install, open a new terminal window for the
tqcommand to be available.
pip install typer rich textual
git clone https://github.com/yohamza/tq.git
cd tq
python tq.pyLaunch 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.
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 todaytq list # full queue
tq list --topic React # filter by topic
tq list --status in_progress # filter by statustq pick
# Resumes in-progress โ picks scheduled for today โ picks shortesttq progress abc123 60 # set to 60%
tq done abc123 # mark as 100% completetq schedule abc123 today
tq schedule abc123 tomorrow
tq schedule abc123 2026-04-01tq goal 45 # set daily goal to 45 minutes
tq stats # view streak, totals, and daily progresstq pick selects your next tutorial using this priority:
- Resume โ the in-progress tutorial with the highest completion %
- Scheduled โ tutorials due today, shortest first (quick wins)
- Queue โ the shortest unstarted tutorial
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.
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
# Clone
git clone https://github.com/yohamza/tq.git
cd tq
# Install dependencies
pip install typer rich textual
# Run locally
python tq.pygit add .
git commit -m "feat: my new feature"
git tag v1.1.0
git push && git push --tagsGitHub Actions will automatically build binaries for all 3 platforms and attach them to the release.
-
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
MIT โ do whatever you want with it.