cabal/docs
Read and write local CLI configuration values.

cabal config

The cabal config command group reads and writes the local CLI configuration file. This is separate from agent-level configuration -- it controls how the CLI itself connects to Cabal.

Config file location

The configuration is stored at:

code
~/.cabal/config.json

The ~/.cabal/ directory is created automatically with mode 0700. The config file is written with mode 0600 (owner-only read/write).

Subcommands

config get

Read a single config value by key.

bash
cabal config get <key>
ArgumentRequiredDescription
keyYesOne of the known config keys listed in the table below.

Returns the current value for that key, or null if unset. If the key is not recognized, the CLI returns an error listing the valid keys.

bash
# Example
cabal config get defaultProvider
# { "defaultProvider": "anthropic" }

config set

Write a config value.

bash
cabal config set <key> <value>
ArgumentRequiredDescription
keyYesOne of the known config keys listed in the table below.
valueYesThe string value to write.

The CLI merges the new value into the existing config file and writes it back. If the file does not exist yet, it is created.

bash
# Example
cabal config set defaultProvider openai
# { "defaultProvider": "openai" }

Known config keys

KeyTypeDescription
privyUserIdstringThe Privy user id associated with this CLI session.
defaultProviderstringThe default LLM provider id (e.g. anthropic, openai).
providersstring[]List of provider ids available for inference.

Any key not in this set is rejected with an error.

Relationship to other stored state

The CLI stores additional state in ~/.cabal/ that is not managed through cabal config:

FileManaged byPurpose
config.jsoncabal configCLI configuration keys described above.
session.jsoncabal loginAuthenticated session token and metadata.
auth.jsoncabal providerLLM provider credentials (API keys, OAuth tokens).
models.jsoncabal providerCached model registry.