Quickstart
There is no setup wizard outside the app. Run lazygocd and the connect form opens right in the terminal, walks you through four inputs, and drops you into the dashboard.
First run: the connect form
-
Server URL
Your GoCD base URL including the
/gopath, for examplehttps://gocd.example.com/go, with no trailing slash. -
Auth method
An arrow-key choice between username & password and an access token. Tokens are recommended; create one in GoCD under your user's Access Tokens page.
-
Credential
The token or password, typed masked. If your server has no auth at all, leave the username blank.
-
Done
On confirm it saves the config and loads straight into the dashboard. Certificates are always verified; there is no prompt to turn that off. Press A any time later to reopen the same form as "Reconnect to GoCD", for example after a token expires.
Where config lives
Everything is written under ~/.config/lazygocd/. The directory is created mode 0700 and every file in it is written mode 0600: the config holds a plaintext credential, and the cache lists every pipeline name on your server.
| File | What it holds |
|---|---|
config.toml | Server URL, credentials, TLS setting, poll interval, optional GitHub token. Mode 0600. |
dashboard_cache.json | The last successful dashboard load, so the next launch paints instantly. Mode 0600; it lists every pipeline and group name. Safe to delete. |
favorites.json | Names of starred pipelines, pinned to the top of the tree. Mode 0600. |
Shell completion and one-shot lookups
Completion fills in your actual pipeline names from the local dashboard cache. No network, so tab stays instant.
Homebrew does this for you. The formula installs zsh, bash and fish completions plus the man page, so there is nothing to run. Open a new shell and lazygocd dev plus tab already offers your pipelines.
For a cargo install or a downloaded binary, generate them into a directory your shell already searches:
lazygocd completions zsh > "$(brew --prefix)/share/zsh/site-functions/_lazygocd"
lazygocd man > "$(brew --prefix)/share/man/man1/lazygocd.1"
A path like ~/.zfunc works only if you added it to fpath before compinit runs; echo $fpath shows what your shell searches today. The cache appears after your first successful launch, so completion is empty until you have run lazygocd once.
You do not have to open the interface at all. Naming a pipeline prints its latest run and exits, --logs -f tails a running job, and --history lists recent runs. See the CLI section on Features.
lazygocd web-app
lazygocd web-app --logs -f
lazygocd web-app --json | jq -r '.status'
Environment variable overrides
Env vars always win over the config file. Handy for scripting, CI, or trying a second server without touching your saved config. Setting a full set (URL plus a credential) skips the connect form entirely.
| Variable | Overrides |
|---|---|
GOCD_URL | Server base URL, e.g. https://gocd.example.com/go |
GOCD_USERNAME | Username for basic auth |
GOCD_PASSWORD | Password for basic auth |
GOCD_TOKEN | Access token; used instead of username/password when set |
GOCD_INSECURE | Any value skips TLS certificate verification (e.g. GOCD_INSECURE=1). Your token or password then rides a connection nothing authenticates, so anything on the path can read it. |
GITHUB_TOKEN | GitHub personal access token for private-repo commit checks |
# one-shot session against a different server, config file untouched
$ GOCD_URL=https://gocd.example.com/go GOCD_TOKEN=your-token lazygocd
GITHUB_TOKEN. It's optional either way; public repos are checked unauthenticated (rate-limited).