Skip to content

Config file

jevx keeps everything it writes in one JSON file, ~/.config/jevx/config.json (override the path with JEVX_CONFIG). The commands (profile, question, defaults, plugin) edit it for you; you can also edit it by hand. It never holds a key’s value, only the $VAR reference.

An illustrative file with every top-level field (values are examples, not defaults):

~/.config/jevx/config.json
{
"default_profile": "jev",
"profiles": {
"jev": {
"url": "https://your-endpoint/v1/systemone",
"model": "MODEL",
"headers": { "Authorization": "Bearer $YOUR_KEY_VAR" }
},
"local": {
"url": "http://127.0.0.1:21131/v1/systemone",
"model": "my-model",
"defaults": { "parallel": 4 }
}
},
"defaults": { "yes": 0.85 },
"questions": {
"urgent": {
"type": "noul",
"instructions": "Is this urgent for the person receiving it?",
"yes": 0.85
}
},
"plugins": {},
"local_context_section": "Jev"
}
field meaning
default_profile the profile used when --profile is not given
profiles name → profile (below)
defaults settings that override the built-ins; see Settings
questions named questions: jevx ask NAME
plugins name → plugin; see Plugins
local_context_section the section heading, global and folder (default Jev; any level)
local_context_file file holding the folder section (default AGENTS.md, then CLAUDE.md)
global_context_file global files holding the section (comma list, ~ expanded)
field meaning
url the System One endpoint
model the model name sent with each request
headers header name → value; $VAR / ${VAR} expanded per request
questions optional question pack (JSON) for judge
defaults settings that apply only when this profile is used
note free text
endpoint, key_env legacy names, still read
field meaning
type noul (yes/no), choice or score
instructions the question text
criteria noul {true, false} · choice {key: desc} · score [levels], lowest first
context background for this question only, sent ahead of its instructions
yes, no, min_confidence this question’s own thresholds

The nearest .jevx/ directory from the working directory up (found like .git) can hold:

  • .jevx/questions.json: questions with the same shape as questions above, written by question add --local.
  • .jevx/plugins.json: plugins, written by plugin add --local.

A local entry wins over a global one of the same name. Both files are meant to be committed.

Something wrong or unclear on this page?Open an issue on GitHub.