The repository files are found at the root of the git repository you run
orchestra in, from any folder inside it. Outside a repository, they are read
from the current folder.
Which one wins
When the same key is set in more than one place, the first of these wins:- A flag:
orchestra -c diffs.maxLines=80 - The environment:
ORCHESTRA_DIFFS_MAX_LINES=80 .orchestra/settings.local.json.orchestra/settings.json~/.orchestra/settings.json- The default
-c key=value (or --config key=value) goes anywhere on the
command line before a --, and can be given more than once. The value is
read as JSON when it is valid JSON, and as plain text when it is not, so
-c diffs.show=false is the boolean and -c marks=plain is the text.
The environment. Every key has a variable: ORCHESTRA_, then the key in
capitals with each dot and each new word marked by an underscore.
diffs.maxLines is ORCHESTRA_DIFFS_MAX_LINES, and marks is
ORCHESTRA_MARKS. Values are read as flags’ are. An empty variable counts as
unset.
The keys
Why 40 rows: in a sample of 1,116 real Claude Code edits, 40 rows shows 88% of
them whole (the median edit is 11 rows), and 40 rows still fits on one screen
of a 50-row terminal with the input below it. A new file written whole is
usually longer than that, and is cut;
ctrl+o shows the rest. Once you press
ctrl+o, an edit shows up to 400 rows, and the web app’s Changes view has the
whole diff.
Mistakes in a settings file
Settings files are edited by hand, so a mistake never stops Orchestra:- An unknown key is ignored, with a warning that names the key and the
file, and the closest key when there is one:
unknown setting diffs.maxLine in ~/.orchestra/settings.json, ignored (did you mean diffs.maxLines?). - A value a key does not take (
"maxLines": "lots") is ignored with a warning, and the key’s next place in the list above decides it. - A file that is not valid JSON is ignored whole, with a warning naming the file and the parse error. The other files and the defaults still apply.
orchestra doctor
lists every one.
Which files were read
orchestra doctor ends with the files it read, highest first, and where each
key’s value came from:
Nothing secret
A settings file is the thing you paste into an issue, so nothing secret goes in one.orchestra login keeps credentials in ~/.orchestra/credentials.json,
and settings have no key for one. A key that looks like a credential is
ignored like any unknown key, and its warning says where credentials go,
without repeating the value.