Home / gosuda / portal-tunnel · plugins/portal-deploy/skills/portal-connect/SKILL.md · GitHub

portal-connect skillB

portal-connect is agent-read markdown (skill) from gosuda/portal-tunnel: Reach, inspect, or consume a service that someone published through a Portal relay. Turns a Portal hostname, a service name plus relay, or a bare service name into the right public URL (name.relay-host over HTTPS) or raw host:port, lists what is live on a public or self-hosted relay through GET /api/state, makes bounded HTTPS requests or protocol probes, connects to raw TCP/UDP endpoints such as game servers, SSH, or databases, and recognizes an x402 402 Payment Required challenge and reports it.

Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.

What the file says

# Connect to a Service Published with Portal

A Portal service is an ordinary public endpoint. The consumer needs no Portal account, key, or client: an HTTPS tunnel is reached with any HTTP client at `https://<name>.<relay-host>/`, and a raw TCP or UDP tunnel with any client at the relay-assigned `host:port`. The `portal` CLI has no `connect` subcommand, and `portal list` prints relays, not services, so do not invent one. Behind the URL is the publisher's own machine, often a laptop on a home connection, so keep every request bounded and deliberate.

Run the workflow in order. Open a reference only when that branch is taken: `references/discovery-api.md` for relay endpoints, JSON shapes, the hostname rule, and how to read a `402 Payment Required` challenge; `references/raw-transport.md` for a TCP or UDP endpoint.

## Identify the Target

Pick the first form that matches what the user gave:

- Full URL: use it as given.
- Hostname without a scheme, such as `my-app.portal.example.com`: prefix `https://`.
…

Read the whole file at its exact version.

How to install

Latest version
mdr add gosuda/portal-tunnel/portal-connect@git:20260922.1ead036
Exact content
mdr add gosuda/portal-tunnel/portal-connect@sha256:1f3b9bd0318a90d8

Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_jerqv2nvihr3dntr.svg)](https://markdownregistry.com/a/art_jerqv2nvihr3dntr)

1 badge views in 30 days

Versions

versioncommittedcommitsizeaudit
git:20260922.1ead036 latest2026-09-22 1ead036 11,610 BB view · diff
git:20260922.2545c982026-09-22 2545c98 11,925 BB view

Audit of the latest version

B  16 of 17 checks passed. Deterministic, no model, same answer every run.
  • fail: No link to a raw IP address (matched: https://127.0.0.1)
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (11610 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No script tag

Source

GitHub

gosuda/portal-tunnel · 271 stars · license MIT · pushed 2026-09-23 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_jerqv2nvihr3dntr
GET https://markdownregistry.com/api/v1/resolve?ref=gosuda/portal-tunnel/portal-connect
GET https://markdownregistry.com/api/v1/blob/1f3b9bd0318a90d8ae0cb7a73d010897bc4fdb1d1d99e8829c09242374d0c956

Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

More from gosuda/portal-tunnel

testing-portal-tunnel-dashboard skill
gosuda/portal-tunnel · .agents/skills/testing-portal-tunnel-dashboard/SKILL.md · How to drive the portal-tunnel agent dashboard bubbletea TUI end-to-end without a live agent or relay, using a stub…
git:20260922.927bd9e · audit A · 271 stars
AGENTS.md agents
gosuda/portal-tunnel · AGENTS.md
git:20260918.ab4bbf3 · audit A · 271 stars
AGENTS.md@frontend agents
gosuda/portal-tunnel · frontend/AGENTS.md
git:20260804.df9da5d · audit A · 271 stars
CLAUDE.md@frontend claude
gosuda/portal-tunnel · frontend/CLAUDE.md
git:20260304.96dd745 · audit B · 271 stars
llms.txt llmstxt
gosuda/portal-tunnel · llms.txt
git:20260922.1ead036 · audit B · 271 stars
portal-expose skill
gosuda/portal-tunnel · plugins/portal-deploy/skills/portal-expose/SKILL.md · Expose, preview, protect with x402 payments, or keep a local web app, static site, HTTP route set, or explicitly…
git:20260922.2d69d10 · audit B · 271 stars
portal-relay skill
gosuda/portal-tunnel · plugins/portal-deploy/skills/portal-relay/SKILL.md · Set up and run a public Portal relay on any Linux host with a public IP — Docker Compose deployment, embedded…
git:20260922.a2e16ea · audit A · 271 stars

Every file in gosuda/portal-tunnel

Browse by kind, by grade B, or by owner.