Agent skill

Remote Hosts

by libnativeapi in libnativeapi/nativeapi

Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in…

MITAuto-check passedMobile

Install Remote Hosts

skills CLI
$ npx skills add libnativeapi/nativeapi --skill remote-hosts -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install libnativeapi/nativeapi remote-hosts --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/libnativeapi/nativeapi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/remote-hosts .claude/skills/remote-hosts && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
remote-hosts
GitHub stars
157
Token cost
~1.3k tokens
SKILL.md length
593 words
Files
11 (incl. scripts, references)
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in…

  • Mobile work in your project
  • SKILL.md covers The model (same on every OS), The host's checkout and After the work
  • Runs Shell and PowerShell scripts from its folder; calls git and ssh

What it does

Remote Hosts is an agent skill from libnativeapi/nativeapi. Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in the bare SSH session or inside the real logged-on desktop session (needed for anything with windows, input, screen capture, and on Windows even for builds), and pull results back. Use this whenever a task says "test on Windows/Linux/the other Mac", "does it work on <platform", "build it there", "record on Windows", or…

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including scripts and reference files (for example `references/linux.md`, `references/macos.md` and `references/windows.md`).

It sits in Mobile. It works with Linux, macOS, PowerShell and Python. The repository describes itself as: Unified access to native system APIs (windows, tray icons, menus, displays, dialogs, …) for Dart/Flutter, Rust, C, JS/TS and Python, built on one C++ core. The licence is MIT.

When your agent uses it

  • Mobile work in your project

Example prompts

  • “test on Windows/Linux/the other Mac”
  • “does it work on <platform”
  • “build it there”
  • “/remote-hosts”

Requirements

  • A Bash shell
  • PowerShell

What it can do on your machine

Read from SKILL.md and the folder at commit e0ca21a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Shell and PowerShell), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • ssh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and ssh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Remote Hosts loads about 1.3k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 203 tokens; SKILL.md has 593 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~203
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from libnativeapi/nativeapi at commit e0ca21a, republished under its MIT licence (© libnativeapi). 593 words, ~1,335 tokens.

Download SKILL.mdSave it as .claude/skills/remote-hosts/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
remote-hosts
description
Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in the bare SSH session or inside the real logged-on desktop session (needed for anything with windows, input, screen capture, and on Windows even for builds), and pull results back. Use this whenever a task says "test on Windows/Linux/the other Mac", "does it work on <platform>", "build it there", "record on Windows", or needs to verify a platform-specific change on real hardware, even if the user only mentions the other machine in passing. It knows the traps per OS (Windows session 0, GBK output and PowerShell 5.1 encodings; X11 vs Wayland; macOS TCC) and how to leave the remote checkout clean.

remote-hosts

Every remote machine is a host: a name, an OS, an SSH target, and a few paths, in hosts/<name>.env. The directory is git-ignored (the repo is public — keep real addresses out of commits); templates for each OS are in hosts.example/. Everything goes through one script with the same verbs on every OS:

bash
R=.agents/skills/remote-hosts/scripts/remote.sh
$R hosts                                   # what is configured: name, os, ssh target
$R <host> setup                            # once per session: scratch dir, env file, helper kit
$R <host> exec '<snippet>'                 # quick command in the SSH session (PowerShell / bash)
$R <host> run my_script.ps1|.sh|.py [args] # push + run in the SSH session
$R <host> desktop my_gui_test.ps1 400      # push + run in the logged-on desktop session, wait <= 400 s
$R <host> pull frames ./frames             # copy results back from the scratch dir

If the host the user means is not configured, ask for its SSH target and paths and create hosts/<name>.env from the matching template; key-based SSH login must already work (ssh -o BatchMode=yes <target> echo ok).

