A terminal-based user interface for monitoring and managing qBittorrent. Built with Go and Bubble Tea.
- Real-time monitoring - Live torrent status updates with configurable refresh intervals
- Advanced filtering - Filter by state, category, tracker, tags, or text search
- Torrent management - Add, pause, resume, and delete torrents
- Detailed views - Drill down into individual torrent information with tabs for general info, trackers, peers, and files
- Intuitive navigation - Vim-like keyboard shortcuts and responsive layout
- Flexible configuration - TOML config files, environment variables, or CLI flags
- Column customization - Sort by any column and show/hide 14+ available columns
git clone https://github.com/nickvanw/qbittorrent-tui.git
cd qbittorrent-tui
make build
sudo cp bin/qbt-tui /usr/local/bin/
go install github.com/nickvanw/qbittorrent-tui/cmd/qbt-tui@latest
-
Start qBittorrent with Web UI enabled (default: http://localhost:8080)
-
Run qbt-tui:
qbt-tui --url http://localhost:8080 --username admin --password yourpassword
-
Navigate with keyboard shortcuts (see below)
Priority: CLI flags > Environment variables > Config file > Defaults
[server]
url = "http://localhost:8080"
username = "admin"
password = "secret"
refresh_interval = 3
# Environment
export QBT_SERVER_URL="http://localhost:8080"
export QBT_SERVER_USERNAME="admin"
export QBT_SERVER_PASSWORD="secret"
# CLI
qbt-tui --url http://localhost:8080 --username admin --password secret
qbt-tui --help # See all options
Key | Action |
---|---|
↑/↓ , j/k |
Navigate torrents |
g |
Go to top |
G |
Go to bottom |
Enter |
View torrent details |
Esc |
Return to main view |
Key | Action |
---|---|
f , / |
Search torrents |
s |
Filter by state |
c |
Filter by category |
t |
Filter by tracker |
T |
Filter by tag |
x |
Clear all filters |
Key | Action |
---|---|
1-9 |
Sort by visible column (1st-9th) |
Shift+[1-9] |
Reverse sort direction |
Note: Sorting keys dynamically map to visible columns. Press 1
to sort by the first visible column, 2
for the second, etc. The column headers show sort indicators (↑/↓).
Key | Action |
---|---|
C |
Configure columns |
Key | Action |
---|---|
a |
Add torrent |
p |
Pause torrent |
u |
Resume torrent |
d |
Delete torrent |
Key | Action |
---|---|
r |
Refresh data |
? |
Show/hide help |
Ctrl+C |
Quit |
Requires Go 1.19+ and Docker (for integration tests).
make build test validate # Build, test, and lint
- Connection issues: Enable qBittorrent Web UI (Tools → Preferences → Web UI)
- No torrents visible: Press
x
to clear filters orr
to refresh - Performance: Increase
refresh_interval
or use filters for many torrents
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests (
make validate
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- qBittorrent - The excellent BitTorrent client
- Bubble Tea - Terminal UI framework
- Cobra - CLI framework