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.