ngrok Agent Skills

Official ngrok skill pack: a public address for a local service, access protection, webhooks and error diagnosis.

  • 16 ★ on the repository
  • Last commit
  • MIT
SkillOfficial

Extended access

Why this level

  • A tunnel opens a local service to the internet, and until sign-in protection is on the address is open to anyone who knows it.
  • The agent runs the ngrok CLI and writes configuration with Traffic Policy rules.
All reasons and checks

ngrok/skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/ngrok-agent-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • A tunnel opens a local service to the internet, and until sign-in protection is on the address is open to anyone who knows it.
  • The agent runs the ngrok CLI and writes configuration with Traffic Policy rules.

This is third-party code. Review the repository files before installing.

What it does

A set of seven task skills for ngrok. An agent opens a tunnel to a local service over HTTP or TCP (SSH, RDP, databases), puts OAuth sign-in, rate limits and IP rules on the address, and receives webhooks from Stripe, GitHub and more than 70 other providers with signature verification at the ngrok edge. The remaining skills publish an MCP server under development, give every sandbox or customer its own endpoint, diagnose errors such as ERR_NGROK_3200 and handle first-time setup. Two reference skills, ngrok-engine and ngrok-surfaces, load on their own: Traffic Policy rules with 26 actions and ways to apply settings through the CLI, SDKs, REST API, Terraform and the Kubernetes Operator.

Who it is for. Developers who need to show a local app to a colleague or receive a webhook on a laptop, and teams that build agent sandboxes on ngrok.

Good fit when

  • Stripe or GitHub has to reach a service on a laptop that has no public address.
  • A site draft goes to a client behind a link protected by Google sign-in.
  • A machine without a public IP is reached over SSH or RDP through a TCP tunnel.
  • A local MCP server is connected to Claude or another provider with its own access key.

Not a fit when

  • The service already has a stable public address and a reverse proxy, so a tunnel adds nothing.
  • The ngrok CLI is not installed and there is no account: the skills run on top of the CLI with a token.
  • The data must not reach the internet even behind sign-in: a public address stays an entry point.

Example request

Expose my app on port 3000 on a public link and let in only @mycompany.com addresses through Google sign-in.

Limitations

The skills run on top of an installed and authenticated ngrok CLI with a token from the dashboard. A new account may have no free dev domain: create one on the dashboard domains page, otherwise the tunnel returns ERR_NGROK_15013. The `npx skills add ngrok/skills` command installs the whole set through the skills utility and relies on the SKILL.md file of each skill. ngrok plan terms for webhooks and Traffic Policy rules are not described in the repository.

How to disable. Disable the plugin through `/plugin` in Claude Code or delete the skill folders from the agent skills directory. Stop a running tunnel in the terminal and revoke the token in the ngrok dashboard.

FAQ

How do I install the ngrok skills in Claude Code?

Run `/plugin marketplace add ngrok/skills`, then `/plugin install ngrok@ngrok`. Commands such as `/ngrok:expose-localhost` appear. `npx skills add ngrok/skills` installs the same set for any agent that supports the Agent Skills format.

Do I need an ngrok account?

Yes. The skills call the ngrok CLI, which needs a token: take it from the dashboard and add it with `ngrok config add-authtoken`. Without a token the agent stops at the preliminary check and asks for it.

Which agents are supported?

Claude Code, Cursor, ChatGPT and Codex through the plugin, others through `npx skills add`. In Cursor the marketplace is added from the ngrok/skills repository, in Codex with `codex plugin marketplace add ngrok/skills`.

What if the tunnel does not come up?

Ask the agent to apply the troubleshoot-ngrok skill. It covers codes such as ERR_NGROK_3200 and the case where the page works on localhost but returns 400 through the ngrok address.

What does the receive-webhooks skill do?

It receives webhooks from Stripe, GitHub and more than 70 other providers on one address and verifies the signature at the ngrok edge. A service behind NAT gets events without an open port.

Discussion

No questions or reviews yet.

Skills
Editors’ pick

Cloudflare's official agent skills: Workers, Durable Objects, wrangler, Pages, storage and an MCP server

PluginExtended access3.3KRepository stars

A tunnel for localhost with self-hostable relays: a public HTTPS address for a local service, no account, plus skills for agents

CLIBroad access301Repository stars

Agent Skills for Google products

Agent Skills for Google products and technologies

Editors’ pick

Official Google skill collection for working with Google Cloud, BigQuery, GKE, ads and analytics from an agent

SkillBroad access22.7KRepository stars

KubeShark skill: the agent finds the failure mode first, then writes manifests, Helm and Kustomize to official practice with a rollback plan

SkillMinimal access473Repository stars
Editors’ pick

Microsoft Learn skills for nearly every Azure service: limits, configuration, security, architecture and troubleshooting with doc links

SkillExtended access807Repository stars

A skill and a Go binary: with your approval the agent installs apps from a 93-app catalog on your home server via Docker Compose

SkillBroad access1.5KRepository stars

README in short

The set installs as a plugin for Claude Code, Cursor, ChatGPT and Codex or as plain skills through the skills utility. A table ties each of the seven skills to a task and sample phrases, and two reference skills are described separately. MIT license.

README badge

Original SKILL.md

---
name: expose-localhost
description: Expose a local service to the public internet using ngrok. Starts a tunnel, optionally adds OAuth or WAF via Traffic Policy. Handles HTTP services and raw TCP (SSH, RDP, databases). Use when asked to expose, tunnel, share, or make a local service publicly accessible, or to reach a machine that has no public IP. Also covers sharing work-in-progress with a specific person and the dev-server quirks that break a shared preview.
license: MIT
metadata:
  author: ngrok
  version: "2.1"
compatibility: Requires ngrok CLI installed and authenticated.
---

# Expose Localhost

Expose a local service to the public internet using ngrok. Optionally add OAuth, OWASP protection, or rate limiting via Traffic Policy.

## Prerequisites

- ngrok CLI installed (`ngrok` command available)
- Auth token configured (`ngrok config add-authtoken <TOKEN>`)

## Workflow

### Step 1: Pre-flight & Configuration

Silently verify ngrok is ready:

```bash
ngrok config check
```

If auth token missing, tell user to run: `ngrok config add-authtoken <TOKEN>` (get token at https://dashboard.ngrok.com/get-started/your-authtoken)

Then **ask all questions upfront** before doing anything:

```
Before I expose your service, I need a few details:

1. **Port**: I see your app runs on port 3000. Is that correct?
2. **Domain**: Use your dev domain, or do you have a custom domain?
3. **Access control**: Open access, or require login (Google/GitHub/etc.)?
4. **Save config?**: One-time setup, or save for reuse?
```

Do NOT mention cloud endpoints, reserved domains, or internal endpoints — those are advanced concepts the user shouldn't need to think about.

**Detecting the port**: Check `package.json` scripts for `--port`, `.env` for `PORT=`, `docker-compose.yml` for port mappings.

Report a problem

Foxx AIngrok Agent Skills
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.