Humans and agents live adjacently.
Adjacent is a local dev-server harness — one supervised dev server that you and your agent share, behind a real URL.
When you and your agent need the same local server, you evict each other. The agent takes the process — you lose the logs. You take it back — the agent can't verify its work.
Adjacent supervises the server so neither of you has to own it. One daemon boots, routes and watches every app; both of you talk to it through the same CLI.
Read the source→$adj add .# register the app's adjacent.toml
$open https://site.adj.ac# first request boots the server
$adj logs site --tail# one log, both of you read it
$adj agent-instructions >> CLAUDE.md# teach your agent to share
The same commands for human and agent — every read takes --json. No separate agent mode, so the two sides can't drift.
Run several agents in parallel git worktrees of one repo. adj add names each instance after its branch — feature-x.site.adj.ac — with its own process, port and logs.
Nothing runs until a request hits name.adj.ac; concurrent boots wait on the same start. No traffic for 15 minutes and it stops — long agent sessions don't pile up orphaned servers.
The proxy never forwards to a half-booted process. TCP-open by default, or poll a health check URL for a 2xx.
The local CA's private key lives in your keychain, never on disk — and the cert is name-constrained so it can never sign for another domain. *.adj.ac resolves from public DNS; no /etc/hosts.
Privileged setup prints the command for you to review and sudo. The daemon itself never escalates.
$brew tap nonrational/adjacent https://github.com/nonrational/adjacent# straight from the repo — no separate tap
$brew trust nonrational/adjacent# third-party tap, so opt in once
$brew install adjacent# Apple Silicon, unsigned alpha build
The alpha is live — Apple Silicon, unsigned, rough edges.
Built in public — follow along on GitHub→Rust · macOS · open source