The model (same on every OS)

  • Scratch directory on the host: everything you push lands there, flat. Put build trees and results there too — never in the host's checkout.
  • Env file, written by setup, loaded first by every script: env.ps1 ($RemoteWorkspace, $RemoteScratch, $Python) on Windows, env.sh (REMOTE_WORKSPACE, REMOTE_SCRATCH, PYTHON) elsewhere; both apply HOST_PATH_PREPEND.
  • Kit, pushed by setup by convention, so skills stay symmetric without a list to maintain: every skill's scripts/<os>/* (plus scripts/posix/* on Linux and macOS) and every portable scripts/*.py. A new OS-specific helper dropped into <skill>/scripts/<os>/ is picked up automatically. Re-run setup after editing kit files. run/desktop push only the one script you name, so keep test scripts self-contained apart from the kit (or push extra files first).
  • Two places a script can run. The SSH session has no desktop on any OS: use it for git, files, logs, and (except on Windows) builds. The desktop session is where windows, input and screen capture work; desktop gets a script in there (Windows: one-shot scheduled task; Linux: the X session's environment; macOS: launchctl asuser), captures everything it prints, waits, and ends with [desktop] finished after Ns, exit C. It needs the user logged on at the console and cannot unlock a screen. Output goes through one shared job.log in the scratch dir, so two sessions driving the same host at once read each other's output — check ls -lt in the scratch dir for fresh files before assuming a host is yours alone. On TIMEOUT the job may still be running — check before starting another, since both would fight over the mouse. For long jobs write progress to a file in the scratch dir and poll it with exec.
Show full SKILL.md (226 more words)Show less

Then read the notes for the host's OS — this is where the hours go:

OSNotesStatus
Windowsreferences/windows.md — session 0, encodings, MSBuild, fvm, CRLFverified, used for real test and recording runs
Linuxreferences/linux.md — X11 vs Wayland, XAUTHORITYdesigned, not yet run on a real host
macOSreferences/macos.md — TCC for SSH-launched input/capturedesigned, not yet run on a remote host

When you bring up a Linux or macOS host for the first time, expect to fix things, and write what you learn into its reference file.

The host's checkout

  • Same repository layout as here. Get changes there with git pull in each repo; for unpushed commits or an unreliable network, fetch between checkouts on the host, or scp a patch / the changed files.
  • Leave it as you found it. Record git status --short of every repo you will touch before you start; at the end git checkout -- only the files you changed and compare. Pre-existing local changes on that machine are the user's — do not revert them.

After the work

Fix what the test found in the local checkout, copy the changed files over to re-test, and only then commit locally. Clean up big artifacts in the scratch dir (frames/, build trees) when the user is done with them — ask before deleting builds that take minutes to recreate. Report per host what actually ran there.

© libnativeapi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts, references) in .agents/skills/remote-hosts of libnativeapi/nativeapi.

  • SKILL.md
  • hosts.example/linux.env
  • hosts.example/macos.env
  • hosts.example/windows.env
  • references/linux.md
  • references/macos.md
  • references/windows.md
  • scripts/posix/desktop.sh
  • scripts/remote.sh
  • scripts/windows/interactive.ps1
  • scripts/windows/job.vbs

Open the folder on GitHubat commit e0ca21a

Compare with similar skills

Remote Hosts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Remote Hosts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Remote Hosts this skilllibnativeapi/nativeapi157—~1.3kAutomated safety check: PassMIT
Local Asrysyecust/lecture-to-notes269—~1.6kAutomated safety check: PassCustom licence
Pdfkit Pyinfometa/workbuddyskills342—~7kAutomated safety check: NotesNone
Environment SetupNorman-bury/research-writing-skill3.3k—~840Automated safety check: PassMIT
UvBiFangKNT/mtga1.2k—~541Automated safety check: PassAGPL-3.0
Sino Drug Instructions Searchinfometa/workbuddyskills342—~1.1kAutomated safety check: NotesNone

