portless-local
Replace port numbers with stable named .localhost URLs for local development
Skill by jellydn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jellydn-portless-local
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/portless-local
What's inside
- Skill name
portless-local- Description
- Replace port numbers with stable named .localhost URLs for local development
- License
- MIT
- Compatibility
- cline, claude, opencode, amp, codex, gemini, cursor, pi
- Metadata
- source: vercel-labs/portless@7abf4df5d939fe3b527a120e20bc270c681c3536 · audience: all · workflow: development · source_path: skills/portless/SKILL.md
- Instructions
- 472 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Portless - Named .localhost URLs Replace port numbers with stable, named `.localhost` URLs for local development. For humans and agents. > **Note:** The portless CLI enables HTTPS on port 443 by default (`https://myapp.localhost`). Pass `--no-tls` to `portless proxy start`, or set `PORTLESS_HTTPS=0`, for plain HTTP. Keep HTTPS when the app needs OAuth, secure cookies, or HTTP/2. ## Safety and Approval Read existing proxy configuration before starting an app: auto-start reuses saved settings, including LAN mode. Outside LAN mode the proxy binds only to IPv4/IPv6 loopback; LAN mode binds all interfaces. Ask for explicit approval before first-run sudo/elevation, CA trust-store changes, `/etc/hosts` writes, LAN exposure, Tailscale sharing, public Funnel/ngrok tunnels, startup-service installation/removal, or destructive cleanup. A request for local development does not authorize these actions. Use `PORTLESS_SYNC_HOSTS=0` when hosts writes are not approved. In non-interactive environments, first-run prompts fail rather than granting permission; pre-start only an approved proxy configuration. `--force` kills the existing process and takes over its route. `prune` terminates orphaned process groups, and `prune --force` uses SIGKILL. Do not use them without checking ownership and approval. `clean` also removes startup services and trust entries; it is not routine project cleanup. Never print or commit TLS private keys or ngrok tokens. Let the user configure authentication through the provider's private credential workflow. Do not disable TLS verification to resolve proxy errors. ## Why Portless? Local dev with port numbers is fragile. Portless fixes that by giving each dev server a stable, named `.localhost` URL. | Problem | With Ports | With Portless | | -------------------------- | ------------------------------------------------------- | ----------------------------------------------- | | **Port conflicts** | Two projects on :3000 = EADDRINUSE | Auto-assigned ports, named URLs - no collisions | | **Memorizing ports** | "Was the API on 3001 or 8080?" | Always `https://api.localhost` | | **Wrong app on refresh** | Stop one server, start another on same port = confusion | Named URLs eliminate this | | **Monorepo chaos** | Every service needs a unique port | Distinct hostnames for each service | | **Agent confusion** | AI agents guess/hardcode wrong ports | `https://myapp.localhost` is deterministic | | **Cookie/storage clashes** | Cookies bleed across ports on localhost | Each `.localhost` subdomain gets its own scope | | **Hardcoded config** | CORS, OAuth, .env break when ports change | URLs are stable across restarts | | **Sharing URLs** | "What port is that on?" in Slack | Everyone uses the same named URL | | **Browser history** | `localhost:3000` history is a jumble | Named URLs keep things organized | ## Installation ```bash # Global (recommended) npm install -g portless # Or as a project dev dependency npm install -D portless ``` Requires Node.js 24+ and OpenSSL for certificate generation. Install globally or as a project dependency; do not use a one-off `npx`/`pnpm dlx` download. A local package may be invoked through package scripts or `npx portless` without downloading it. ## Usage Invoke via skill command or use CLI directly: ```bash # Via skill command /portless-local <NAME> <COMMAND> [OPTIONS] # Or use CLI directly portless <NAME> <COMMAND> [OPTIONS] ``` ## Commands ### Run an App ```bash portless run [--name <name>] <cmd> [args...] # Infers name from package.json, git root, or directory portless <name> <cmd> [args...] # Explicit name, no inference ``` `portless run` infers the project name from package.json, git root, or directory name. Use `--name` to override the inferred name while still applying worktree prefixes. | Flag | Description | | --------------------- | --------------------------------------------------------------------------------------------------- | | `--name <name>` | Override the inferred base name (worktree prefix still applies). Only for `portless run`. | | `--app-port <number>` | Use a fixed port for the app instead of auto-assignment. Also configurable via `PORTLESS_APP_PORT`. | | `--force` | Kill the existing process and take over its route; requires ownership checks and approval | **Examples:** ```bash portless run next dev # Infer name from project portless run --name myapp next dev # Override inferred name portless myapp next dev # Explicit name portless api pnpm start # API service portless docs.myapp next dev # Subdomain ``` ### Get a Service URL ```bash portless get <name> ``` Print the URL for a service. Useful for wiring services together in scripts or env vars: ```bash BACKEND_URL=$(portless get backend) ``` Applies worktree prefix detection by default. Use `--no-worktree` to skip it. ### Alias (Static Routes) ```bash portless alias <name> <port> # Register a static route portless alias <name> <port> --force # Force override existing portless alias --remove <name> # Remove the alias ``` Register a route for a service not managed by portless (e.g. a Docker container). Aliases persist across stale-route cleanup. ```bash portless alias my-postgres 5432 # -> https://my-postgres.localhost portless alias redis 6379 # -> https://redis.localhost portless alias --remove my-postgres # Remove the alias ``` ### List Routes ```bash portless list ```
From jellydn/my-ai-tools, MIT.
More from jellydn/my-ai-tools
- 0.722score
visual-pr
jellydn
Posts a concise visual outline as a GitHub pull request comment.
SkillAFreshness: A★ 123Claude Code +9 - 0.722score
babysit-pr
jellydn
Use when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
codemap
jellydn
Create a seven-document architecture map when the user asks to map a codebase.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
draft-pull-request
jellydn
Draft pull requests with structured descriptions using gh CLI
SkillAFreshness: A★ 123Claude Code +9 - 0.714score
diagnosing-bugs
jellydn
Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock the fix with a regression test.
SkillAFreshness: A★ 123Claude Code +9 - 0.713score
pr-review
jellydn
Fix PR review comments by implementing requested changes
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
code-review
jellydn
Review a branch, PR, or worktree diff for repository conventions and stated intent.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
plannotator-setup-goal
jellydn
Turn ideas into executable goal packages with guided interviews and codebase analysis
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
blindspot-pass
jellydn
Inspect history and architecture for hidden constraints before risky cross-cutting changes.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
implementation-logger
jellydn
Log implementation decisions — tracks deviations from plan and captures rationale
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
implement-spec
jellydn
Implement a complete spec from its ticket graph, using isolated workers and one integration branch.
SkillAFreshness: A★ 123Claude Code +9 - 0.711score
pr
jellydn
Write a fast-to-review pull request body with a visual summary, before/after evidence, and merge-risk analysis.
SkillAFreshness: A★ 123Claude Code +9
Signals
- Stars
- 123
- Forks
- 12
- Open issues
- 3
- Last commit (this folder)
- Oct 7, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jellydn/my-ai-tools
- Website
- ai-tools.itman.fyi/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from jellydn
- 0.722score
babysit-pr
jellydn
Use when monitoring an open GitHub PR for CI failures, review feedback, mergeability, and safe retries or fixes.
SkillAFreshness: A★ 123Claude Code +9 - 0.722score
visual-pr
jellydn
Posts a concise visual outline as a GitHub pull request comment.
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
draft-pull-request
jellydn
Draft pull requests with structured descriptions using gh CLI
SkillAFreshness: A★ 123Claude Code +9 - 0.716score
codemap
jellydn
Create a seven-document architecture map when the user asks to map a codebase.
SkillAFreshness: A★ 123Claude Code +9 - 0.714score
diagnosing-bugs
jellydn
Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock the fix with a regression test.
SkillAFreshness: A★ 123Claude Code +9 - 0.713score
pr-review
jellydn
Fix PR review comments by implementing requested changes
SkillAFreshness: A★ 123Claude Code +9
Cite this page
portless-local skill. Agent Mart. https://agentmart.dev/skills/jellydn-portless-local (last updated 2026-10-24)