eno

ambient localhost

myapp.localhost → your app, running

Quick Start

# Install
curl -fsS https://eno.javan.us/install | sh 

# Register an app
eno add ~/Code/myapp

# Visit in browser
open http://myapp.localhost

How It Works

When you visit myapp.localhost, eno:

No DNS config needed—.localhost resolves locally per RFC 6761.

Usage

Register

eno addCurrent directory
eno add ~/Code/apiSpecific path
eno add -n apiCustom name
eno add -c "npm run dev"Custom command
eno add -a "*.myapp"Subdomain alias

Manage

eno listShow registered apps
eno start [app]Start an app
eno stop [app]Stop an app
eno restart [app]Restart an app
eno logs [app]Tail logs
eno remove [app]Unregister an app

[app] accepts a name or path. Defaults to current directory.

System

eno updateCheck for updates
eno service installInstall daemon
eno service uninstallRemove daemon
eno service statusDaemon status

Auto-detection

eno detects common application types and starts an appropriate development server automatically. Or, specify a custom command with eno add -c "command".

Configuration

Apps live in ~/.config/eno/apps.json:

{
  "myapp": {
    "path": "/Users/you/Code/myapp",
    "command": "npm run dev"
  },
  "multi-tenant": {
    "aliases": ["*.multi-tenant"],
    "path": "/Users/you/Code/multi-tenant",
    "command": "bin/dev"
  }
}

The command and aliases fields are optional. Aliases are subdomain patterns—*.myapp routes anything.myapp.localhost to the app.

Paths

~/.config/eno/apps.jsonApp registry
/etc/pf.anchors/enopf anchor rules (macOS)
~/.local/state/eno/daemon.logDaemon logs
~/.local/state/eno/*.fifoApp log streams