Similar skills

  • Local Asr

    ysyecust/lecture-to-notes

    把本地长视频/音频转写成文字稿 + 可选字幕,纯本地(不上传云端),用 sherpa-onnx X-ASR Zipformer transducer 模型(int8 量化、中英双语、自动标点)。已在 macOS Apple Silicon(int8 + AMX,~100× 实时)、Linux ARM64(CPU,~32× 实时)与 Windows(PowerShell…

    269 GitHub stars~1.6k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed
  • Pdfkit Py

    infometa/workbuddyskills

    Pure-Python PDF toolkit with 50 commands covering reading, editing, conversion, forms, encryption, OCR, and IR.

    342 GitHub stars~7k tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Environment Setup

    Norman-bury/research-writing-skill

    A skill your agent uses when Python environment setup is needed for data visualization or conda installation is required

    3.3k GitHub stars~840 tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • Uv

    BiFangKNT/mtga

    在 Windows/macOS/Linux 上使用 uv 执行 Python 运行、依赖同步、锁文件管理、Python 版本管理与工具命令(uv run、uv sync、uv lock、uv python、uv tool)。当任务涉及“用 uv 运行脚本/命令”“临时依赖(--with)”“锁文件一致性(--locked/--frozen)”“跨平台…

    1.2k GitHub stars~541 tokensUpdated 3 mo ago
    Auto-check passed
  • Sino Drug Instructions Search

    infometa/workbuddyskills

    在用户询问药品说明书、用药信息、适应症、禁忌、用法用量、不良反应、成分、规格、厂家,或根据症状/疾病查找药品时使用此技能。⚠️ 调用前须已通过 useskill 加载本技能(sino-drug-instructions-search)。安装 sinohealthskillssdk;严格按照当前 SKILL.md 执行。

    342 GitHub stars~1.1k tokensUpdated today
    Auto-check: notes
  • Apple Container Test Runner

    RustPython/RustPython

    Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.

    22k GitHub stars~467 tokensUpdated today
    Testing & QAAuto-check passed

More from libnativeapi/nativeapi

  • Flutter UI Probe

    libnativeapi/nativeapi

    Find where widgets are on screen in a running debug Flutter desktop app (macOS, Windows, Linux) by reading its render tree through the VM service — no hard-coded coordinates, no screenshots, works…

    157 GitHub stars~988 tokensUpdated today
    Auto-check passed
  • Record Demo

    libnativeapi/nativeapi

    Record a demo video of a desktop app — launch it, play a scripted scenario with smooth synthetic mouse input, and capture the screen (cursor and click highlights included) straight to an…

    157 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Gui Test

    libnativeapi/nativeapi

    End-to-end test a desktop app (Flutter desktop apps and plain native executables such as C++ examples) by launching the real app, driving it with guarded synthetic mouse input — eased moves, clicks…

    157 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Core API Change

    libnativeapi/nativeapi

    Carry a change to the C++ public API in core/ all the way downstream — design check, header edit, six platform implementations, C ABI + Rust/Dart/C/JS/Python regeneration, per-binding verification…

    157 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Categories

Questions about Remote Hosts

What does Remote Hosts do?

Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in…. Remote Hosts is an agent skill from libnativeapi/nativeapi. Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in the bare SSH session or inside the real logged-on desktop session (needed for anything with windows, input, screen capture, and on Windows even for builds), and pull results back.

When should I use Remote Hosts?

Remote Hosts fits situations like: mobile work in your project.

How do I install Remote Hosts in Claude Code?

Run `npx skills add libnativeapi/nativeapi --skill remote-hosts -a claude-code`. Or copy the skill folder (.agents/skills/remote-hosts in libnativeapi/nativeapi) into .claude/skills/remote-hosts in your project. Claude Code loads it when a task matches its description.

How do I install Remote Hosts in Codex?

Run `npx skills add libnativeapi/nativeapi --skill remote-hosts -a codex`. Or copy the skill folder (.agents/skills/remote-hosts in libnativeapi/nativeapi) into .agents/skills/remote-hosts in your project. Codex loads it when a task matches its description.

Can I use Remote Hosts in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add libnativeapi/nativeapi --skill remote-hosts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remote-hosts, .gemini/skills/remote-hosts, .github/skills/remote-hosts and .opencode/skills/remote-hosts in your project.

What does Remote Hosts need to run?

Going by SKILL.md and its folder, Remote Hosts needs a shell and PowerShell for the scripts in its folder and the command-line tools its instructions call (git and ssh). Our summary lists: A Bash shell; PowerShell.

Does Remote Hosts access the network?

SKILL.md contains no URLs. Its commands use git and ssh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Remote Hosts safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Remote Hosts use?

Remote Hosts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Remote Hosts use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.3k tokens, read only when the agent opens those files.

What are the alternatives to Remote Hosts?

Skills that share tags, products or a category with Remote Hosts: Local Asr (ysyecust/lecture-to-notes, 269 stars), Pdfkit Py (infometa/workbuddyskills, 342 stars), Environment Setup (Norman-bury/research-writing-skill, 3.3k stars) and Uv (BiFangKNT/mtga, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Remote Hosts?

libnativeapi (a GitHub organization) maintains it in libnativeapi/nativeapi, which has 157 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: libnativeapi/nativeapi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.