Service auto-hébergé
UniClipboard/UniClipboard avatar
UniClipboard/UniClipboard

UniClipboard : synchronisation de presse-papiers locale et chiffrée de bout en bout

Synchronisation du presse-papiers en temps réel sur tous vos appareils, en local d'abord, peer-to-peer et crypté de bout en bout. Aucun compte. Aucune dépendance au cloud. Pas de serveur central.

1 716 étoiles78 forksRustAGPL-3.0

En bref

De quoi s’agit-il ?
Un regard basé sur les sources sur la façon dont UniClipboard couple les appareils, protège les données du presse-papiers et où se situe son mode de compatibilité mobile.
À qui s’adresse-t-il ?
UniClipboard est un projet Rust en développement actif qui synchronise les données du presse-papiers entre appareils sans serveur central, grâce à des espaces chiffrés et un transport P2P. L'application mobile utilise actuellement un mode de compatibilité HTTP limité dans le temps, et la licence AGPL-3.0 accorde les libertés d'utilisation, de modification et de distribution avec des obligations de disponibilité du code source.
Puis-je l’utiliser commercialement ?
Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Rust, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Synchronisation du presse-papiers sans serveur central

UniClipboard est une application écrite en Rust qui permet de copier sur un appareil et de coller sur un autre, même à travers des réseaux différents. La description du dépôt met en avant une conception locale, pair à pair et un chiffrement de bout en bout ; aucun compte, aucune dépendance au cloud et aucun serveur central ne sont nécessaires. Le README avertit que le projet est en développement actif et peut comporter des fonctionnalités instables ou manquantes. Selon les métadonnées du dépôt, le projet compte 1 458 étoiles, 68 forks et 163 problèmes ouverts, et n'est pas archivé.

Espaces et appairage par code d'invitation

Les appareils forment un « espace » partagé en générant un code d'invitation sur un appareil existant, puis en saisissant ce code avec une phrase de passe d'espace sur un nouvel appareil. Aucun compte cloud ni e-mail n'est nécessaire ; le README décrit cela comme deux appareils qui acceptent de se faire confiance. Chaque espace possède sa propre clé maîtresse, et lors du passage à un autre espace, l'historique local est rechiffré avec la nouvelle clé. La CLI offre un chemin join non destructif et un chemin --switch pour changer d'espace.

Détails du transport et du chiffrement

La couche de transport tente d'abord une connexion directe pair à pair, utilise le NAT hole-punching sur des réseaux différents, et retombe sinon sur un relais chiffré. Le README indique que le chiffrement de la charge utile est indépendant du transport, de sorte que même un relais malveillant ne voit que du texte chiffré. Le chiffrement utilise XChaCha20-Poly1305 AEAD avec un nonce de 24 octets et une clé de 256 bits ; les phrases de passe sont dérivées avec Argon2id (128 Mo de mémoire, 3 itérations, 4 threads). La clé maîtresse est stockée dans un fichier KeySlot et protégée par une clé de chiffrement de clé conservée dans le trousseau système.

Mode de compatibilité mobile et ses limites

Les versions iOS et Android actuelles utilisent un mode de compatibilité HTTP limité dans le temps plutôt que le noyau P2P complet. Le démon de bureau expose un petit service HTTP sur le LAN, et le téléphone lit et écrit le presse-papiers via celui-ci. Le README est explicite : ces clients de compatibilité ne sont pas des pairs de l'espace, n'effectuent pas de NAT hole-punching et utilisent du HTTP en clair avec Basic Auth, sauf s'ils sont placés derrière un proxy inverse TLS. iOS ne dispose pas non plus de synchronisation silencieuse en arrière-plan ; l'application n'échange des données que lorsqu'elle est au premier plan ou après un appui sur une notification.

Options d'installation et compilation depuis les sources

Des paquets précompilés sont disponibles sur GitHub Releases pour Windows, macOS et Linux. Un script d'installation en une ligne sur https://uniclipboard.app/install.sh détecte le système d'exploitation et le processeur. Les utilisateurs Linux peuvent activer un dépôt COPR pour Fedora/RHEL/openSUSE ou installer directement des fichiers .deb et .rpm. Les utilisateurs macOS peuvent installer via un tap Homebrew. Pour compiler depuis les sources, il faut cloner avec --recurse-submodules, puis exécuter 'bun install' et 'bun tauri dev' ou 'bun tauri build'.

L'outil en ligne de commande et le panneau rapide

UniClipboard est livré avec une CLI 'uniclip' qui reflète le flux de l'interface graphique et fonctionne sans affichage. Les commandes documentées incluent 'uniclip init' pour créer un espace, 'uniclip invite' pour générer un code d'invitation, 'uniclip join' pour utiliser une invitation, 'uniclip send' pour envoyer le contenu du presse-papiers et 'uniclip watch' pour diffuser les événements du presse-papiers. L'interface graphique propose également un panneau rapide (Quick Panel) en superposition avec raccourci clavier, offrant un aperçu intégré pour le texte, les liens, les images, le code et les fichiers. Les pages principales sont Dashboard, Quick Panel, Appareils et Paramètres.

État du dépôt, licence et contributions

Le dépôt est écrit en Rust et liste dans les remerciements Tauri, React, iroh, Tokio et plusieurs bibliothèques front-end. Le README invite toute contribution et renvoie à CONTRIBUTING.md pour la configuration, la stratégie de branche et les conventions de commit. Le projet est sous licence AGPL-3.0, ce qui autorise la copie, la distribution et la modification du programme, et exige que le code source soit disponible lorsqu'une version modifiée s'exécute sur un serveur réseau. Le texte de licence ne dit rien sur les garanties de sécurité, le support ou la garantie ; il se contente de refuser toute garantie dans la mesure permise par la loi.

Conclusion éditoriale

UniClipboard est un projet Rust en développement actif qui synchronise les données du presse-papiers entre appareils sans serveur central, grâce à des espaces chiffrés et un transport P2P. L'application mobile utilise actuellement un mode de compatibilité HTTP limité dans le temps, et la licence AGPL-3.0 accorde les libertés d'utilisation, de modification et de distribution avec des obligations de disponibilité du code source. Pour une décision propre à UniClipboard, commencez par le chemin documenté avec UniClipboard, observez l'entrée et la sortie produites, puis vérifiez la licence AGPL-3.0 avant toute redistribution ou intégration.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté