Joining a Server Someone Else Set Up with neo attach
neo attach adds an already-initialized server to your local config, without re-running neo init or touching what's already there.
The problem
neo init sets up Docker and Caddy on a fresh server. Running it a second time — because a teammate already did the setup — is unnecessary and, worse, a confusing thing to attempt against a server that's already live with real apps on it.
Attaching instead
neo attach [email protected]
Given SSH access already works (see Team SSH Key Management for how that access is usually granted), this adds the server to your local ~/.neo/config.json and reads its existing /etc/neo/state.json — no changes made to the server itself, no re-running of the Docker/Caddy install.
What you get immediately
neo use that-server-name
neo list # every app already deployed there
neo status # health, resource usage
Full visibility and deploy access to everything already running, as if you'd set the server up yourself.
When to use attach vs. init
neo init — a brand new server, nothing on it yet.
neo attach — a server a teammate (or your past self, on a different machine) already initialized, and you just need local access to it.
Running attach against a server that was never init'd fails cleanly rather than attempting a partial setup — it expects /etc/neo/state.json to already exist.
Try it yourself — Neo is free, with every feature unlocked.
Get started free