Settings reference
Every key numen.json can hold. The pages under Settings say which of these are worth touching and why; this one is here so that nothing is missing.
Each heading below is a section of the file, and the keys under it are written the way they are written inside that section — model.name under indexing.embedding is indexing.embedding.model.name if you write it out in full.
A key you leave out keeps its default, so a file naming one setting is a complete file. A key numen does not know is carried through untouched. A row with no kind beside it is a group holding the keys under it.
Two things are not settings and are not in here: which files count as notes, and what a vault’s own folder is called. Both are asked for on the command line, by numen-cli.
v |
a number | the shape of the file. Nothing reads it yet, and it is written so that the day a section changes shape there is something to tell the two apart. |
plugins |
the configuration for modular plugins, keyed by plugin ID. |
appearance
Section titled “appearance”How the window is drawn.
interface_scale |
a number | how large the window is drawn: its chrome, its controls, the spacing between them and the type in them. |
text_scale |
a number | how large the text a person reads is set: a note, a book, an answer, the editor. |
mode |
text | which half of a colour pair the window takes: system, light or dark. |
theme |
text | the stylesheet the window wears, named by its origin and its filename: preset:dracula ships here, mine:dracula is the person’s file. |
nest_headings_under_notes |
yes or no | whether a node in the plex nests the headings of its note under the box. |
nested_heading_limit |
a number | how many of those headings stand under a node at once, the rest being reached by scrolling. |
indexing
Section titled “indexing”How a vault is made searchable.
embedding |
which model turns text into vectors, and how it is reached. | |
embedding.model |
what a vector is: everything that decides the space it lands in. | |
embedding.model.name |
text | |
embedding.model.dimensions |
a number | |
embedding.model.max_tokens |
a number | |
embedding.model.pooling |
text | |
embedding.indexing |
where a vector is made: on this machine, or by a service. | |
embedding.indexing.use |
text | |
embedding.query |
where a vector is made: on this machine, or by a service. | |
embedding.query.use |
text | |
embedding.floor |
a number | |
recognition |
how a scanned document is read when a person asks for it. | |
recognition.runtime |
text | the shared library of ONNX runtime. Empty means the one beside the application. |
recognition.dir |
text | a folder holding the models. Empty means the folder beside the application, and then the download cache. |
recognition.download |
yes or no | allows fetching what is not on this machine. |
recognition.layout |
divides a page into its parts and puts them in reading order. | |
recognition.layout.name |
text | where the model is fetched from, and path is a file on this machine. |
recognition.layout.path |
text | this model as a file on this machine. |
recognition.layout.labels |
a list of words | the parts the model knows, in the order of its class ids. |
recognition.layout.minimum |
a number | the score a part carries to be a part at all. |
recognition.layout.overlap |
a number | how much of two parts may be common before the second is taken to be the first found again. |
recognition.layout.margin |
a number | what a part is widened by before it is read, because the first letter of a line sits on the boundary the model drew. |
recognition.detect |
finds the lines one part holds. | |
recognition.detect.name |
text | where this model is fetched from. |
recognition.detect.path |
text | this model as a file on this machine. |
recognition.detect.max_side |
a number | the longest side a part is read at. |
recognition.detect.expand |
a number | how many pixels a found line is widened by, in the image the detector reads: the part scaled so that its longest side is max_side. |
recognition.detect.minimum |
a number | the heat a pixel carries to be part of a line. |
recognition.recognise |
reads what a line says: which model, at what size a page and a line reach it, and how much of the machine it takes. | |
recognition.recognise.name |
text | where this model is fetched from. |
recognition.recognise.path |
text | this model as a file on this machine. |
recognition.recognise.dict |
text | the model’s characters, one to a line. Empty is the ordinary case: the model carries them, and asking it is the only way to be sure. |
recognition.recognise.classes |
a number | how many characters the model knows and two more. |
recognition.recognise.dpi |
a number | what a page is rendered at. |
recognition.recognise.height |
a number | what a line is scaled to before it is read. |
recognition.recognise.jobs |
a number | how many recognition sessions run at once. Zero takes the performance profile. |
recognition.recognise.threads |
a number | how many threads one model may use. Zero takes the performance profile. |
recognition.regions |
says what the parts of a page are for. A part the model names that body does not carry is not read. |
|
recognition.regions.body |
a list of words | carry what the document says. |
recognition.regions.head |
a list of words | open a part of the document, outermost first: where a name stands in the list is how deep the part it opens sits. |
recognition.proofread |
names the profile a recognition is put right at. | |
recognition.proofread.with |
text | the profile, by the name the profiles carry it under. |
recognition.proofread.automatically |
yes or no | whether a text already written down is put right without anybody asking for it. |
proofreading |
what puts a recognition right. Naming no profile here is naming no proofreader, and a recognition is used as it was read. | |
proofreading.max_edit_distance |
a number | how far a correction may stand from the line as read and still be a correction: the Levenshtein distance between their letters, as a share of the longer of the two. |
proofreading.profiles |
the places a text is put right at, by the name a consumer asks for one under. | |
transcription |
how a recording is listened to: which models hear it, where they came from, and how the speech in it is found. | |
transcription.runtime |
text | the ONNX shared library. Empty means the one beside the application, and then the one the platform holds. |
transcription.dir |
text | a folder holding the models. Empty means the folder beside the application, and then the download cache. |
transcription.download |
yes or no | allows fetching what is not on this machine. |
transcription.threads |
a number | how many threads the encoder may use. Zero takes one per core, up to eight. |
transcription.model |
turns speech into words. It is exported as three graphs and the pieces they write, and all four are one model: three graphs from two exports answer with nothing anybody can read. | |
transcription.model.name |
text | what this model is called in the record kept beside a text. |
transcription.model.from |
text | the folder the four files are fetched from. |
transcription.model.encoder |
text | encoder, decoder, joiner and tokens are the files on this machine. |
transcription.model.decoder |
text | |
transcription.model.joiner |
text | |
transcription.model.tokens |
text | |
transcription.segmenter |
finds where in a recording somebody is speaking. | |
transcription.segmenter.name |
text | what this segmenter is called in the record kept beside a text. |
transcription.segmenter.from |
text | where the model is fetched from, and path is a file on this machine. |
transcription.segmenter.path |
text | |
transcription.segmenter.threshold |
a number | how sure the model has to be that a window carries speech. |
transcription.segmenter.silence |
a number | how much quiet, in milliseconds, closes a segment. |
transcription.segmenter.pad |
a number | how many milliseconds are kept on each side of a segment, so that the first and last sound of a word are inside it. |
transcription.segmenter.longest |
a number | how many milliseconds one segment may run to. |
transcription.segmenter.shortest |
a number | how many milliseconds a segment carries to be a segment at all. |
transcription.segmenter.least |
a number | how many milliseconds a segment runs to before it stands as a line of its own. |
transcription.proofread |
names the profile a transcript is put right at. | |
transcription.proofread.with |
text | the profile, by the name the profiles carry it under. |
transcription.proofread.automatically |
yes or no | whether a text already written down is put right without anybody asking for it. |
transcribe_recordings |
yes or no | whether a recording the vault holds no transcript for is listened to without anybody asking. |
transcribe_under_mb |
a number | how large a recording may be and still be listened to without anybody asking, in megabytes. |
Which agent answers in the panel, and what it may reach.
use |
text | names the agent. Empty answers with none, and the panel says so. |
serve_tools |
yes or no | puts the tools on a port, which is how an agent a person runs themselves reaches this vault. |
claude |
code, reached by starting it and reading what it prints. | |
claude.command |
a list of words | starts it: the command line’s path, and anything it is started through. |
claude.model |
text | which of its models answers — opus, sonnet, haiku, or a full name. |
claude.max_steps |
a number | how many times it may go to the model before it is stopped. |
claude.reads_hooks_and_skills |
yes or no | lets it read what is configured for it on this machine: hooks, skills, standing instructions in CLAUDE. |
antigravity |
google antigravity, reached over ACP protocol. |
|
antigravity.command |
a list of words | |
antigravity.model |
text | |
antigravity.max_steps |
a number | |
antigravity.reads_hooks_and_skills |
yes or no | |
codex |
openAI codex, reached over ACP protocol. |
|
codex.command |
a list of words | |
codex.model |
text | |
codex.max_steps |
a number | |
codex.reads_hooks_and_skills |
yes or no |
importing
Section titled “importing”How an address a link note points at is reached, and where the tools that reach it are.
captions |
a list of words | the languages published words are preferred in, best first. |
automatic_captions |
yes or no | whether words a machine wrote count where a person published none. |
copy_max_size_mb |
a number | how large a copy may be. Above it, a copy asked for says the size it was refused at and nothing is fetched. |
copies_to_vault |
yes or no | whether a copy is kept beside the note as a file of the person’s own. |
yt_dlp |
what is run to reach a video. Empty asks the path. | |
yt_dlp.command |
a list of words | what is run, so a machine that writes the path afresh at every build names whatever does know where the tool is. |
yt_dlp.arguments |
a list of words | handed to every run before its own: what answers for a person at a site that refuses an unattended fetch — the cookies of a browser, a token, a proxy — is that machine’s and is passed through as it stands. |
yt_dlp.environment |
set on every run, over what this process was started with. | |
ffmpeg |
what brings a container to what a transcriber opens. | |
ffmpeg.command |
a list of words | what is run, so a machine that writes the path afresh at every build names whatever does know where the tool is. |
ffmpeg.arguments |
a list of words | handed to every run before its own: what answers for a person at a site that refuses an unattended fetch — the cookies of a browser, a token, a proxy — is that machine’s and is passed through as it stands. |
ffmpeg.environment |
set on every run, over what this process was started with. |
naming
Section titled “naming”How a note’s title and the name of its file are held together.
sync_title_and_filename |
yes or no | whether renaming either of the two brings the other into line. |
review
Section titled “review”What a day of review is, on this person’s clock.
day_start_time |
text | the hour a day of review begins at, on the clock on the wall, written as hours and minutes. |
performance
Section titled “performance”The workload and resource calibration profile.
profile |
text | the active preset. |
custom |
holds user-defined overrides when profile is ProfileCustom. |
|
custom.embedding_batch_size |
a number | |
custom.ocr_threads |
a number | |
custom.ocr_sessions |
a number | |
custom.llm_concurrency |
a number |