Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment

Variables evoke reads

VariableRead byMeans
TYPESAFE_API_KEYThe Jev adapter, when decidingThe classifier's key. Never written to a file
EVOKE_ANSWERSThe replay adapterA recording to answer from, with adapter = "replay" in evoke.toml
<VAR> of a --env settingA body's runA config value, most often a secret, resolved for that run only
NO_COLORThe terminalSet and not empty: no colour. The spinner and the line editor stay
TERMThe terminalUnset, empty or dumb: no colour, no spinner, no line editor
HOME, XDG_CONFIG_HOME, XDG_STATE_HOME, XDG_CACHE_HOMEPathsWhere the project and the machine-local state live
PATHadd, sync, argv bodiesWhere node and an argv's program are found; git too
GIT_*FetchingYour git configuration and credentials apply; GIT_TERMINAL_PROMPT=0 is set

Paths

PathHoldsWritten by
$XDG_CONFIG_HOME/evoke/ · ~/.config/evoke/The home projectyou, add, teach, …
$XDG_CACHE_HOME/evoke/store/<h1>/Fetched reflex directories, by content hashadd, sync
$XDG_CACHE_HOME/evoke/answers/<plan>/The adapter's answers, per installed set and utteranceevery decision, try
$XDG_CACHE_HOME/evoke/baselines/<plan>.jsonevoke test's last verdicts per installed settest
$XDG_STATE_HOME/evoke/log.jsonlOne JSON line per decision; why reads the lastevery decision
$XDG_STATE_HOME/evoke/trust.tomlTrusted project roots and their content digeststrust, every write
$XDG_STATE_HOME/evoke/runtimeThe path of node a file body runs underadd, sync
$XDG_STATE_HOME/evoke/historyThe REPL's lines, the last 1 000the REPL

$XDG_STATE_HOME defaults to ~/.local/state, and $XDG_CACHE_HOME to ~/.cache. Everything under cache can be deleted. sync and the next decision rebuild it. No key and no config value is ever written under either. The log and the history hold what you typed and what a body returned. Only you can read them.

What a body sees

A file body runs under a scrubbed environment of five variables: PATH, HOME, TMPDIR, LANG, TERM. It receives its arguments, the input, its config and a signal through the call. An argv body gets the same five, plus:

VariableHolds
EVOKE_CONFIG_<KEY>Each [config] key, upper-cased, as its value
EVOKE_INPUTThe sentence as typed

Secrets reach a body only this way, for the length of one run.

Time

One decision has 30 seconds, shared by the adapter's answer and the body's run. A prompt never counts. The Jev transport gives a request 1.5 seconds once connected. It retries once after a connect error or a server error.