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 
xto clear filters orrto refresh - Performance: Increase 
refresh_intervalor 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
 
