RemoteCmd
Příkazy, soubory a snímky obrazovky na počítačích za NAT a firewallem přes relé, bez otevřeného portu. Ovládá se přes REST API nebo z AI agenta přes MCP.
Sestavovací stroj v kanceláři, počítač u zákazníka za jeho routerem, testovací notebook v jiné síti: na každém z nich je občas potřeba spustit příkaz, stáhnout log nebo nahrát soubor, a žádný z nich není vidět z internetu. RemoteCmd to řeší relé uprostřed. Počítače se k němu samy hlásí odchozím HTTP každých 800 ms, takže se na nich nemusí otevírat žádný port, a příkazy jim posílají skripty přes REST API nebo agenti umělé inteligence přes MCP.
Bez otevřeného portu a bez vzdálené plochy
SSH potřebuje, aby byl cílový stroj dosažitelný zvenku, tedy otevřený port, přesměrování na routeru nebo VPN. Vzdálená plocha se zase ovládá myší a skript ani agent s ní pracovat neumí. RemoteCmd otočí směr spojení: spojení navazuje vždy počítač, ne ten, kdo ho ovládá. Funguje proto za NAT, za firemním firewallem i na mobilním připojení, kde veřejná adresa vůbec není. Výsledek příkazu se vrací jako text s návratovým kódem, se kterým umí pracovat skript i jazykový model.
Co RemoteCmd umí
- Příkazy na kterémkoli stroji. Spustí PowerShell nebo bash na spárovaném počítači a vrátí výstup i návratový kód. Časový limit se zadává u každého příkazu.
- Soubory oběma směry. Nahraje a stáhne soubor, přes REST až 200 MB, přes MCP do 20 MB přímo v odpovědi.
- Snímek obrazovky. Vyfotí obrazovku vzdáleného počítače jako PNG, takže agent vidí, co se na stroji děje. Klient spuštěný jako služba Windows běží v relaci 0 bez plochy a odpověď to rovnou řekne, místo aby vrátila černý obdélník.
- Přidání stroje na jeden příkaz. Na dashboardu se vytvoří jednorázový kód a k němu hotový instalační příkaz pro Windows, Linux nebo macOS. Skript stáhne klienta pro správný systém a procesor, vymění kód za vlastní 256bitový klíč stroje, připne certifikát relé a spustí klienta jako službu. Opakované spuštění bez kódu klienta aktualizuje a nastavení nechá.
- Agent jednou adresou. Claude Code se připojí příkazem
claude mcp add --transport http remote-cmd https://relay:7890/mcp. Agent dostane nástroje pro výpis strojů, spuštění příkazu, zápis a čtení souboru a snímek obrazovky. - Přehled na jednom místě. Dashboard v podobě, která je v kódu po verzi 2.7.0, ukazuje stroje s jejich systémem, účtem a verzí klienta, příkazovou řádku a záznam všech příkazů s výstupem, přenosů, spojení i odmítnutých požadavků, s hledáním a filtry.

--dashboard: stav spojení, počet dotazů na relé a příkazy, které přišly ke spuštění.Jak funguje relé
Relé poslouchá na portu 7890 pro stroje, skripty a agenty. Dashboard běží na portu 7891 a jen na localhost, takže zvenku se k němu nikdo nedostane. Skripty posílají příkazy na /api/exec, soubory na /api/upload a /api/download, snímek na /api/screenshot; token jde v hlavičce X-Token. Když je připojený jen jeden stroj, parametr client se vynechá.
Agent se přihlašuje přes OAuth s PKCE. V prohlížeči uvidí šestimístný kód a tentýž požadavek se objeví na dashboardu. Člověk kódy porovná a přístup schválí; agent tím dostane vlastní přihlašovací údaj, který jde kdykoli odvolat.
Relé i klient jsou napsané v C# na .NET 9 a vydávají se jako samostatné spustitelné soubory pro Windows, Linux a macOS na x64 i arm64, bez nutnosti instalovat běhové prostředí. Instalační skript je zaregistruje jako službu Windows, jednotku systemd nebo úlohu launchd. Pro Windows 7 je klient na .NET Framework 4.8, který místo párování používá tokeny, a pro Android s rootem klient v Kotlinu, který spouští příkazy přes su.
Bezpečnost ve vrstvách
Spojení chrání TLS s vlastním certifikátem relé, který si spárované počítače připnou a jiný odmítnou. Každý příkaz, výsledek i soubor je navíc šifrovaný AES-256-GCM klíčem daného počítače, takže obsah zůstane chráněný i tam, kde relé běží bez TLS. Párovací kód má 50 bitů, platí 15 minut, po pěti chybných pokusech propadne a ověřuje výměnu klíčů ECDH. Vydaný klíč tak nejde po síti v použitelné podobě ani přes nešifrované HTTP.
- Stroj smí se svým klíčem jen vyzvedávat práci a odpovídat na ni. Posílat příkazy jiným strojům, vypsat je ani se za jiný stroj vydávat nemůže, protože jeho identitu určuje klíč.
- Relé ukládá jen otisky tokenů a odvozené klíče, nastavení čte jen vlastník souboru a tokeny se neobjevují v příkazové řádce ani v definici služby.
- Kdo za minutu desetkrát zadá špatný token, kód nebo heslo, má na pět minut zavřeno.
- Dashboard odmítá cizí hlavičku
Host, takže ho nejde zneužít přes DNS rebinding, a volitelně chrání přístup heslem. Bez hesla ho otevře každý, kdo má relaci na stroji s relé.
Kde se hodí
- Správa několika počítačů u zákazníků, kde nejde měnit nastavení routeru.
- Sestavovací a testovací stroje, na kterých skript v CI spouští příkazy a stahuje výsledky.
- Agent, který ladí aplikaci na jiném počítači: spustí ji, přečte log a udělá snímek obrazovky, a člověk na dashboardu vidí každý jeho krok.
Pro práci s místním vývojovým prostředím má agent server MCP i v NKS WebDev Console. Když je potřeba z jiného počítače používat přímo USB zařízení, ne jen spouštět příkazy, slouží k tomu NKS UsbShare, který se dá řídit přes MCP také.
Stav projektu
Poslední vydaná verze je 2.7.0 ze 7. října 2026 a vydání nese relé i klienta pro šest kombinací systému a procesoru, klienta pro .NET Framework 4.8 a ladicí APK pro Android. Licence MIT přibyla do repozitáře 10. října 2026, až po tomto vydání. Předělaný dashboard na jedné stránce s průvodcem párováním je zatím jen v kódu a vyjde s další verzí.
Jak začít
Relé se na Windows nainstaluje jedním příkazem v PowerShellu spuštěném jako správce, na Linuxu a macOS takto:
curl -fsSL https://raw.githubusercontent.com/nks-hub/remote-cmd/main/install.sh | sudo sh -s -- server
Potom se na stroji s relé otevře http://localhost:7891 a tlačítkem pro spárování se vytvoří kód pro první počítač. Hotové balíky pro všechny systémy jsou na GitHub Releases.
Zdrojový kód
Kód je na github.com/nks-hub/remote-cmd pod licencí MIT.