BOOT SEQUENCE
Initialize CIPHER on your local hardware.
PREREQUISITES
- Node.js v18+
- A Chromium or WebKit based browser
- LAN access if you want cross-device operations
DEPLOYMENT
git clone https://github.com/sir-ad/cipher.sys.git
cd cipher.sys
npm install
IGNITION
Deterministic startup sequence:
cipher up
cipher (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 host
CONTROL COMMANDS
cipher status
cipher stop
cipher open
cipher mcp start
cipher status reports runtime mode as HOST or JOIN with active target URL.
DISCOVERY MODEL
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.
TROUBLESHOOTING
cipher.local does not resolve
- 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.
Tasks are not syncing across devices
- 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.
Duplicate host daemons
Run:
cipher stop
cipher up
This enforces stop-clean-start with a single active runtime target.