Skip to content
hsr88Public

About

A free, local-first desktop tool that scans for active dev servers and generates instant QR codes - so you can open your localhost on any device in your network with one scan.

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

35 Commits

Folders and files

Repository files navigation

EnvTunnel

A free tray app for Windows, macOS, and Linux that detects running development servers and generates QR codes for testing them on phones and tablets on the same local network.

EnvTunnel Demo


๐Ÿ”ฅ What is it?

EnvTunnel is a desktop application built with Tauri + React + TypeScript. Start your project in your usual terminal or IDE. EnvTunnel monitors common development ports in the background and generates a QR code with your local network address (e.g. http://192.168.1.15:5173) when the server accepts connections on that address.

Windows, macOS, and Linux. No cloud. No accounts. No internet required. 100% offline.

How it fits your workflow

EnvTunnel focuses on one task: getting an already-running development server onto your phone without typing its IP address. Keep your existing editor, terminal, and project setup; there is no need to import your project or manage it through a separate app launcher.

Despite the name, EnvTunnel currently provides port discovery and LAN QR codes, not a network tunnel or reverse proxy. It does not create public internet links, forward traffic, or change your server's listening address or firewall rules. Public tunnel integrations are possible future contributions.

Your computer and phone need to be on the same local network, with connections between them allowed. The server must listen on a network interface, not only localhost. EnvTunnel checks the computer's LAN address from that computer; this cannot guarantee that a phone can reach it through a firewall or Wi-Fi client isolation.

๐ŸŽฏ Who is it for?

  • Frontend developers who test websites on real phones/tablets
  • Full-stack developers running local APIs and web apps
  • Designers who want to preview work on mobile devices
  • Anyone who is tired of typing 192.168.x.x:3000 on a phone keyboard

โœจ Features

Feature Description
๐Ÿ” Auto-scan Checks 16 default dev ports plus custom ports; waits 3 seconds between completed automatic scans
๐Ÿ“ฑ QR Codes Scannable QR for active servers that accept connections on the computer's LAN address
๐Ÿ“ก Local-only detection Shows a warning when a server is active but the LAN connection check fails
๐Ÿง  Framework Detection Recognizes Vite, Next.js, Astro, Angular, Nuxt, Gatsby, Django, Flask, Laravel, Rails, Express
๐Ÿ”” Notifications In-app toast plus a native OS notification when a new server comes online (works from the tray)
โšก Live Reload Indicator Orange pulse shows which port just became active
๐ŸŒ Interface picker Click the IP to switch Wi-Fi / Ethernet / VPN if the QR used the wrong adapter
โž• Custom Ports Add any port manually (e.g. 6969)
๐Ÿ”— Custom Paths Append /admin, ?debug=true or any path to the QR URL
๐Ÿ“‹ Copy URL One-click copy of the full address to clipboard
๐Ÿ’พ Save QR Export QR code as PNG image
๐ŸŒ Open in browser Open the same URL on this PC to sanity-check it
๐Ÿ–ฅ๏ธ System Tray Minimizes to tray. Click to restore, right-click to quit
๐Ÿš€ Autostart Optional launch on login

๐Ÿ“ก Supported Ports (Default)

EnvTunnel scans these ports out of the box:

Port Common Use
3000 React, Next.js, Express
4321 Astro
5173 Vite
8080 Vue, general dev
4200 Angular
5000 Flask, ASP.NET
8000 Django, general dev
9000 Gatsby
3333 Nuxt 2
3030 Parcel
5500 Live Server (VS Code)
4000 SvelteKit, Rails
6000 Create React App
7000 Vercel dev
5001 ASP.NET alternate
8001 Django alternate

You can also add any custom port via the in-app input.


๐Ÿš€ Installation

For Users

  1. Download the installer for your OS from Releases
  2. Run it (Windows setup/MSI, macOS .dmg, Linux AppImage/.deb)
  3. Launch EnvTunnel from the Start Menu, Applications, or your desktop

For Developers (Build from source)

Prerequisites:

  • Node.js 18+
  • Rust 1.77+
  • Windows: Visual Studio Build Tools (for legacy_stdio_definitions.lib)
  • macOS: Xcode Command Line Tools
  • Linux: WebKitGTK 4.1 and related Tauri system packages

Build steps:

# Clone
git clone https://github.com/hsr88/envtunnel.git
cd envtunnel

# Install dependencies
npm install

# Build frontend + Tauri (production)
npm run tauri build

# The binary will be at:
# src-tauri/target/release/envtunnel.exe          (Windows)
# src-tauri/target/release/envtunnel              (macOS / Linux)
# plus installers under src-tauri/target/release/bundle/

Note for Windows builders: If you get LNK1181: cannot open input file legacy_stdio_definitions.lib, add this to your LIB environment variable:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\lib\onecore\x64

๐ŸŽฎ How to Use

1. Start your dev server

Run your project as usual, e.g.:

npm run dev          # Vite, Astro, Next.js, etc.

Important: Your server must accept connections from the local network. For Vite or Astro, you can pass --host through your development script:

npm run dev -- --host

Other servers may use a different option; use your framework's documented host setting. If EnvTunnel shows LOCAL ONLY, check that setting and restart the server as needed. The selected port's status refreshes after the next scan, so you do not need to select it again.

2. EnvTunnel detects it automatically

Active ports appear in the list. Automatic scans wait 3 seconds after the previous scan finishes; you can also click SCAN to refresh manually.

3. Click the port

Select the active port. The QR code updates instantly.

4. Scan with your phone

Open your camera app and scan the QR code. Your phone browser opens the local URL directly.

If the page does not open, confirm that both devices are on the same local network and that the server's port is allowed through your firewall. Guest Wi-Fi or client isolation can prevent devices from reaching each other even when they use the same Wi-Fi name.

5. Pro tips

  • Custom Path: Type /admin in the Custom section to generate http://192.168.1.15:3000/admin
  • Save QR: Click "SAVE QR" to download the code as a PNG
  • Open: Click "OPEN" to load the same URL in your desktop browser
  • Pick IP: Click the IP if the QR used a VPN/WSL adapter instead of Wi-Fi
  • Tray Mode: Clicking X minimizes to system tray. Right-click the tray icon to fully quit.

๐Ÿ› ๏ธ Tech Stack

Layer Technology
Framework Tauri v2
Frontend React 19 + TypeScript
Bundler Vite
Styling Tailwind CSS v4 (new @theme syntax)
QR Generation qrcode.react
Autostart tauri-plugin-autostart
HTTP Scanning reqwest (Rust)
Design Style Digital Brutalism

๐Ÿ—๏ธ Architecture (Simple Explanation)

EnvTunnel is a local-first desktop app. It works completely offline:

  1. Rust Backend (src-tauri/src/lib.rs)

    • Lists network interfaces and recommends a LAN address; you can choose another interface
    • Scans ports using TCP connections to IPv4/IPv6 loopback and the selected LAN address
    • Performs HTTP GET requests to detect frameworks from HTML
  2. React Frontend (src/App.tsx)

    • Displays active ports as compact buttons
    • Generates QR codes using your network IP (not localhost!)
    • Handles copy/save/autostart UI interactions
  3. System Tray (Rust)

    • Keeps the app running in the background
    • Prevents accidental close (hides instead)

๐Ÿ—บ๏ธ Roadmap

Planned work lives in ROADMAP.md: process names, extra default ports, pin a port, HTTPS QR, --host copy, path presets, optional tunnels, global hotkey.

๐Ÿค Contributing

Contributions are welcome! This is an open-source project meant to help developers.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -am 'Add new feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

Ideas for contributions

See ROADMAP.md. Small, focused PRs are preferred.

๐Ÿ“„ License

MIT License. Feel free to use, modify, and distribute.


Built with ๐Ÿ’š and neon green pixels.
EnvTunnel. Stop typing IP addresses on your phone.

About

A free, local-first desktop tool that scans for active dev servers and generates instant QR codes - so you can open your localhost on any device in your network with one scan.

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages