Install any skill in seconds. Free to start, no credit card required.
Get Started Free →gosuda/portal-tunnel-cli
How the portal-tunnel client CLI (cmd/portal-tunnel) is structured and invoked — expose/agent/list/update subcommands, flags, validation rules, and x402/routing options.
Passed 25 of 25 test cases with the skill, and 7 of 25 without it.
and 27 more in the full report
18 fixed7 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 18 test cases the skill fixed. Same model, same prompt, with and without the skill.
I want to host a static folder located at `./dist` and assign it the label 'my-docs' using the portal-tunnel CLI tool. Please give me the exact terminal command to execute.
| Checked | Without skill | With skill |
|---|---|---|
| The command uses the expose subcommand with --serve ./dist | Missed | Passed |
| The command uses --name my-docs to specify the service name | Missed | Passed |
The instructions your model reads when the skill loads.
Entrypoint cmd/portal-tunnel/main.go. Subcommands are dispatched by the repo's own utils.RunCommands (std flag package, NOT cobra/urfave). Commands: expose, agent {run,dashboard,stop,restart}, list, update, version, help. Flags are defined in code (main.go, agent.go). Run command-specific --help first; if the installed build does not enumerate flags, read the source for the authoritative list.
Publishes a local service. Key flags (many have env fallbacks, shown in ENV):
<target> (e.g. 3000, localhost:8080) OR --http-route "PATH=UPSTREAM[ METHOD,...:AMOUNT]" (repeatable) OR --serve <dir|file> for static.--relays (extra API URLs), --discovery (default true), --max-active-relays (default 3, MAX_ACTIVE_RELAYS).--multi-hop (explicit ordered URLs, MULTI_HOP) OR --multi-hop-depth (default 0, MULTI_HOP_DEPTH) — mutually exclusive.--identity-path (default identity.json, IDENTITY_PATH), --identity-json (IDENTITY_JSON).--ban-mitm (BAN_MITM).--udp/--udp-addr (UDP_ENABLED/UDP_ADDR), --tcp (TCP_ENABLED).--name --description --tags --owner --thumbnail --hide.--x402-pay-to, --x402-network (Sui/Casper CAIP-2), --x402-asset, --x402-testnet, --x402-endpoint (repeatable), --x402-facilitator-token (CSPR_CLOUD_API_KEY).--metrics-addr. Parsed values flow into sdk.ExposeConfig (main.go ~224-281).--http-route.--serve cannot combine with target/--http-route/--udp/--tcp.--http-route payment amounts require --x402-pay-to.--x402-asset.--multi-hop cannot combine with --multi-hop-depth.portal expose 3000
portal expose localhost:8080 --name my-app
portal expose --serve ./site --name my-app
portal expose --http-route /api=http://127.0.0.1:3001 --http-route /=http://127.0.0.1:5173
portal expose 3000 --udp --udp-addr 127.0.0.1:5353
portal expose 3000 --relays https://portal.example.com --discovery=false
portal expose 127.0.0.1:8080 --identity-path <absolute-path-outside-repo>/identity.json --relays https://127.0.0.1:<api-port> --discovery=false # loopback relay from the same checkout/release
portal expose 3000 --multi-hop-depth 3
agent run (--config default service.DefaultConfigPath(), --service, --foreground); agent dashboard/stop (--config, --state-dir); agent restart (--config). See cmd/portal-tunnel/agent.go.list (--relays, --default-relays default true).update (--version, empty = latest).test cases passed, vs 7 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.