nilbuild/slim

Goslim.sh
macOSLinux

alternative to ngrok

Give your localhost a local or public URL

tunnellocalhostpublic-urlngrokproxy
Star Growth
Stars
2.1k
Forks
137
Weekly Growth
+20
Issues
8
5001k1.5k2k
Apr 26May 26Jul 26Sep 26
ArtifactsGo Modules
README

⚡️ Slim

Simple command to get clean HTTPS local domains for your projects

Website Go 1.25+ Platform

myapp.test        → localhost:3000
myapp.test/api    → localhost:8080
dashboard.test    → localhost:5173
app.loc           → localhost:4000

Install

curl -sL https://slim.sh/install.sh | sh

or build from source

git clone https://github.com/kamranahmedse/slim.git
cd slim
make build
make install

Requires Go 1.25 or later.

Quick Start

Create a custom HTTPs Domain for local development using slim start

slim start myapp --port 3000
# https://myapp.test → localhost:3000

To share your local project on a public URL

slim share --port 3000
# https://cheeky-panda.slim.show

Local Usage

Start or stop a local service using slim start or slim stop

slim start myapp --port 3000
slim start api --port 8080
slim stop myapp                  # stop one domain
slim stop                        # stop all domains

If you don't specify the TLD, you get a .test domain. Specify a full domain to use any TLD:

slim start app.loc --port 3000   # https://app.loc → localhost:3000
slim start my.demo --port 4000   # https://my.demo → localhost:4000

Note: Avoid .local — it's reserved for mDNS and can cause slow DNS resolution on macOS/Linux.

Route different URL paths to different upstream ports on a single domain:

slim start myapp --port 3000 --route /api=8080 --route /ws=9000

Define all services for a project in a .slim.yaml file at the project root:

services:
  - domain: myapp
    port: 3000
    routes:
      - path: /api
        port: 8080
  - domain: dashboard
    port: 5173
  - domain: app.loc
    port: 4000
log_mode: minimal  # full | minimal | off
cors: true         # enable CORS headers on proxied responses
slim up                              # start all services
slim up --config /path/to/.slim.yaml # specify a config path
slim down                            # stop all project services

Internet Sharing

Expose a local server to the internet with a public slim.show URL. Requires slim login first.

slim share --port 3000                              # random subdomain
slim share --port 3000 --subdomain demo             # https://demo.slim.show
slim share --port 3000 --password secret            # password protected
slim share --port 3000 --ttl 30m                    # auto-expires after 30 minutes
slim share --port 3000 --domain myapp.example.com   # custom domain

Browser warning page

Random-name tunnels (for example a1b2c3.slim.show) show visitors a one-time warning page before serving your content, letting them know the site is served from someone's computer and is not hosted or verified by slim. This protects the shared slim.show domain from abuse. It appears only for browser page loads.

The warning is skipped automatically for tunnels that opt out of anonymity: those with a password, a verified custom domain, or a reserved subdomain.

Programmatic clients (webhooks, curl, mobile SDKs, fetch/XHR calls, CORS preflights) are never shown the page and reach your server directly. To bypass it from a browser-like client too, send the header Slim-Skip-Browser-Warning: 1:

curl -H "Slim-Skip-Browser-Warning: 1" https://a1b2c3.slim.show/

Logs and Diagnostics

slim list                # inspect running domains
slim list --json

slim logs                # view access logs
slim logs --follow myapp # tail logs for a domain
slim logs --flush        # clear log file

slim doctor              # run diagnostic checks
$ slim doctor
  ✓  CA certificate        valid, expires 2035-02-28
  ✓  CA trust              trusted by OS
  ✓  Port forwarding       active (80→10080, 443→10443)
  ✓  Hosts: myapp.test    present in /etc/hosts
  !  Daemon                not running
  ✓  Cert: myapp.test     valid, expires 2027-06-03

Updating

Run slim update to update to latest version.

Uninstall

Remove everything: CA, certs, hosts entries, port-forward rules, config

slim uninstall

License

PolyForm Shield 1.0.0 © Kamran Ahmed

Related repositories
fatedier/frp

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

GoGo ModulesApache License 2.0proxyreverse-proxy
109.3k15.2k
MHSanaei/3x-ui

Supporting multi-protocol multi-user(Vmess, Vless, Trojan, ShadowSocks, Wireguard, Hysteria, Tunnel, Mixed, HTTP, Tun, MTProto، AmneziaWG)

GoGo ModulesGNU General Public License v3.0trojanvless
docs.sanaei.dev
46.1k11.4k
XTLS/Xray-core

Xray, Penetrates Everything. Also the best v2ray-core. Where the magic happens. An open platform for various uses.

GoGo ModulesMozilla Public License 2.0xrayvless
t.me/projectXray
41.5k5.9k
v2fly/v2ray-core

A platform for building proxies to bypass network restrictions.

GoGo ModulesMIT Licenseproxynetwork
v2fly.org
34.6k5.1k
ehang-io/nps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

GoGo ModulesGNU General Public License v3.0sockstcp
ehang.io/nps/documents
34.2k6.1k
ginuerzh/gost

GO Simple Tunnel - a simple tunnel written in golang

GoGo ModulesMIT Licensegotunnel
18.2k2.6k
skywind3000/kcp

:zap: KCP - A Fast and Reliable ARQ Protocol

CMIT Licensekcpudp
16.9k2.6k
jpillora/chisel

A fast TCP/UDP tunnel over HTTP

GoGo ModulesMIT Licensetunneltcp
16.5k1.6k
rathole-org/rathole

A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.

Rustcrates.ioApache License 2.0nattunnel
14.1k822
ekzhang/bore

🕳 bore is a simple CLI tool for making tunnels to localhost

Rustcrates.iocliMIT Licenseclirust
bore.pub
11.5k527
wangyu-/udp2raw

A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)

C++MIT Licensetunneludp-tunnel
8.6k1.3k
p4gefau1t/trojan-go

Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/

GoGo ModulesGNU General Public License v3.0gfwtrojan-gfw
8.4k1.8k