The first public release of localenv. One command initializes any project. One command starts everything. iTerm2 opens automatically with a pane per service. Port conflicts are resolved without asking.
localenv init
Detects stack automatically — Node, PHP/Laravel, Ruby, Python, Go, Rust. Reads PORT from .env. Generates .localenv.json. Asks once, remembers forever.
localenv start
Starts all services. Resolves port conflicts automatically — finds what's holding each port, frees it, waits for release, then starts. Opens iTerm2 split view with one pane per service.
localenv info
Renders project config as an ascii tree. Context-aware — run from root to see all services, run from a service directory to see just that service.
iTerm2 split view
Configured at init time. On start, opens a new tab with panes per service — layout A for 3 services. Each pane owns its process. Close a pane to stop that service.
$PORT convention
localenv reads PORT= from each service's .env. Uses $PORT in startCommand for injection. One source of truth. No guessing, no hardcoding.
Vite + webpack detection
Detects Vite and webpack projects automatically. Generates the correct start command with --port flag rather than PORT env var, which these tools ignore.