Home and Settings
Get an install ready, what Home says, the side, and what each Settings page shows and changes: Parts and their updates, language models, teaching, places, backups and keys, people, the audit log, and uninstalling.
Everything on these pages is worked out from what the parts report. A page that reads a part shows only where that part answers, and only to a person whose grants open it; groups and grants says which.
Get started
Until an install is set up, Home is the page of the steps that make it ready, for a person who may see the install’s pages. The side calls it Get started.
| Step | Needed | Holds once |
|---|---|---|
| NILS is installed | yes | the engine and the desk answer |
| Add a root folder | yes | a source place is named: the folder your dataset folders are in |
| Keep the registry safe | yes | the registry names a backup place on other storage, a backup is scheduled or ran in the last week, and the last one did not fail its check |
| Decide who signs in | yes | people sign in, or nobody does and the desk answers on this machine only |
| A model for the assistant | no | a local model answers |
- Act on each step where it stands. It needs work on its page.
- Add a root folder: choose the folder from the engine’s own locations, or type it. Datasets are added from it on Data.
- Keep the registry safe: press Back up to the engine’s backup folder, which names it the registry’s backup place; then Back up every day at 02:00, which keeps the last 14; then Back up now, which writes a first archive and rehearses a restore of it. These need work on Backups and on Places. Where the engine has no backup folder yet, a person with work on the install presses Give the engine a folder first and chooses one; the engine starts again to use it, and nothing else does.
- Decide who signs in: in local mode, add a person. A person with work on the install presses Change how people sign in to move the desk to passwords it keeps, or to a provider; see People and groups.
- A model for the assistant is added under Language models. Where the desk does not reach Kvasir, a person with work on the install presses Start Kvasir again, or Use a model server and gives its address, key and model; every part starts again, with Kvasir holding the server and sealing its key.
When every needed step holds, the page says so and opens Home. Settings keeps it as Setup.
Steps the supervisor makes
Giving the engine a folder, changing how people sign in, starting Kvasir again or naming a model server, and putting an archive back on Backups are made by the supervisor that runs beside the parts. Each is a button for a person with work on the install, where the supervisor makes that step.
- A person without work on the install reads who does it, in one plain line with no command, such as “An administrator changes how people sign in.”
- A person with work on the install, where the supervisor does not make the step, reads why above the command to run at the machine: the desk reaches no supervisor, the supervisor did not answer, the machine’s helper must first be written again by
nils setup, the install runs no services, or the supervisor is older than the button.
Each change is recorded in the registry’s audit under the person who asked. Turning sign-in off, and registering the desk at an Authentik, stay at the machine: nils setup.
Home
A strip says whether the engine, the desk, Kvasir, the assistant and the database answer. A line says how far setup is while any step is left, and opens it. Four tiles say what the registry holds, what needs you, what is running and what changed since your last visit. Each tile is a link to where you act, and shows for a person who may see the page it counts.
A person who signs in holding no grant sees one page instead: the account exists and holds no grant, and pages are given on the People page. Nothing there is broken, and nothing is open yet.
The side
One side panel holds the sections at its top and Settings at its foot. One section is open at a time, with its pages under it. A section shows when you hold a grant that opens it and the engine serves its doors.
| Section | Pages |
|---|---|
| Home | none; the NILS mark in the top bar opens it too |
| Assistant | New conversation, All conversations, Shared, Memory, Plans waiting, Standing grants, then your recent conversations |
| Query | Cards, Selections, Exports |
| Data | Datasets and cohorts, Browse, Pseudonyms, Clinical |
| Review | Work, Main scans, Subjects, Rules, Rounds, Label sets |
| Release | Releases, New release, Session schemes |
| Pipelines | Jobs, Catalog, Runs, Logs, Models |
| Settings | Overview, Parts, Engine, Desk, Language models, Assistant, Teaching, Places, Backups, People, Audit, Setup |
Each page is described under its section: Assistant, Query, Data, Review, Release, Pipelines. Until setup is done only Home, the Assistant and Settings show. The older addresses #campaigns, #models, #ask and #settings/database lead to the pages that replaced them.
On a narrow window the side is a panel over the page, opened from the menu in the top bar. Beside the person, the top bar has a theme switch: as the system, dark or light, kept in the browser. The person’s name opens Your profile, Sign in as someone else and Sign out. The profile says who the desk knows them as, how they sign in, their groups, and what they may see and do. For the other two, see signing out.
Settings
Settings opens for a person who may see at least one of its pages, on an overview: a card for each page with its state and the facts that matter most, and above the cards, what needs you, the worst first.
| Page | Opens with | What it shows, and what work there changes |
|---|---|---|
| Overview | see on the install | a card for each page, and what needs you |
| Parts | see on the install | every part with its version beside its own newest release, the unit that runs it, its health, the rules, and what a newer release changes; work updates one part, everything, or restarts a part |
| Engine, Desk | see on the install | what each part is and what it reaches; work restarts it |
| Language models | see on Kvasir | where each station goes, and the models; work adds, checks and removes models, downloads local ones, and moves stations |
| Assistant | see on the assistant’s settings | what the assistant is and what it reaches; its restart needs work on the install |
| Teaching | work on the assistant’s settings | what people corrected, made into sets, fine-tuned into candidate models, and promoted once they pass; see Teaching |
| Places | see on Places | every place with its role, its guarantees, its room, and whether it stands up to its role; work adds a place, moves it, changes its guarantees, or retires it |
| Backups | see on Backups | where the registry lives, its backups with their schedule and each archive’s last check, the keys, the share of questions read blind first, and the registry’s calendar; work sets the schedule and the calendar, and backs up; work on the install gives the engine another backup folder and puts an archive back; an admin makes and removes keys |
| People | see on People | how people sign in, the groups and the people; work adds people and makes and changes groups |
| Audit | see on Audit | the registry’s audit log, narrowed by who acted, the act and the month |
| Setup | see on the install | the steps of getting started, and at its foot Uninstall NILS for a person with work on the install |
Adding, opening or moving something opens a dialog over the page, which rises from the bottom on a phone. What the pages read is kept between pages: a page draws what was read last at once, says when, and reads again on asking or after a change made on it.
Parts
What acts on the install itself (taking a newer release, restarting a part, starting the engine again with a new source, and the steps the supervisor makes) goes through the supervisor that nils setup runs beside the parts, for a person with work on the install. Where the supervisor does the work, the button stands alone, with no command beside it. A desk that reaches no supervisor still shows versions and health, and says that how each part runs is not shown. A person who may only see the install reads that an administrator updates it.
The engine, the desk, the assistant and Kvasir each release on their own, so Parts offers an update whenever any part is behind its own newest release.
Update
- Open Parts. The table lists every part with its version, what it runs as, its health, and the newer release of its own. The heading, the top bar and the overview name the part that is behind, or count them.
- Press Update on a part, or Update everything. They run
nils update --part <part>andnils update --all. The page loads again when the desk is back. - A desk release that needs an engine contract this engine does not speak is said to wait and is not offered; it comes with the engine release that speaks it.
Look at the releases again
The supervisor keeps what it looked at for a quarter of an hour. The page says how old that look is beside the table: “checked just now” is only when the page itself was read, and “releases looked up 14 minutes ago” is the look.
- If a release was published since, press Look again, as a person who may work on the install.
- The supervisor looks at the releases again, once its look is a minute old, and the page reads again.
An offer is only ever a release newer than the installed one. With an engine that does not say when it looked, the page reads as it did.
Update the rules
The rules ship on their own tag. Each first-party rules pack has a row of its own, such as MRI rules.
- The row shows the version in place, its own newer release, and whether it is in use, changed on this machine, kept, pinned at X, or waits for a newer engine and why.
- Press Update on the row. It takes the rules alone, keeps the pack it replaces in
<dir>.previous, and starts nothing again: the engine reads a pack again when its files change. - Stacks keep their old answers until you sort again; the update panel says so.
- A pin holds an install at one version, to reproduce a paper’s results. A site does not pin otherwise:
nils update --pin mri@1.0.0, andnils update --unpin mrilifts it.
The site’s own packs are one row beside them, and no release touches them. An engine without rules releases shows one row for the packs, which move with the engine’s release; see keeping the engine current.
Sort the scans again
A rules release changes what the engine sorts from now on. The scans already sorted keep their stored answers until they are sorted again.
- Press Sort again under the rules row’s version. It needs work on Pipelines.
- Read the dialog. It says what the sort will judge, all the registry’s scans under that pack’s rules in force, and how many were last sorted under other rules. Nothing is queued yet.
- Press Sort again. The engine’s
classify --packruns as a job with no scope, as Read new files runs it, and the page says which job.
The sort replaces the rules’ stored answers with the answers of the rules now in force. What people decided stays, and Review is asked where the rules now answer a scan differently from what the person saw. The Rules page has no button of its own: adopting a proposal there already sorts again.
Tools
Tools lists what the engine runs with: dcm2niix, with its version, where it was found and how, or missing. An admin presses Install to place the build this engine pins.
Where the install fails because the engine cannot reach the releases, a line under the engine’s reason names the archive to fetch, linked to its release, with its sha256.
- Fetch that archive on a machine that reaches the releases.
- Press Install from a file, beside Try again, and choose the archive.
- The engine checks it against the pinned sha256 before it unpacks anything, installs it, and the page says the version. A file the engine refuses says why, and both buttons stay.
Anyone else reads “Ask an admin to install dcm2niix.” The same at the machine is nils tools install dcm2niix --from FILE. Install from a file needs engine 1.0.0-beta.1 or later.
Keeping it running
The runtime, what keeps the parts running, and the install’s directory. Restart it restarts the part chosen and Restart everything restarts every part, in order: Postgres, the engine, the desk, Kvasir, then the assistant. Where the install runs no services, the page says so, and gives the setup command that makes them. At the machine, an install of user services restarts the same way:
systemctl --user restart nils-engine nils-desk
While a model is still warming, a banner says so; the rest of the desk works, and only the assistant waits.
Language models
Kvasir holds the models the assistant reaches. The page shows where each station goes and the models to a person who may see Kvasir, and work on Kvasir changes them. It needs Kvasir 1.0.0-alpha.4 or later, and 1.0.0-alpha.5 or later to start a downloaded model.
Where each station goes leads the page. Each station of the assistant has a purpose, and each purpose goes to a model. A station is a line: its name and what it carries (the catalogue, rows or identifiers), the model it goes to and where that model runs, and whether its prompts stay in your systems or leave them.
- With work on Kvasir, press the model on a line to move the station, to another model or to ChatGPT. A station moves at once, recorded with who moved it.
- Rows of the registry go to a provider or to ChatGPT only after someone writes down why, for that one purpose. Identifiers never leave.
- A station nobody moved stays in your systems, so a provider answers only the stations moved to it. Once a provider is added, the page names the stations it does not answer yet, each with its Change.
The models follow as cards: each model Kvasir serves, with where it runs, whether it is serving and its admission; the models downloaded to this machine with their downloads; and your own ChatGPT subscription.
Add a model
Press Add a model and choose:
| Choice | For | What it is |
|---|---|---|
| Download it to this machine | work on Kvasir | a model from the Hugging Face Hub, which Kvasir starts here where it can |
| A model server of yours | work on Kvasir | SGLang, vLLM or Ollama, on this machine or another of yours |
| A provider | work on Kvasir | a company that serves models, with your key |
| Your own ChatGPT subscription | the assistant and see on Kvasir | your ChatGPT plan, for your own conversations |
- A server or a provider. Say where the model is, give its address and, where it takes one, its key. Pick the model from the list the server gives, or type its name. Where the server lists eight models or fewer, all are ticked; where it lists more, none is. Tick all and Untick all turn them at once.
- Press Test. It sends the model one short request through Kvasir and says what happened: it answered, nothing answered at that address, the key was refused, there is no model by that name, or the provider refuses for now.
- Press Add. It is offered only after a test that answered for exactly what the dialog shows. The key is sealed in Kvasir and never shown again.
A model in your systems is then checked with Kvasir’s admission suite (tool calls, its chat template, enforced schemas, context overflow and stream integrity) before the assistant uses it, which takes a few minutes. Its card says whether it is admitted, being checked, or refused and which checks it failed. Check runs the suite again; Remove says first what goes with the model and where the stations it answered go instead.
ChatGPT. A station moved to ChatGPT answers each person with their own ChatGPT subscription, which serves only that person’s conversations. A person who may use the assistant and see Kvasir presses Add a model: the desk shows a code and a link, and follows the sign-in until it is approved. Its card then chooses the model it answers with, or signs out. A subscription answers only while its person may still use the assistant and see Kvasir; otherwise the station answers with the default model in your systems. Where nobody signs in, the install has one subscription, and every conversation uses it.
Local models. With work on Kvasir, Download it to this machine downloads a model’s files from the Hugging Face Hub: name the model, look it up to see its files and their sizes, and download it. A download carries on where it stopped, and each file is checked against the sha256 the hub lists. On an install the wizard made, a finished GGUF model has Start: Kvasir loads it into llama.cpp on this machine, warms it and checks it, and the assistant uses it once it is admitted. Stop unloads it. One model runs at a time, and starting another says first which one it stops. A model that cannot start here shows the command SGLang, vLLM, llama.cpp or Ollama serves it with: start a model server with that command, then add it. A gated or private model needs a Hugging Face token, set on the line under the cards and never shown.
Teaching
Teaching turns what people corrected into a model the assistant can use. It shows where the assistant answers, to a person with work on the assistant’s settings, on four screens of one list and one action each.
- Corrections: the proposals people rejected, and the review decisions that overturned a station or the pack. Choose some and press Make a set. It needs work on Review.
- Sets: press Fine-tune on a set and give a LoRA recipe: the base model, from Kvasir’s models, the steps, the rank and the learning rate. A recipe the assistant would refuse is refused in words.
- Jobs: every fine-tune job, read again every few seconds while one runs.
- Models: each candidate with its admission and its bench side by side, and its one next step: Admit, Bench, Promote once both are green, or Roll back for the promoted one. These steps need work on Kvasir.
Promote and Roll back say what they change before they are done. Rolling back retires the promoted model, and its backend goes back to the model it is configured with; the model the promoted one replaced stays retired. A button a person may not press says which grant it needs. Roll back, and Jobs listing every job, need assistant 1.0.0-alpha.30 or later; an older one lists only your own jobs.
People and groups
The People page starts with how people sign in and where the desk answers. Where nobody signs in, that is all there is.
Change how people sign in
- On People, or on Setup, press Change how people sign in. It is offered to a person with work on the install, where the supervisor makes the step.
- Choose A password the desk keeps, or Your identity provider.
- For passwords, where the desk keeps nobody with a password yet, give the First person and a Password of at least eight characters. That person may do everything.
- For a provider the desk is registered at already, give its issuer, the desk’s client id and secret, and the claim its entitlements arrive in (
roles). - Press Change it. Every part starts again, and the page loads again signed out, for you to sign in the new way.
A change of how people sign in signs everyone out once. Where the desk answers, turning sign-in off, and registering the desk at an Authentik are changed at the machine with nils setup, which restarts the desk and the engine.
- Groups are cards, each with how many people are in it, the pages it gives, what its people see in records and, under a provider, the provider’s groups it follows.
- People are listed with their groups, what those add up to, and when each last signed in. A page given to a person alone is drawn dashed. Under a provider, the people listed are those who have signed in.
Add a person or a group
- Press Add a person (where the desk keeps the people) or Make a group. A person gets a username, a name shown and a password.
- Choose the groups first. Then each page has a line, set to Hidden, See or Work (Hidden or Use for the assistant, Hidden or See for Audit), and each line names the group that gives it.
- Last, choose what they see in records: without identifying details, with identifying details, or everything.
- Press Save.
A level a group gives cannot go lower for one person: take them out of the group instead. Setting every page, or everything, at once does not make an admin: People at work does, and the form says so. A person who holds work on People is an admin, who holds every grant and every detail; the form shows nothing to choose for them.
Change a person
- Change opens the same form for a person or a group.
- Reset the password (where the desk keeps the people): type a new one twice. It signs the person out everywhere.
- Remove the person: their groups, own grants and sessions go, and what they kept (results and lineage) goes to a person you choose or stays under their name. Under a provider the desk forgets them, and a later sign-in at the provider holds only what a followed group gives. Neither is offered on your own row.
- To change your own password, open your profile and press Change your password. It needs the one you have and signs out your other sessions.
The desk always keeps at least one person who may change people and groups, and refuses a change that would leave none. Groups and grants says what each page and each level opens.
Choosing a folder
Wherever a folder is asked for, a person with work on the install whose desk reaches the supervisor can open the machine’s folders under the field instead of typing the path. They start from the places already declared, where the install keeps its files, the machine’s root, the supervisor’s home, every disk mounted, and every disk /etc/fstab names that is not mounted. A click opens a folder, and each folder inside says the disk mounted there, no access, or a disk that should be mounted there and is not. A folder that takes more than five seconds to answer says so rather than holding the page.
DICOM to bring in is chosen from the engine’s own locations instead, which needs work on Data rather than work on the install; see Add a dataset.
Places
A place is a folder NILS reads or keeps data in, with a role: source, registry, working, export, share, exchange or backup.
- Press Add a place, choose its role and its folder, and say what you know of its storage (snapshots, protected, fast).
- A source is a root folder: choosing the source role leads to Add a root folder, whose folders become datasets on Data.
- An opened place moves to another folder, has its guarantees changed, or is retired. A source moved where a service keeps the engine running starts the engine again to read the new folder.
- Measure again measures every place again. Explore the sources again reads each source’s structure again and adds nothing; new folders under a root show on Data.
Nothing is written under a source. A release goes only to an export place. The registry needs a backup place on other storage.
Backups
- Open Backups. The page shows where the registry lives, the engine’s backup folder, and its archives with each one’s last check.
- Press Back up now, or set the schedule (every day or week, at what time, and how many to keep) and press Save the schedule. Both need work on Backups. Engine side: backups.
- Rehearse a restore checks the newest archive and opens every store in it, without applying it.
Back up now and Rehearse a restore are jobs of the engine and need no supervisor; their commands are printed only where the engine queues no jobs. Where the engine has no backup folder, Give the engine a folder chooses one, and Another folder, beside the one it has, moves it. The engine alone starts again. Both are steps the supervisor makes.
Keys
The key store is in no backup. The Keys panel lists every key by name with its length and fingerprint, never a byte of it, marks the one the pseudonyms come from, and says when that key is missing. Keep each passphrase where you keep passwords.
- Press Make a key, or Make the pseudonym key where it is missing, as after a restore; its name is filled in.
- Type the passphrase. The field is cleared the moment the call is sent, and the passphrase is kept nowhere but in the key store.
- Press Make it. The pseudonym key is first tried on the identifiers the registry keeps, and a wrong passphrase is refused in the engine’s words.
Remove takes away a key that is not in use, with its name typed. Making and removing a key is an admin’s. With an engine before 1.0.0-alpha.88, the panel prints nils key add NAME instead.
Restore an archive
- Under Restore an archive, choose the archive and press Put it back.
- Read the dialog. The registry as it stands is archived first, beside it, and the engine stops until it is done. The key store is in no archive and stays as it is.
- Press Put it back. The supervisor stops the engine, puts the archive back, starts the engine again, and the page says so.
It is a step the supervisor makes. Where it is not a button, the steps are printed to run at the machine, with the engine stopped:
systemctl --user stop nils-engine
nils restore ARCHIVE --yes
systemctl --user start nils-engine
Either way the archive is verified first, and the registry as it stands is archived beside it before anything is replaced.
The calendar and blind reads
Backups also holds the share of review questions answered blind first (one in five unless the site says otherwise) and the registry’s calendar: the timezone and the day a week starts, which every answer’s dates use, never the browser’s.
Uninstall NILS
At the foot of Setup, a person with work on the install removes NILS from this machine, where a supervisor keeps the install.
- Press Uninstall NILS.
- Choose NILS, keeping the data: the services, the programs and the packs go, and the registry, its key, the backups and the choices made stay for the next setup. Or choose Everything, the install’s directory with them.
- Open What goes and what stays to read the plan, as
nils uninstall --printsays it. - Type the install directory’s name, and press Uninstall.
Warning: removing everything cannot be undone. Without the registry’s key, the same subject can never be given the same code again.
The supervisor checks the name again, records who asked, and goes on after the desk is gone. Removing it says what each way removes.
Updated 17 October 2026