BrowserStack Live Testing
handsontable/handsontable
Opens a live BrowserStack session on a real Android, iOS or desktop browser for a local or public URL, tunneling localhost through Cloudflare when needed.
Make an existing single-player web game multiplayer in a Homie studio.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins port --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .claude/skills/port && rm -rf skills-srcUse ~/.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/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .claude/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/portType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins port --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .agents/skills/port && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .agents/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins port --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .cursor/skills/port && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .cursor/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hashgraph-online/awesome-codex-plugins.git --path plugins/homie-rocks/homie/skills/port--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins port --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .gemini/skills/port && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .gemini/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hashgraph-online/awesome-codex-plugins portInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .github/skills/port && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .github/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill port -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins port --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/port .opencode/skills/port && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "port" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/homie-rocks/homie/skills/port into .opencode/skills/port/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
portMake an existing single-player web game multiplayer in a Homie studio.
Port is an agent skill from hashgraph-online/awesome-codex-plugins. Make an existing single-player web game multiplayer in a Homie studio. Reads the game (loop, input, state, camera), grades the port easy, medium, hard or not a fit and says why, adds netplay public rooms (bots in empty seats, join in progress, host handoff, rounds), phone touch controls, a stable camera and the big-screen view, proves it with the owner tests (held and alternating directions, real touch on iPhone WebKit and Android Chrome, a late joiner, a killed host, two fresh browsers finishing a round), then…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/CHECKS.md`, `references/LESSONS.md` and `references/PORT-TEMPLATE.md`).
It sits in Game Development, covering Game design. It works with Cloudflare and Android. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 78497e5. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxnpmgitwranglerFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Port loads about 3.6k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 183 tokens; SKILL.md has 2,127 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its Apache-2.0 licence (© hashgraph-online). 2,127 words, ~3,583 tokens.
.claude/skills/port/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.A port is done when strangers who press Play land in the same live room, each browser renders the game itself, bots fill the empty seats, rounds end and restart, the controls mean the same thing every second on a phone and a computer, and the checks below pass on the live site. Take as long as it needs; quality is the bar, not speed. Never call it done on a guess: the checks say, or you say plainly what still fails.
The person should not have to type anything after asking. Find what you need, decide, and keep going. Stop only for something only they can give: the one Cloudflare approval, a licence question, or a game that is not a fit.
Finish in this turn. A port takes a long time; stay with it until it is live and
checked. Never end your turn, schedule a wake-up, or hand back "it is running" while
a check, a build or a deploy is still going: wait for it by polling (a short sleep
then tail of its log, repeated) and keep working. When your turn ends, the
processes you started (the dev server, a running check) end with it, and a
half-ported game is left behind.
index.html. Otherwise look one level down for the only folder with one.studio.json: here or above, else next to the
game (find .. -maxdepth 2 -name studio.json). One found: use it. None: set one
up first with the studio-setup skill (name it after the person's game), then
come back. Several: use the one the person named, or ask which.npx --no-install homie-studio port plan <game>
must work. If it says unknown command, the studio's @homie-rocks/studio is older than
the port toolkit: call the Homie MCP tool game_port for the pinned package and
install it exactly as it says, then run npm install. Without the connector,
npx -y @homie-rocks/studio@latest upgrade says what to change (the studio-setup skill, "An existing
studio that is behind").npx --no-install homie-studio port plan <game folder>The plan is a draft from reading files: engine, loop, input, camera, physics,
storage, audio, size, licence, risks, and a grade. Now read the code yourself: the
main loop, where input is read, what the state is (player, enemies, pickups, level,
score), how the camera moves, what "game over" is. Then write PORT.md in the game
(template: references/PORT-TEMPLATE.md) with:
Tell the person the grade and why in two or three lines, then go on. If it is not a fit (it needs its own server, WebAssembly threads, or its licence forbids it), stop there and explain what would make it portable. The port toolkit is in beta: a game that is not a fit today, or a port the checks cannot judge, is worth a port request at https://github.com/homie-rocks/homie/issues/new/choose (the game's public address and licence, the grade and why; no keys or private addresses).
Licence: a game you did not make must carry a licence that allows changing and publishing it (MIT, Apache-2.0, BSD, ISC...). Keep the licence file with the game. No licence, or a licence that forbids it: port it for private testing only and say so.
npx --no-install homie-studio port import <game folder> --id <id> [--name "<Name>"]It copies the game to games/<id>/ untouched except: the port toolkit loads first
in <head> (sandbox shims, first-touch audio, window.HomiePort) and the viewport
is phone-safe. game.json says how it builds: static (the folder as it is, for
plain <script> games), bundle (an ES-module entry bundled by esbuild), or
command (its own Vite/webpack build; set its base to ./). The id is the
game's address: lowercase, digits, hyphens.
Follow references/RECIPE.md: it has the worked example
(a single-player canvas game turned multiplayer with createRoom), the patterns
for turn-based, 2D action, platformer/physics and 3D games, and what goes in
snapshots, keyed state and checkpoints. The rules that people's hands and real
phones taught, with the bugs behind them, are in
references/LESSONS.md. Read both before writing code.
Non-negotiable, every port:
BotBrain skill: () => room.skillOf(body) (reaction, aim and commitment follow
the party's vote) and use jitter, engages and standoff for the rest of a
bot's choices. createRoom keeps a hybrid server's AI seats and labels them AI.
For guides that talk (a beginner server), give the game a vocabulary and useAgents
(the game skill's "Write the guide vocabulary"; NETPLAY.md section 18). For AI that
picks the bots' tactics or a director's call, room.net.decide per beat, never per
frame, opt-in and with the game's own floor (the game skill's "Let the game decide
with AI"; NETPLAY.md section 20).
Room chat needs nothing from a port (the play page has it); draw speech bubbles over
characters with createBubbles / paintBubbles from net.on('say') (NETPLAY.md section 19).fitView does it: the whole world where
it reads, else the world fills the screen and follows your body, never past
its edge but for the HUD's margins. Names drawn over bodies pile up when they
crowd: place them with createLabels (yours first, never covered; the rest
move or fade). Both starters show the pattern.
Your own body is unmistakable at a glance (a ring or highlight plus "You")./<id>/tv) is a spectator: no body, no personal prompts,
an overview or director camera, readable from across a room. A watcher
(/<id>/watch) follows one player: point the camera at room.viewBody() (your
own local body when it is your seat) and the HUD at its numbers, and fall back to
the overview when it is null (the recipe's section 8).exposePort (see the recipe): the checks cannot judge a
game that does not report where its player is. In its extra, set the state hooks the
playtest and perf read by name, whichever the game has (PortExtra in the port
kit types them): alive, mode, loadout, touchHeld, and in a 3D game
drawCalls and triangles from renderer.info.render. The round needs no hook
(createRoom gives it).In the studio, start the site locally and run the checks. Both are long-running:
start each as a background task your app keeps alive (Claude Code: the Bash
tool's run_in_background; a nohup ... & inside an ordinary command can be killed
when that command returns, and a dev server that dies mid-check fails every later
row). The full check takes 3–6 minutes; poll its log with short commands.
npm run dev > .dev.log 2>&1 # background task: http://127.0.0.1:8787
npx --no-install homie-studio port check <id> --url http://127.0.0.1:8787 > .port-check.log 2>&1 # background task
tail -5 .port-check.log # poll until it prints PASS or NOT YETThe check says so when the site stops answering; restart the dev server as a background task and rerun.
--only owner-desk,owner-phone,... reruns single rows while you fix. Each row, what
it measures and how to fix a failure: references/CHECKS.md.
npm i -D playwright-core@1.58.2 && npx playwright-core install webkit).Look at the screenshots in games/<id>/.port/check-*/ yourself: is your own
body easy to find, does the world fill an upright phone, is the text readable,
does the big screen show the game? A passing check with an ugly, tiny or
confusing picture is not done. When you debug in a browser of your own, open one
at a time (the check already runs two). Fix, rebuild
(npm run build; the dev server serves the new files), check again. When you are
done, stop the dev server: stop it with npx --no-install homie-studio dev --stop, which stops exactly this studio's dev server (and its Wrangler) and nothing else. Never pkill, killall or lsof ... | xargs kill by name or port: other projects on this machine may run their own wrangler dev, and a pattern stops theirs too.
If something still fails after real effort, say exactly which row, what you saw, and why — never hide it.
When the rows pass, the port works; whether it is good is the playtest skill's question: it adds a
phone held sideways, the look while playing, the UI in landscape, the game's real sound, a round with
one player trying and one idle, and a blind review by a fresh reviewer. A port that went silent or
never had sound: the sound skill makes and wires effects and a theme for free.
Follow the publish skill: npm run deploy (the person approves Cloudflare once
if Wrangler is not signed in), then run the full check against the live site:
npx --no-install homie-studio port check <id> --url <the live site> > .port-check-live.log 2>&1 # background taskThen list it with the Homie MCP tool studio_publish { site } (without the connector,
npx --no-install homie-studio publish). Commit the studio
(git add -A && git commit -m "Port <Name> to multiplayer" inside the studio).
Five to eight lines: the grade and why; what multiplayer means in their game now (rounds, bots, what the host decides); the check table (each row pass/fail, with the numbers that matter); the Play link, the big-screen link and the directory listing; and anything still weak, plainly. If something in Homie itself got in the way, say it can be reported at https://github.com/homie-rocks/homie/issues/new/choose.
© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in plugins/homie-rocks/homie/skills/port of hashgraph-online/awesome-codex-plugins.
Open the folder on GitHubat commit 78497e5
Port 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Port this skillhashgraph-online/awesome-codex-plugins | 1.2k | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| BrowserStack Live Testinghandsontable/handsontable | 22k | — | ~950 | Automated safety check: Pass | Custom licence | |
| Remote Installericodesign/remote-installer | 106 | — | ~4k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Godot Gdscript Patterns925236118/AlphaAgent | 103 | 10 repos | ~5k | Automated safety check: Pass | MIT | |
| Webhome Homepage Builderwebhtv/webhtv | 1.7k | — | ~3.8k | Automated safety check: Pass | GPL-3.0 |
handsontable/handsontable
Opens a live BrowserStack session on a real Android, iOS or desktop browser for a local or public URL, tunneling localhost through Cloudflare when needed.
icodesign/remote-installer
Put an iOS or Android build on a real phone or tablet over the air with the remote-installer CLI — it validates the build, opens a temporary HTTPS tunnel, and prints one or more install URLs plus QR…
valkor-ai/loom
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…
925236118/AlphaAgent
Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.
webhtv/webhtv
Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.
corosolto/client
Build and iterate playable Three.js game systems. An agent skill from corosolto/client.
hashgraph-online/awesome-codex-plugins
Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.
hashgraph-online/awesome-codex-plugins
Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).
hashgraph-online/awesome-codex-plugins
A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…
hashgraph-online/awesome-codex-plugins
Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…
hashgraph-online/awesome-codex-plugins
Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.
hashgraph-online/awesome-codex-plugins
Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…
Works with
Categories
Make an existing single-player web game multiplayer in a Homie studio. Port is an agent skill from hashgraph-online/awesome-codex-plugins. Make an existing single-player web game multiplayer in a Homie studio.
Port fits situations like: someone says make this multiplayer; make my game multiplayer on Homie; port this game to my studio; points at a single-player web game.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill port -a claude-code`. Or copy the skill folder (plugins/homie-rocks/homie/skills/port in hashgraph-online/awesome-codex-plugins) into .claude/skills/port in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill port -a codex`. Or copy the skill folder (plugins/homie-rocks/homie/skills/port in hashgraph-online/awesome-codex-plugins) into .agents/skills/port in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill port -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/port, .gemini/skills/port, .github/skills/port and .opencode/skills/port in your project.
Going by SKILL.md and its folder, Port needs the command-line tools its instructions call (npx, npm, git and wrangler). Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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. Review the folder before installing.
Port is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k 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 9.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Port: BrowserStack Live Testing (handsontable/handsontable, 22k stars), Remote Installer (icodesign/remote-installer, 106 stars), Threejs Gameplay Systems (valkor-ai/loom, 1.2k stars) and Godot Gdscript Patterns (925236118/AlphaAgent, 103 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 2026.
Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.