🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
CLI and MCP server for local app tunnels
LocalCan puts a local app on the internet with a public tunnel URL and on your network with a `.local` domain, both over HTTPS. The desktop app, CLI, and MCP server all use the same engine and YAML config, so you can manage sharing and debugging from one place.
Builders who need a local app URL, a network-visible `.local` domain, or an AI agent that can inspect traffic and manage sharing.
You can share localhost, inspect requests, and let an agent manage exposure without redoing setup each time.
What it does
Public URLs
Creates shareable tunnel URLs for localhost, with pause and resume support.
Custom domains
Lets you run public URLs on a domain you own and handles the SSL certificate lifecycle.
TCP tunnels
Exposes non-HTTP services such as databases and SSH.
.local domains
Advertises local apps on your network over mDNS with wildcard subdomains and WebSocket support.
Automatic HTTPS
Uses a local root CA for `.local` domains and serves public URLs over HTTPS.
Traffic inspector
Shows requests, lets you replay them, and copies exchanges as cURL, HAR, HTTP, JSON, or Markdown.
Snapshots
Publishes a static copy of an app that stays online while the machine is off.
Access control
Adds password pages, secret links, and IP or user-agent rules enforced on LocalCan's servers.
How to get it
- 1Linux (CLI only)
curl -fsSL https://localcan.com/install.sh | sh
- 2Every plan, including Free, issues a license key. Activate it, then point a Public URL…
localcan license activate localcan_xxxxxxxxxxxxx localcan http 3000
README
The ngrok alternative with .local domains, a scriptable CLI, and an MCP server for AI agents
Desktop app for macOS and Windows · CLI for every platform · Free plan
Download · Docs · Changelog · Pricing
LocalCan puts your local app on the internet with a Public URL (also known as a tunnel) and on your local network with a .local domain, both over HTTPS. For 3.0, LocalCan was rewritten from the ground up: the engine is now a Go daemon behind a multi-region edge network. The desktop app on macOS and Windows, the CLI on all three platforms, and the MCP server for AI agents all drive that same engine and share the same YAML config.
Features
- Public URLs: share localhost at an address like
https://my-app.localcan.dev. Pause and resume them. A paused URL stays reserved for up to 7 days. - Custom domains: run Public URLs on a domain you own, with the SSL certificate lifecycle handled for you. Custom domains never expire.
- TCP tunnels for databases, SSH, and other non-HTTP services.
.localdomains: reach a local app athttps://my-app.localinstead oflocalhost:3000, advertised to your network over mDNS (Bonjour). Wildcard subdomains like*.my-app.localwork, and so do WebSockets, so hot reload in Vite and Next.js keeps working.- Automatic HTTPS: a local root CA signs your
.localdomains (trust it once, and you can install it on an iPhone or a simulator too), and Public URLs are always HTTPS. - Traffic inspector: watch requests flow through your domains and Public URLs, replay them, and copy any exchange as cURL, HAR, HTTP, JSON, or Markdown for AI.
- Snapshots: publish a static copy of your app that stays online at the same Public URL while your machine is off.
- Access control: protect a Public URL with a password page, a secret link, or IP and user-agent rules, enforced on LocalCan's servers so protection keeps working while your machine sleeps.
- MCP server: AI agents can inspect captured traffic, manage Public URLs, publish Snapshots, and password-protect what you share.
- CLI and YAML config: everything above is scriptable, with
--jsonoutput for piping intojqor CI.
Install
macOS: download the .dmg from localcan.com/download. The daemon is bundled inside the app, and on first launch it offers to install the localcan command line tools.
Windows: download the .exe installer from localcan.com/download. Install Bonjour Print Services so .local domains resolve (see the installation notes).
Linux (CLI only):
curl -fsSL https://localcan.com/install.sh | sh
Linux has no desktop UI, and .local domains are not advertised over mDNS there. The installation notes cover the differences.
Coming from LocalCan 2.x? Version 3.0 installs side-by-side with 2.x and asks on first launch what to bring over. See the installation notes.
Quick start with the CLI
Every plan, including Free, issues a license key. Activate it, then point a Public URL at your local app:
localcan license activate localcan_xxxxxxxxxxxxx
localcan http 3000
Connecting tunnel to http://localhost:3000...
Forwarding https://swift-falcon.local → localhost:3000
Forwarding http://swift-falcon.local → localhost:3000
Forwarding https://swift-falcon-12.localcan.dev → localhost:3000
Requests (Ctrl+C to stop):
15:04:21 GET 200 /
15:04:21 GET 200 /_next/static/css/app.css
On the Free plan the Public URL lives on the trylocalcan.com domain and rotates each session. Paid plans get a reserved *.localcan.dev address like the one above.
Without any license, localcan http 3000 still works out of the box and publishes a .local URL for your local network. Public URLs and TCP tunnels need an activated key.
Prefer a UI? Follow the Quick start with the desktop app instead.
Configure with YAML
Everything LocalCan persists lives in ~/.localcan/. One YAML file per project, editable by hand, shared by the desktop app and the CLI:
# ~/.localcan/projects/my-app.yml
name: My App
icon: 🚀
services:
web:
target: http://localhost:3000
endpoints:
- provider: localcan # Public URL, leave url empty to auto-assign one
- url: my-app.local # local domain for your network
Run localcan reload to apply hand edits. The assigned Public URL is written back to the file, so the config stays the source of truth. Endpoints can also declare header rewrites, basic auth, Snapshots, and Access control. See the configuration docs.
AI agents
LocalCan ships an MCP server, so an AI agent can debug webhooks and share your work for you:
claude mcp add --scope user localcan -- localcan mcp
The server works with Claude Code, Codex, Cursor, Claude Desktop, VS Code, Zed, and any other MCP host. Then ask things like:
- "A webhook just failed in LocalCan. Find it and explain why."
- "Expose port 3000 publicly and give me the URL."
- "Password-protect that preview and give me the password to send."
The defaults are safe: sensitive headers (Authorization, cookies, API keys) are redacted from agent responses, and write tools stay off until you enable them with localcan mcp access read_write. See the AI agents docs.
Plans
The Free plan includes one live Public URL at a time with 60-minute sessions and 1 GB of traffic per month, plus unlimited .local domains, automatic HTTPS, the traffic inspector, and the MCP server. No credit card is required. Sign up free.
Paid plans add Public URLs on *.localcan.dev that stay reserved between sessions, custom domains, TCP tunnels, Snapshots, and Access control. They start with a 14-day free trial. Teams adds team Access policies plus SSO and SCIM. See pricing.
Community and support
- Share feature requests and ask questions in Discussions.
- Report bugs on the issue tracker.
- Email support@localcan.com for anything private.
LocalCan is a closed-source commercial product. This repository is its public home for issues, discussions, and community. Downloads live at localcan.com/download.
Files in the repo
- .github
- images
- .mcp.json
- llms-install.md
- README.md
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More tools
The best-benchmarked open-source AI memory system. And it's free.
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.