Release
ar-io/ar-io-node
Drive the AR.IO Node release process end-to-end — preflight checks, prepare commit, finalize with image SHAs, test docker compose profiles, tag & publish, and post-release cleanup.
Named HTTPS .localhost URLs with portless (v0.15.x). An agent skill from yonatangross/orchestkit.
$ npx skills add yonatangross/orchestkit --skill portless -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yonatangross/orchestkit portless --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/yonatangross/orchestkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/portless .claude/skills/portless && 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 "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .claude/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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/yonatangross/orchestkit/tree/main/src/skills/portlessType 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 yonatangross/orchestkit --skill portless -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yonatangross/orchestkit portless --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/portless .agents/skills/portless && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .agents/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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 yonatangross/orchestkit --skill portless -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yonatangross/orchestkit portless --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/portless .cursor/skills/portless && 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 "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .cursor/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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/yonatangross/orchestkit.git --path src/skills/portless--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 yonatangross/orchestkit --skill portless -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yonatangross/orchestkit portless --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/portless .gemini/skills/portless && 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 "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .gemini/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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 yonatangross/orchestkit portlessInstalls 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 yonatangross/orchestkit --skill portless -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/portless .github/skills/portless && 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 "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .github/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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 yonatangross/orchestkit --skill portless -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yonatangross/orchestkit portless --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/portless .opencode/skills/portless && 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 "portless" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/portless into .opencode/skills/portless/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "portless", 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.
portlessNamed HTTPS .localhost URLs with portless (v0.15.x). An agent skill from yonatangross/orchestkit.
Portless is an agent skill from yonatangross/orchestkit. Named HTTPS .localhost URLs with portless (v0.15.x). Eliminates port collisions, gives agents stable URLs, adds branch-named subdomains for git worktrees, LAN mode (--lan), and Tailscale sharing. Use when setting up a local dev environment or testing from phones and tablets on the same wifi. Do NOT use for production deployments, CI environments (set PORTLESS=0), or DNS/hosting configuration.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `checklists/new-project-setup.md`, `references/framework-integration.md` and `references/upstream-oauth.md`). Compatibility notes: Claude Code 2.1.277+
It sits in DevOps & Cloud, covering Git worktrees and Deployment. It works with Node.js. The repository describes itself as: The Complete AI Development Toolkit for Claude Code. 106 skills, 36 agents, 171 hooks. Install ork for stable (v9.x), or ork-alpha for the v10 line, which ships daily. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e4ff8d9. 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:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From 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.
Claude Code 2.1.277+
From compatibility in the SKILL.md frontmatter.
Portless loads about 2.4k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 101 tokens; SKILL.md has 882 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 yonatangross/orchestkit at commit e4ff8d9, republished under its MIT licence (© yonatangross). 882 words, ~2,405 tokens.
.claude/skills/portless/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Named .localhost URLs for local development. Replaces localhost:3000 with https://myapp.localhost.
Full CLI reference: Load
Read("references/upstream.md")for complete command docs.
portless doctor (0.15.0) — read-only diagnostics that check Node.js, the state directory, proxy liveness, route entries, hostname resolution, HTTPS CA trust, and LAN prerequisites, then print suggested fixes. Run it before filing an issue or when a .localhost URL won't resolve.:authority as Host to HTTP/1.1 backends, fixing apps that read Host and previously saw 127.0.0.1 for browser traffic. --force takeover cleanup now removes only routes still owned by the exiting process, so a forced takeover no longer deregisters the new owner's route.--ngrok flag (0.14.0) — share an app publicly via ngrok while local access keeps its .localhost URL. Pair with the existing Tailscale/Funnel options when you need a public URL without giving up the named-subdomain dev experience..localhost URLs survive reboot reliably.~/.portless (0.11, BREAKING) — state relocated from scattered/temp locations to ~/.portless; override with PORTLESS_STATE_DIR. Old state from pre-0.11 installs is not migrated automatically.portless service install / service status / service uninstall register a native startup service for the HTTPS proxy across macOS launchd, Linux systemd, and Windows Task Scheduler. .localhost URLs survive reboot without a manual portless proxy start. portless clean removes the service alongside CA + hosts cleanup.--tailscale and --funnel now validate Tailscale HTTPS + Funnel prerequisites before starting the child process, surfacing actionable errors instead of hanging during registration.--tailscale shares your app over your tailnet with automatic HTTPS on port 443; --funnel exposes it publicly via Tailscale Funnel. Apps receive PORTLESS_TAILSCALE_URL so they can reference their own public address. portless list now shows tailnet URLs.portless auto-discovers dev scripts from package.json. Multi-app monorepos get automatic subdomain assignment; Turborepo task-graph integration is wired in. portless.json config file supported. --script overrides the default "dev" script.portless prune — removes orphaned dev servers and stale Tailscale registrations.portless clean (extended) — now also tears down Tailscale registrations alongside CA + hosts cleanup.~/.portless (was scattered).--no-tls reverts.NODE_EXTRA_CA_CERTS auto-injected (0.10.2) into child processes — node HTTPS calls trust portless CA with zero setup.--wildcard subdomains — https://*.myapp.localhost for multi-tenant / preview routing.portless alias <name> <port> — map a docker-compose / emulate port to a named URL without a long-running run process.portless clean — full teardown: stops proxy, removes CA, wipes state, cleans /etc/hosts.--lan mode — mDNS .local hostnames reachable across wifi (phone, tablet, other machines) without router config.--app-port 3000 / PORTLESS_APP_PORT for tools that need a known port (debuggers, docker).PORTLESS_SYNC_HOSTS=0).portless run expo start gives Metro a stable URL for device QR codes.# Instead of: npm run dev (random port)
portless run npm run dev
# → https://myapp.localhost (stable, named, HTTPS on 443 — default in 0.10+)
# Multi-service
portless run --name api npm run dev:api
portless run --name web npm run dev:web
# → https://api.localhost, https://web.localhost
# LAN mode (0.10.0) — reachable from phone/tablet via mDNS
portless proxy start --lan
portless run npm run dev
# → https://myapp.local (resolves across the local network, no router config)
# Full teardown (0.10.1) — stops proxy, removes CA, wipes state, cleans /etc/hosts
portless clean
# Boot persistence (0.13.0) — install native startup service (launchd / systemd / Task Scheduler)
portless service install
portless service status
# Removed automatically by `portless clean`, or explicitly:
portless service uninstall0.10.x breaking change: default switched from
https://app.localhosttohttps://app.localhoston port 443. Use--no-tlsto revert.NODE_EXTRA_CA_CERTSis injected into child processes automatically (0.10.2) — no manual cert setup./etc/hostsis synced automatically for Safari; disable withPORTLESS_SYNC_HOSTS=0.
Load
Read("references/framework-integration.md")for full framework recipes.
Most frameworks (Next.js, Vite, Express) work with portless run <cmd>. Some need explicit flags:
| Framework | Auto-detected? | Extra flags needed |
|---|---|---|
| Next.js | Yes | None |
| Vite / Astro | Yes | None |
| Express / Fastify / Hono | Yes | None (reads PORT env var) |
| Ruby on Rails | Yes | None |
| FastAPI / uvicorn | No | --port $PORT --host $HOST |
| Django | No | $HOST:$PORT positional arg |
.localhost?| Feature | .localhost (RFC 6761) | 127.0.0.1:PORT | /etc/hosts hack |
|---|---|---|---|
No /etc/hosts editing | Yes | Yes | No |
| HTTPS with valid cert | Yes | No | Manual |
| Wildcard subdomains | Yes | No | No |
| Works in all browsers | Yes | Yes | Varies |
| Cookie isolation per service | Yes | No | Yes |
| No port conflicts | Yes | No | Yes |
When portless runs your command, it injects:
| Variable | Value | Use in agents |
|---|---|---|
PORT | Assigned ephemeral port (4000-4999) | Internal only |
HOST | 127.0.0.1 | Internal only |
PORTLESS_URL | https://myapp.localhost | Use this in agent prompts |
NODE_EXTRA_CA_CERTS | Path to portless CA (auto-injected 0.10.2) | Child node processes trust portless certs without setup |
| Variable | Effect |
|---|---|
PORTLESS=0 | Bypass portless entirely (CI) |
PORTLESS_SYNC_HOSTS=0 | Disable auto /etc/hosts sync (default: on in 0.10.1+) |
PORTLESS_STATE_DIR | Override state dir (default: ~/.portless or /tmp/portless for privileged ports) |
# Start with portless, then agents can target PORTLESS_URL
portless run npm run dev
# In ork:expect or agent-browser:
agent-browser open $PORTLESS_URL# Register emulate ports as named aliases
portless alias github-api 4001
portless alias vercel-api 4000
portless alias google-api 4002
# Now agents can target:
# https://github-api.localhost — GitHub emulator
# https://vercel-api.localhost — Vercel emulator# In worktree for feature/auth-flow:
portless run npm run dev
# → https://auth-flow.myapp.localhost (auto branch prefix)# Disable portless in CI — direct port access
PORTLESS=0 npm run dev| Don't | Do Instead |
|---|---|
Hardcode localhost:3000 in tests | Use PORTLESS_URL or process.env.PORTLESS_URL |
| Run portless in CI | Set PORTLESS=0 in CI environments |
| Use numeric ports in AGENTS.md | Document the portless URL |
| File | Content |
|---|---|
references/upstream.md | Full portless CLI reference (synced from Vercel) |
references/upstream-oauth.md | OAuth callback patterns with stable URLs |
references/framework-integration.md | Framework recipes (FastAPI, Django, Docker, gotchas) |
checklists/new-project-setup.md | Step-by-step: add portless to a new project |
© yonatangross, MIT. 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 src/skills/portless of yonatangross/orchestkit.
Open the folder on GitHubat commit e4ff8d9
Portless 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 |
|---|---|---|---|---|---|---|
| Portless this skillyonatangross/orchestkit | 292 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Releasear-io/ar-io-node | 127 | — | ~4.2k | Automated safety check: Notes | AGPL-3.0 | |
| Update NanoClaw Safelynanocoai/nanoclaw | 31k | — | ~2.9k | Automated safety check: Notes | MIT | |
| Reflexo ReleaseMyriad-Dreamin/typst.ts | 1.2k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Deployment and CI/CD Patternsaffaan-m/ECC | 276k | 6 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Rasengan Deploymentrasengan-dev/rasenganjs | 124 | — | ~624 | Automated safety check: Pass | MIT |
ar-io/ar-io-node
Drive the AR.IO Node release process end-to-end — preflight checks, prepare commit, finalize with image SHAs, test docker compose profiles, tag & publish, and post-release cleanup.
nanocoai/nanoclaw
Updates a customized NanoClaw install from the official upstream in a staged worktree, with state snapshots, migration gates, health checks and automatic rollback.
Myriad-Dreamin/typst.ts
Guide Reflexo/typst.ts release preparation and operator handoffs.
affaan-m/ECC
Covers rolling, blue-green and canary deployments, multi-stage Dockerfiles, a GitHub Actions pipeline, health checks and production readiness for web apps.
rasengan-dev/rasenganjs
Deployment patterns for Rasengan.js. An agent skill from rasengan-dev/rasenganjs.
gotempsh/temps
Integrate the Temps Node.js SDKs for server-side platform access, KV storage, and Blob storage.
yonatangross/orchestkit
API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs.
yonatangross/orchestkit
ADR templates in the Nygard format with context, decision, consequences, and alternatives.
yonatangross/orchestkit
Single-pass codebase analysis leveraging a 1M-token context window for comprehensive security scanning, architecture review, and dependency auditing.
yonatangross/orchestkit
Structured review processes, conventional comments, language-specific checklists, and feedback templates.
yonatangross/orchestkit
Creates GitHub pull requests with pre-flight validation, conventional title formatting, and structured summary generation.
yonatangross/orchestkit
Multi-angle codebase exploration spawning 3-5 parallel agents for code structure, data flow, architecture patterns, and health assessment.
Works with
Categories
Named HTTPS .localhost URLs with portless (v0.15.x). An agent skill from yonatangross/orchestkit. Portless is an agent skill from yonatangross/orchestkit.x).
Portless fits situations like: setting up a local dev environment; testing from phones and tablets on the same wifi; production deployments; CI environments (set PORTLESS=0).
Run `npx skills add yonatangross/orchestkit --skill portless -a claude-code`. Or copy the skill folder (src/skills/portless in yonatangross/orchestkit) into .claude/skills/portless in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yonatangross/orchestkit --skill portless -a codex`. Or copy the skill folder (src/skills/portless in yonatangross/orchestkit) into .agents/skills/portless 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 yonatangross/orchestkit --skill portless -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/portless, .gemini/skills/portless, .github/skills/portless and .opencode/skills/portless in your project.
Going by SKILL.md and its folder, Portless needs the command-line tools its instructions call (npm). Our summary lists: Node.js; Docker. Compatibility (from SKILL.md): Claude Code 2.1.277+.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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.
Portless is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k 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 10k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Portless: Release (ar-io/ar-io-node, 127 stars), Update NanoClaw Safely (nanocoai/nanoclaw, 31k stars), Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars) and Deployment and CI/CD Patterns (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yonatangross (a GitHub user) maintains it in yonatangross/orchestkit, which has 292 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 10, 2026.
Source: yonatangross/orchestkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.