Skip to content

Configuration

neo auth login writes ~/.config/neosource/config.json — more precisely, a neosource/config.json under the platform config directory ($XDG_CONFIG_HOME or ~/.config on Linux, ~/Library/Application Support on macOS, %APPDATA% on Windows). neo doctor prints the resolved path.

The file holds one stored login: the forge base URL, your account id and handle, the bearer token, this machine’s name, and the paths of the SSH key pair enrolled by neo auth login or neo ssh setup. It is written 0600 on Unix, and the mode is re-applied even if the file already existed world-readable — it is a credential store, not a preferences file.

neo auth logout removes the stored login; neo auth status prints who you are signed in as and whether neo is registered as git’s credential helper.

In order, first match wins:

  1. --host on the command line.
  2. NEOSOURCE_API in the environment (the same clap value as --host, so an explicit flag beats it).
  3. The stored login’s base_url.
  4. The compiled-in default.

The compiled-in default depends on how the binary was built: a debug build (cargo run, just neo) targets http://neosource.localhost, the local just dev stack; a release build (cargo install, just install) targets https://neosource.dev.

A stored login is bound to the host it was minted for. Pointing --host at a different host is treated as a conflict rather than a silent retarget: neo uses the host you named and does not send that host the other one’s token.

neo run is the documented exception to step 2 — see Environment variables.