TopGit
GitHub Repo Review

Slim: localhost HTTPS tunnel for local development

STopGit review image for nilbuild/slim
Review by Topgit.dev for nilbuild/slim, with GitHub repository stats and README context.
Quick verdict

Slim gives you clean HTTPS domains for local dev without the usual certificate headaches. It generates a local CA, installs it into your system trust store, and spins up HTTPS on any .test domain you choose. The slim.show public sharing feature is convenient, though it depends on their infrastructure. If you constantly fight browser warnings or need to test auth flows that demand HTTPS, Slim removes that friction entirely.

Stars
★ 2.1k
Forks
⑂ 139
Contributors
👥 1
Language
Go
License
See repository
Topic
Updated
Sep 2026
Homepage
GitHub

What is Slim?

Slim is a local HTTPS tunnel and reverse proxy for developers. It creates trusted HTTPS domains (myapp.test, app.loc) pointing to your local server, handles path-based routing to different ports, and includes a public URL sharing mode. At its core it is a CLI wrapping a CA generator, a certificate provisioner, and a reverse proxy.

Key features

  • Generates a local CA and trusted certificates automatically so browsers accept HTTPS without warnings
  • Maps custom .test or other TLD domains to your local ports with mTLS between client and proxy
  • Routes different URL paths on a single domain to different upstream ports
  • YAML config file (.slim.yaml) for defining all project services and options
  • Public URL sharing via slim.show with optional password protection and TTL
  • Built-in diagnostics (slim doctor), log tailing, and service listing commands
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

When to use Slim

  • Testing OAuth flows, secure cookies, and webhook integrations that require HTTPS
  • Sharing a local project with external collaborators via a temporary public URL
  • Running multiple services on different ports under a single clean domain during development
  • Defining all project services in a config file and starting them with a single command

Installing Slim

Run the install script directly: `curl -sL https://slim.sh/install.sh | sh`. To build from source, clone the repo, run `make build`, then `make install`. Requires Go 1.25 or later.

Running local HTTPS domains with Slim

Basic local domain: `slim start myapp --port 3000` creates https://myapp.test pointing to localhost:3000. Share publicly: `slim share --port 3000` gives a random slim.show URL. Manage services via config: place a .slim.yaml at your project root, then run `slim up` and `slim down`. Inspect running services with `slim list` and check diagnostics with `slim doctor`.

Strengths

  • HTTPS works locally without browser warnings — it auto-generates a CA certificate and registers it with the OS trust store, validated by `slim doctor`
  • A `.slim.yaml` file lets you define all services for a project upfront; `slim up` spins them all up at once with CORS and custom routing already configured
  • Path-based routing handles `/api=8080` and `/ws=9000` on the same domain, so multi-service frontends and backends share a single hostname during development
  • Public sharing via `slim.show` supports password protection, TTL-based expiration, and custom domains — useful for quick stakeholder previews without pushing code
  • Port forwarding (80→10080, 443→10443), hosts file entries, and cert renewal all happen automatically; `slim uninstall` wipes every trace cleanly

Limitations and things to know

  • Public sharing via slim.show is not self-hostable — you rely on their infrastructure
  • The README explicitly warns against .local TLDs due to slow DNS resolution on macOS and Linux from mDNS
  • Each command invocation requires specifying --port unless you define services in a config file

Alternatives to Slim

ngrok — widely-used localhost tunneling tool with both free and paid tiersCloudflare Tunnel — tunnel service from Cloudflare, often used in production-adjacent setupslocaltunnel — open-source project that exposes localhost via a public URL without an accountServeo — SSH-based tunnel that lets you request a subdomain without installing software

Frequently asked questions

How do I install Slim for local development?

Run `curl -sL https://slim.sh/install.sh | sh` to install via the official script. Alternatively, clone the repository, run `make build`, then `make install`. Building from source requires Go 1.25 or later.

Is Slim free for commercial use?

Yes. Slim is licensed under PolyForm Shield 1.0.0, which the README states permits both personal and commercial use.

How do I uninstall Slim and remove its CA certificate?

Run `slim uninstall` — the command removes the CA certificate, all host entries, port-forward rules, and config files. This restores your system to a clean state.

Does Slim work on macOS, Linux, and Windows?

The README documents commands for macOS and Linux. It mentions that .local TLDs cause slow DNS resolution on macOS and Linux due to mDNS, which implies Windows is supported but the experience differs. Windows compatibility is not clearly documented.

How do I share my localhost publicly with Slim?

Use `slim share --port 3000` to get a random public URL like https://cheeky-panda.slim.show. Add `--subdomain demo` for a specific subdomain, `--password secret` for protection, or `--ttl 30m` to set an expiry time.

Can I use custom TLDs with Slim instead of .test?

Yes. Pass the full domain to `slim start`, for example `slim start app.loc --port 3000`. Avoid .local — it is reserved for mDNS and causes slow DNS resolution on macOS and Linux.

The problem it solves

Browsers block self-signed certificates, so testing HTTPS-dependent features like OAuth callbacks, secure cookies, or webhook integrations locally means either trusting certs manually or clicking through security warnings every time. Organizations with strict browser policies may not allow that workaround at all. Slim solves this by provisioning a trusted CA certificate and installing it system-wide so you get clean HTTPS without touching browser settings.

Who should try it — and who should skip

Reach for Slim if you test anything that requires HTTPS on a custom domain: OAuth callbacks, secure cookies, CSP headers, or browser APIs that gate features behind HTTPS. It is also useful for sharing work-in-progress with clients or external collaborators without deploying. Skip it if ngrok already covers your tunneling needs or if you only need HTTP localhost access.

Source & attribution

Repository: https://github.com/nilbuild/slim

GitHub data · last synced Aug 15, 2026Reviewed by Henry
Back to TopGit

Want a second opinion on slim?

Ask an AI that can read this page — one click and you get its take on slim.

GitHub