Initialize CIPHER on your local hardware.
- Node.js v18+
- A Chromium or WebKit based browser
- LAN access if you want cross-device operations
git clone https://github.com/sir-ad/cipher.sys.git
cd cipher.sys
npm installDeterministic startup sequence:
cipher upcipher (with no args) also maps to cipher up.
cipher up always performs local stop/clean first. Then it chooses mode:
- JOIN mode (default): if an authoritative LAN host is discovered, CIPHER opens that host and does not spawn a new daemon.
- HOST mode: if no host is discovered, CIPHER starts a fresh local daemon.
Force behavior:
cipher up --host # always spawn local host daemon
cipher up --join 192.168.1.5 # always join explicit hostcipher status
cipher stop
cipher open
cipher mcp startcipher status reports runtime mode as HOST or JOIN with active target URL.
CIPHER discovery is best-effort mDNS with mandatory IP fallback.
Primary join paths:
http://cipher.local:4040(when mDNS works)http://<host-ip>:4040(always supported fallback)
In-app IP OVERRIDE can attach to a host when cipher.local is blocked by router, firewall, or OS policy.
- Use
cipher statuson host and copy theJOIN/HOSTtarget URL. - Open
http://<host-ip>:4040directly from peer devices. - Enter host IP into IP OVERRIDE in CIPHER UI.
- Ensure peers are joining the same authoritative host (
cipher status). - Do not run
cipher up --hoston secondary devices. - Use default
cipher upto auto-join existing host.
Run:
cipher stop
cipher upThis enforces stop-clean-start with a single active runtime target.