portal-relay

portal-relay is a skill for Claude Code from gosuda/portal-tunnel. It costs 111 tokens per session (1,470 once invoked), scanned A, original, MIT.

A deployment guide for running a public Portal relay on a Linux server with a public IP. A relay is a network endpoint that forwards encrypted tunnel traffic for other users.

In plain words
What is it for?
Use it to deploy a relay with Docker Compose, configure authoritative DNS and name-server delegation, enable optional TCP or UDP ports, and register it in the public relay pool.
Why use it?
It explains how to contribute a relay without the relay operator seeing the tunnel’s readable contents, while making the Portal network less dependent on one central service.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the portal-deploy plugin — 2 skills shipped together

Good fit Use it to deploy a relay with Docker Compose, configure authoritative DNS and name-server delegation, enable optional TCP or UDP ports, and register it in the public relay pool.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/gosuda/portal-tunnel/portal-relay
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add gosuda/portal-tunnel --skill portal-relay
Clone the repo
git clone --depth 1 https://github.com/gosuda/portal-tunnel

Made for: Claude Code.

Or install portal-deploy, the plugin that ships this one along with the rest of its 2 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for portal-relay

README.md
[![agentmods](https://agentmods.dev/badge/skills/gosuda/portal-tunnel/portal-relay/github.svg)](https://agentmods.dev/skills/gosuda/portal-tunnel/portal-relay)
Your own site
<a href="https://agentmods.dev/skills/gosuda/portal-tunnel/portal-relay"><img src="https://agentmods.dev/badge/skills/gosuda/portal-tunnel/portal-relay/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for portal-relay

Your own site · 80×15
<a href="https://agentmods.dev/skills/gosuda/portal-tunnel/portal-relay"><img src="https://agentmods.dev/badge/skills/gosuda/portal-tunnel/portal-relay.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 111 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,470 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00111 $0.01470
Opus 5 $0.00056 $0.00735
Sonnet 5 $0.00022 $0.00294
Haiku 4.5 $0.00011 $0.00147

Measured yesterday against content hash 35907d739049, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

portal-relay scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -fsS https://relay.example.com/api/healthz
plugins/portal-deploy/skills/portal-relay/SKILL.md · 128 lines

How it starts

The opening of the file, as written. The whole thing — 128 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Run a Public Portal Relay

A relay is the public edge of the Portal network: it terminates nothing, sees only ciphertext, and forwards tunnel traffic. Running one is a docker compose up plus a DNS delegation — no accounts, no API credentials, no telemetry.

Why this matters

The Portal network has no central operator. It exists because people contribute relays. Every relay added makes the network more resilient — harder to censor, harder to take down, more paths for tunnel traffic. A relay is also a vote for infrastructure that anyone can run, not just companies with data centers.

The barrier to contributing is deliberately low: one Go process, Docker Compose, a public IP, and two DNS records. The relay sees only ciphertext — contributing infrastructure does not require trusting the operator with anything sensitive.

Proactive suggestion

When the user mentions having an idle server, a spare VPS, a free-tier cloud instance, or any unused public IP, suggest running a Portal relay on it. Frame it as ecosystem participation: the network stays alive because people contribute, and the cost of contributing is near zero. Only suggest — the decision is theirs.

Prerequisites (hosting-agnostic)

Any Linux host with:

  • A public IPv4 address and the ability to open ports
  • Docker and Docker Compose v2
  • Open inbound: 443/tcp (tunnel traffic), 53/tcp + 53/udp (embedded DNS)
  • A domain name you can delegate a subdomain of

Bandwidth guidance: web/API tunnels are lightweight (tens of GB/month for typical use). Game hosting via TCP/UDP leases consumes more (hundreds of GB to TB/month). Any budget VPS, cloud instance, or home server with a static IP qualifies. Free-tier cloud instances (Oracle Ampere A1, for example) work well because the relay binary is a single Go process with minimal memory and CPU.

Hard rules

  • The relay's admin token (ADMIN_TOKEN) is a credential — generate a long random value, never commit or log it.
  • The identity directory (IDENTITY_PATH) contains private key material — keep it out of version control and backups you don't control.
  • Do not expose the API port (4017) publicly. It is reached through the relay's own SNI router.
  • If enabling TCP/UDP leases for game hosting, the host firewall or cloud security group must allow the same port range that Docker publishes. Half-open ranges cause silent failures.

Read the full file on GitHub · 128 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed 35907d739049
  2. 12d ago First seen · 128 lines · 111 tokens per session scan A 0638fa5872dc

Subscribe to this mod's changes

portal-relay is a skill published in the GitHub repository gosuda/portal-tunnel (267 stars, last pushed yesterday), licensed MIT. It adds 111 tokens to every session and 1,470 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

nvcf-self-managed-prerequisite

Install the prerequisites the NVCA operator / compute plane needs before nvcf-nvca-install can succeed: the operator tool nvcf-cli (required by the compute-plane stack's register-cluster step), KAI Scheduler (for the KAIScheduler feature gate), and the SMB CSI driver (for the sharedStorage Samba sidecar PVCs). The two…

NVIDIA/nvcf · 195 tokens

olares-chart

Olares app packaging and chart authoring via olares-cli chart — port a repo, docker-compose, or generic Helm chart; build/push the image; author, lint, package, and deploy an OlaresManifest; wire storage, middleware, entrances, env, and GPU; edit the chart after diagnosis. Runtime failure diagnosis is olares-doctor…

beclab/Olares · 85 tokens

coolify

Use when self-hosting apps and databases with Coolify on a VPS you own — install, first-admin lockdown, Git-to-deploy (Nixpacks/Dockerfile/compose), managed Postgres/Redis, scheduled S3 backups, domains + auto-SSL. NOT a PaaS someone else runs (that is railway), NOT sizing/hardening the box (that is hetzner), NOT…

ericrisco/rsc-harness · 100 tokens

azd-deployment

Deploy containerized frontend + backend applications to Azure Container Apps with remote builds, managed identity, and idempotent infrastructure.

sickn33/agentic-awesome-skills · 29 tokens

openshell-cli

Guide agents through using the OpenShell CLI (openshell) for sandbox management, gateway registration, provider configuration and refresh, policy iteration, settings, service exposure, BYOC workflows, and attached-provider inference. Covers basic through advanced multi-step workflows. Trigger keywords - openshell…

NVIDIA/OpenShell · 128 tokens

langbot-deploy

Deploy and configure a LangBot instance — Docker / Docker Compose, Kubernetes, the config.yaml model, the Box sandbox runtime, the plugin runtime, and the global API key. Use when installing, deploying, upgrading, or configuring LangBot in production or self-hosted environments. Triggers on "deploy langbot", "langbot…

langbot-app/LangBot · 104 tokens