Config
Read and write the CLI's persistent defaults, and the environment variables that override them.
geni config stores defaults the CLI consults when nothing more specific is set. It matters mainly for pointing the CLI at a local-dev or self-hosted server without re-passing --server on every command.
geni config setwrites a value.geni config getprints one value, or every settable key.geni config unsetremoves a value.geni config pathprints the absolute path to the file.
The file lives at ~/.config/geni/config.json, or under $GENI_CONFIG_DIR when that is set.
Settable keys
| Key | Effect |
|---|---|
apiUrl | The cloud API base URL used at geni login time. |
dashboardUrl | The dashboard base URL used by browser-opening commands like credential connect. |
Both are optional; anything unset falls back to the default.
Environment variables
| Variable | Effect |
|---|---|
$GENI_API_URL | Overrides apiUrl, but not a session's bound server. |
$GENI_DASHBOARD_URL | Overrides dashboardUrl. Highest precedence for the dashboard URL. |
$GENI_CONFIG_DIR | Where the config and session files live. Defaults to ~/.config/geni. |
$GENI_CACHE_DIR | Where the CLI caches. Defaults to ~/.cache/geni. |
Resolution order
For apiUrl, highest wins:
- The session file's stored server, locked at login.
$GENI_API_URL.apiUrlin the config file.- The compiled-in default,
https://cloud.generalinput.com.
Because a session is bound to the URL it was minted against, changing apiUrl after logging in does not retarget existing commands. Switch with:
geni logout
geni config set apiUrl http://localhost:4111
geni loginor in one step with geni login --server <url>. config set apiUrl refuses to change while a session is bound to a different server, rather than leaving the CLI in a state where the config and the session disagree.