← Kód máme venku

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.

Náhled RemoteCmd

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.
Konzole klienta RemoteCmd 2.7.0 ve stavu CONNECTED s počtem dotazů na relé a záznamem dvou přijatých příkazů v PowerShellu
Konzole klienta s přepínačem --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.

← Zpět na přehled