Easy Localhost is a compact Windows desktop controller for local development servers. It keeps a live view of the localhost ports you actually care about, groups them by project folder, shows which ones are healthy, and lets you act on them without dropping to terminal commands.
The current release uses a compact graphite UI, a sharper graphite/lime monogram icon, collapsed-by-default folder summaries, a single-cycle refresh control, smoother dense-list rendering, and a consistent portable Windows build with executable version metadata.
When you work with multiple repos, AI coding tools, IIS Express, npm run dev, dotnet, Python dev servers, or several versions of the same app, localhost becomes noisy fast. It is common to end up with many listening ports and very little context about:
- which port belongs to which project
- whether the port is responding over HTTP
- where the process came from
- how to open it quickly
- how to close it cleanly
Easy Localhost keeps that focused in a small always-on-top panel built only for localhost process control.
- Live localhost monitoring with low overhead
- Compact floating Windows UI designed to stay visible in a screen corner
- Smaller, less invasive header and tighter controls for always-on-top use
- Graphite and lime visual system with pure black background and sharper hierarchy
- Sharp shared
ELapp icon embedded in the UI, executable, and release assets - Collapsible grouping by project or folder with compact summary rows
- All folders start collapsed so dense sessions stay calm until you open what you need
- Clickable group headers to expand or collapse folders quickly
- Up to three visible port chips on collapsed folders for fast scanning
- Exact source file paths are shown when a localhost process was launched from a real command file
- Stable scroll behavior during refreshes
- Cached and batched rendering so large localhost sessions remain responsive
- Progressive row rendering inside expanded folders to avoid UI freezes
- Manual reload plus a single refresh button that cycles through
Auto,10s,5s, andManual - Automatic project detection from Git roots,
package.json, and common project markers - HTTP health probing to distinguish active servers from plain listeners
- Short local-only health timeouts tuned for dense dev sessions
- One-click actions per entry:
Openin Chrome when availableCopylocalhost URLSourceopen the project folder in ExplorerCloseterminate the owning process tree
- Portable
EasyLocalhost.exebuild with Windows version metadata - No backend service
- No installation required for the built app
- No external network calls
- No file edits inside your projects
This repository is intentionally narrow in scope.
- It reads only local process and socket metadata from Windows.
- It inspects only local folders to infer project names.
- It never modifies source code in detected projects.
- It never connects to external hosts.
- It does not collect telemetry.
- It does not store secrets, tokens, or credentials.
- It does not commit or require machine-specific absolute paths.
- It does not require admin rights unless you try to close a process that Windows protects.
- Python
customtkinterfor the desktop UIpsutilfor socket and process inspectionPyInstallerfor a portableEasyLocalhost.exe
python -m pip install -r requirements.txt
python src\main.py.\build.ps1The generated binary is:
dist\EasyLocalhost.exe
dist\EasyLocalhost.exe.sha256
The portable EXE is unsigned. Microsoft SmartScreen can still warn for a new unsigned application, even when the code is clean. That warning cannot be honestly eliminated from code alone.
What v3 does improve:
- consistent executable icon
- Windows version metadata
- public SHA256 hash in each release
- reproducible public build inputs in the repo
To eliminate SmartScreen warnings consistently, you need a trusted code-signing certificate or an external signing service.
For verification, compare the SHA256 hash published in each GitHub Release with the downloaded file:
Get-FileHash .\EasyLocalhost.exe -Algorithm SHA256python -m unittest discover -s tests -vpython -m pip install -r requirements-dev.txt
python -m bandit -r src -q
python -m pip_audit -r requirements.txtassets/ App icon assets
docs/ Preview images used in docs and releases
src/
actions.py Safe user actions for localhost entries
app.py Desktop UI
controller.py Monitor orchestration
health_checker.py HTTP probing
models.py Core data models and refresh modes
presentation_state.py Pure UI-state helpers for grouping and summaries
project_mapper.py Project or repository detection
scanner.py Port and process discovery
utils.py Shared constants and helpers
tests/ Unit tests for core logic
build.ps1 Local build script
EasyLocalhost.spec PyInstaller build definition
file_version_info.txt Windows version resource for the portable EXE
This project is intentionally only a localhost controller.
It is not:
- a reverse proxy
- a local tunnel
- a traffic inspector
- a port scanner for external networks
- a project launcher or orchestrator
- a telemetry collector
This project is licensed under the MIT License. See LICENSE.
