automation
Expose Local Apps with portal-expose: A Developer's Tunnel
Learn how the portal-expose skill lets AI agents expose, protect, and verify local apps via Portal tunnels, with x402 payments.
Where this fits
You're running a local web app or game server, and you need to share it with a client or test a webhook. Instead of wrestling with ngrok configs or cloud deploys, you ask your AI agent to "expose this on Portal." The agent must pick the right tunnel type, handle authentication, verify the public URL, and report back—without you babysitting the process.
Why agents benefit
- Lifecycle-aware tunneling: The skill exposes a running local service and then verifies the public endpoint, confirming it's reachable before reporting success.
- Protocol flexibility: Handles HTTP, static sites, TCP, and UDP—so agents can expose game servers, custom APIs, or even raw sockets.
- Monetization built-in: Supports x402 payment routes, letting agents add pay-per-request protection without manual setup.
- Safety checks: Reads safety and verification references before exposing authenticated or non-HTTP services, reducing accidental public exposure of sensitive data.
- Persistent agent integration: Works with Portal's persistent agent configuration, enabling long-lived tunnels that survive agent restarts.
Practical scenarios
Sharing a local webhook for Stripe testing
Your agent runs a local Node server that handles Stripe events. You ask it to expose the /webhook route publicly. The skill creates a Portal tunnel, verifies the endpoint returns 200, and prints the public URL—so you can paste it into Stripe's dashboard immediately.
Hosting a Minecraft server for a weekend with friends
You've got a Minecraft server on port 25565. The agent uses the game-hosting reference to pick the right TCP/UDP settings, exposes the port, and reports the connection string. No firewall drilling or manual port forwarding.
Adding pay-per-request to a public API demo
You have a prototype API and want to charge $0.01 per call. The agent reads the x402 reference, configures the paid route, and verifies that an unauthenticated request gets a 402 response. You get a monetized demo in minutes.
Add it to your agent workflow
Install the skill with:
npx skills add gosuda/portal-tunnel --skill portal-expose
Then in your agent prompt: "Expose my local Flask app on port 5000 and give me the public URL." The agent will handle the rest, including verification.
Compare before adopting
Before relying on portal-expose, compare it against alternatives like ngrok, cloudflared, or localtunnel. Check the skill's maintenance freshness (last commit, open issues), the author's responsiveness, and whether it supports your specific protocol needs. Also consider how well it integrates with your agent's existing toolchain—does it require a Portal account or API key?
Why it is worth tracking
With 263 stars and an active author, portal-expose is a solid choice for agent-driven tunneling. It solves a real pain point: giving agents a safe, verifiable way to expose local services. As more agents handle deployment tasks, this skill's combination of lifecycle management and x402 payments makes it a strong candidate for your toolkit. For a curated overview, see portal-expose on OpenAgentSkill.
Featured Skill
portal-expose
Skill by gosuda