Transmission TUI : gérer les torrents depuis le terminal
Transmission TUI est une interface terminal légère pilotée au clavier pour surveiller et administrer un démon Transmission. Elle est écrite en Python et construite avec Textual, avec un accès direct à Transmission par son interface RPC.
Le projet est né d'un besoin pratique : administrer une instance Transmission sans interface graphique sur un serveur distant, sans dépendre d'une interface web. Il maintient l'administration courante des torrents dans le terminal, où elle reste rapide, compatible avec les scripts et facile à utiliser via SSH.
Pourquoi je l'ai développé
Transmission convient particulièrement bien comme démon sur un serveur domestique, mais ses interfaces distantes habituelles ne s'intègrent pas toujours à un flux de travail centré sur le terminal. Le client officiel en ligne de commande est efficace pour les opérations ponctuelles, tandis que l'interface Web nécessite un navigateur et propose un mode d'interaction différent.
Transmission TUI se place entre ces deux approches. Il fournit une vue interactive persistante du démon tout en conservant l'immédiateté d'une application terminal native. L'interface est conçue principalement pour le clavier et évite d'introduire un service Web supplémentaire dans le système.
Fonctionnalités principales
- surveillance en temps réel des torrents et des débits de transfert ;
- recherche, filtrage et listes de torrents triables ;
- informations détaillées sur les torrents et les trackers ;
- ajout de torrents depuis des liens magnet ou des URL ;
- pause, reprise, vérification et suppression ;
- sélection des fichiers et gestion des priorités par fichier ;
- limites de débit montant et descendant ;
- déplacement des données téléchargées ;
- diagnostic des trackers pour identifier les problèmes de connectivité ou d'annonce.
L'objectif n'est pas de reproduire toutes les options proposées par Transmission. L'interface se concentre sur les opérations les plus utiles pour l'administration distante courante.
Conception et architecture
L'application conserve volontairement une empreinte technique réduite :
- Python 3.11 ou ultérieur pour l'application ;
- Textual pour l'interface utilisateur en terminal ;
- transmission-rpc pour communiquer avec le démon.
Séparer l'interface du démon présente deux avantages. Transmission continue à gérer les téléchargements indépendamment, et la TUI n'a besoin d'être lancée que lorsqu'une vue interactive est nécessaire. Cela rend également l'application adaptée à un usage distant via SSH.
La conception suit quelques principes simples :
- interaction pilotée au clavier ;
- présentation claire des informations opérationnelles ;
- dépendances minimales et absence de frontend Web supplémentaire ;
- compatibilité avec un démon Transmission hébergé à distance ;
- comportement prévisible lors des opérations destructives.
Installation
Le projet peut actuellement être installé directement depuis son dépôt Git avec uv :
uv tool install git+https://github.com/fmaillar/transmission-tui.gitLa commande installée devient alors disponible sous la forme :
transmission-tuiPour le développement, clonez le dépôt et créez l'environnement verrouillé :
git clone https://github.com/fmaillar/transmission-tui.git
cd transmission-tui
uv sync
uv run transmission-tuiUn endpoint RPC Transmission accessible est requis. Les paramètres d'authentification et de connexion dépendent de la configuration du démon.
État du projet
Transmission TUI est un projet personnel libre et actif. La version 0.2.0 marque son passage d'une interface de surveillance à une application de gestion plus complète. Il est déjà utile pour l'administration quotidienne, mais doit encore être considéré comme un logiciel en évolution plutôt que comme un client mature destiné à la production.
Le code source, l'historique des versions, les détails d'installation et les limites actuelles sont disponibles dans le dépôt du projet.
- Code source : github.com/fmaillar/transmission-tui
- Licence : licence MIT
- Version actuelle : 0.2.0