🌐 Landing page : oli97430.github.io/OneClickKVM
Contrôle multi-PC chiffré pour Windows — partage clavier, souris, presse-papier, fichiers, audio et écran entre plusieurs ordinateurs sur le réseau local.
OneClick KVM est une application peer-to-peer qui permet à un PC « maître » de contrôler jusqu'à 10 PCs avec un seul clavier et une seule souris (mode KM), ou jusqu'à 5 PCs avec affichage vidéo de leur écran (mode KVM). Tout le trafic est chiffré AES-256-GCM avec échange de clés X25519 ECDH (Perfect Forward Secrecy) et signatures Ed25519.
| Domaine | Fonctionnalité |
|---|---|
| KM | Clavier/souris partagés via bord d'écran ou hotkey Ctrl+Alt+Win+1..9 |
| Vidéo | Capture écran via Windows Graphics Capture, encodage H.264 (openh264) |
| Audio | Capture WASAPI loopback, encodage Opus 64 kbps (~25× moins que PCM) |
| Fichiers | Drag & drop multi-thread + vérification BLAKE3 + sandbox path traversal |
| Presse-papier | Sync multi-format (texte UTF-8, RTF, HTML, PNG, fichiers) |
| Découverte | mDNS _oneclick-kvm._tcp.local. + broadcast UDP fallback |
| Identité | Ed25519 long-terme persistée via Windows DPAPI (user scope) |
| UI | Tauri 2 + Svelte 5, FR/EN complet + DE/ES/IT/PT/NL/JA/ZH partiel (auto-détection locale Windows) |
| Système | System tray, démarrage minimisé, hotkeys, autostart Windows |
| Distribution | Installeur NSIS 4 MB, install per-user sans admin |
oneclick-kvm/
├── crates/ # Workspace Cargo (20 crates Rust)
│ ├── okvm-core/ # Types partagés, erreurs, identités
│ ├── okvm-crypto/ # AES-256-GCM, X25519, Ed25519, HKDF
│ ├── okvm-protocol/ # Framing binaire, opcodes, bincode
│ ├── okvm-net/ # Transport TCP chiffré + handshake
│ ├── okvm-discovery/ # mDNS + UDP broadcast
│ ├── okvm-input-capture/ # Hooks Win32 WH_KEYBOARD_LL / WH_MOUSE_LL
│ ├── okvm-input-inject/ # SendInput
│ ├── okvm-switch/ # Edge detection, grille, hotkeys
│ ├── okvm-clipboard/ # Win32 clipboard multi-format
│ ├── okvm-files/ # Transfert + BLAKE3 + sandbox
│ ├── okvm-audio/ # cpal WASAPI loopback + Opus
│ ├── okvm-video/ # Windows Graphics Capture + H.264
│ ├── okvm-wol/ # Wake-on-LAN magic packets
│ ├── okvm-power/ # LockWorkStation, Sleep, Shutdown
│ ├── okvm-logging/ # tracing + Windows Event Log
│ ├── okvm-config/ # Settings, peers, identity DPAPI
│ ├── okvm-i18n/ # Catalogues backend (Fluent-ready)
│ └── okvm-ipc/ # DTOs Tauri ↔ Svelte
├── app/ # Application Tauri
│ ├── src/ # Frontend Svelte 5 (12 composants)
│ └── src-tauri/ # Backend Rust qui orchestre les crates
├── docs/
│ ├── ARCHITECTURE.md # Vue d'ensemble système
│ ├── PROTOCOL.md # Format binaire wire complet
│ └── SECURITY.md # Modèle de menace + choix crypto
└── README.md # Ce fichier
Télécharge la dernière release depuis
github.com/Oli97430/OneClickKVM/releases
(fichier OneClick KVM_0.1.0_x64-setup.exe, ~4 MB), double-clic, install
en mode user (pas d'admin requis). L'app se lance via le menu Démarrer.
À la première ouverture, Windows demande l'autorisation pour les réseaux privés — coche-la pour permettre la découverte mDNS sur le LAN.
Prérequis :
rustup default stable-x86_64-pc-windows-msvc)Clone et démarre en mode dev (Vite + Tauri avec hot reload) :
git clone https://github.com/Oli97430/OneClickKVM.git
cd OneClickKVM/app
pnpm install
pnpm tauri:dev
Build release + installeur NSIS :
cd oneclick-kvm/app
pnpm tauri:build
# Produit : src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/OneClick KVM_X.Y.Z_x64-setup.exe
Tests :
# Tous les crates Rust (86 tests, dont tests d'intégration loopback handshake + UDP+FEC)
cd oneclick-kvm
cargo test --workspace
# Vérification TypeScript / Svelte
cd app
pnpm exec svelte-check --tsconfig ./tsconfig.json
Ctrl+Alt+Win+0 → retour curseur sur PC1.Documents/OneClickKVM/Inbox/.Clic "Partager audio" ou "Partager écran" dans le StatusBar. L'autre pair entend le son / voit l'écran en direct dans son panneau "Écrans partagés".
Voir docs/SECURITY.md pour le modèle de menace complet. Résumé :
Problèmes courants → docs/TROUBLESHOOTING.md (découverte LAN, pairing, capture clavier, audio crépitement, SmartScreen).
Tu peux lancer 2 instances OneClick KVM sur la même machine pour
valider le scénario complet appairage + KM + audio + écran + fichiers
sans 2 PC physiques. Variable d'env OKVM_INSTANCE isole les configs.
Le plus rapide (avec just installé) :
just dev-alice # terminal 1
just dev-bob # terminal 2
# OU avec les EXE release post-build
just run-2 # ouvre 2 fenêtres alice+bob
Guide pas-à-pas + 7 scénarios E2E : docs/TESTING.md.
Version actuelle : 0.1.4 (alpha, prêt pour usage personnel sur LAN de confiance).
RUSTFLAGS=-D warnings strict)Scope : OneClick KVM est Windows-only par design. Le code s'appuie en profondeur sur Win32 (DPAPI, WH_KEYBOARD_LL, SendInput, WASAPI loopback, Windows Graphics Capture, Media Foundation). Un portage macOS/Linux n'est pas prévu — les besoins KVM cross-OS sont déjà très bien couverts par Barrier ou Input Leap.
Code signing Authenticode n'est pas prévu (~300 €/an de cert récurrent pour un projet personnel ne vaut pas le coût). Conséquence assumée : SmartScreen affiche "Application non reconnue" au premier lancement. Les utilisateurs vérifient l'intégrité via le SHA-256 publié à chaque release (cf.
sha256.txt).
MIT OR Apache-2.0 — contributions bienvenues.
Le code embarque :