zrok

Expose local services over secure self-hosted tunnels with public and private sharing.

Updated Jan 2, 2026
One-click install
npx skills add https://github.com/mrud/skills --skill zrok
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: zrok
Source: https://github.com/mrud/skills/tree/main/zrok
Command: npx skills add https://github.com/mrud/skills --skill zrok

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill enables exposing local services behind a firewall to the internet or other machines through secure, self-hosted tunnels.

Core Features & Use Cases

  • Public sharing: generate https URLs for locally running services to be accessible from anywhere.
  • Private sharing: share access via tokens for restricted access.
  • Persistent URLs: reserve a subdomain for stable public endpoints.
  • Setup and management: configure endpoint, monitor status, and adjust sharing scopes.

Quick Start

Install zrok on your system using the recommended installer, configure the endpoint with zrok config set apiEndpoint, enable with the token provided by admin or web console, and share a local service with commands such as:

  • zrok share public http://localhost:3000
  • zrok status
  • zrok reserve public http://localhost:3000 --unique-name myapp
  • zrok enable <token>

Frequently Asked Questions about zrok

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I expose a local dev server to the internet via a secure tunnel?

You can expose a local dev server to the internet via a secure tunnel by installing zrok, configuring your self-hosted endpoint, and running zrok share public http://localhost:3000 to generate a public HTTPS URL.

What is private sharing and how does it work for local services?

Private sharing for local services works by generating access tokens instead of public URLs, allowing you to share locally running internal tools with restricted access through a self-hosted zrok endpoint.

How do I reserve a persistent public URL for a local service?

To reserve a persistent public URL for a local service, use the command zrok reserve public http://localhost:3000 --unique-name myapp to maintain a stable subdomain across sessions.

Do I need a self-hosted endpoint to create secure tunnels for local services?

Yes, creating secure tunnels for local services requires a self-hosted zrok endpoint, which you must configure using zrok config set apiEndpoint before enabling your access token.

Can I monitor the status of my active secure tunnels and sharing scopes?

You can monitor the status of your active secure tunnels and adjust sharing scopes by running the zrok status command, which displays current public and private sharing sessions.