# assistant Two settings pages for desktop-assistant, the daemon behind the assistant canvas (`../../assistant/`). **Assistant** edits the daemon's `~/.config/desktop-assistant/config.toml` and switches its tools. The model fields (server, temperature, tool rounds, thinking) save on Enter, and an emptied field falls back to the daemon's default, shown as its placeholder; the defaults come from `assistant.py --defaults`, so they are never copied here. The system prompt has its own box, Save and "Use the default". The tool environment (`[env]`) is one row per key, with an add row below. A tool's switch renames `tools/.toml` to `.toml.off`, which the daemon's `*.toml` glob skips. The page also lists llama-server's models with their state. The daemon always answers with whichever model is loaded and never asks for one, so it never swaps a model out from under another client. Load is the deliberate swap: it asks the router to load that model now, polling `/v1/models` until it reports `loaded`, and leaves the preference alone. Prefer is the other, separate choice: the model the assistant should use, saved in `Prefs`. A first version made Load also set the preference, so a model loaded for another client became the assistant's too. Opening the assistant canvas (SUPER+Home) loads the preferred model when another one is resident, and the canvas header reads "loading …" until it is in. This desktop runs one model and one client at a time, so opening the assistant is when its model should come back; the daemon still never asks for a model itself. With no preferred model set, nothing is swapped. The daemon reads all of this only at startup, so after a change the page says so and offers Restart, which runs `assistant.sh restart`; a daemon that does not come back shows the script's status, whose log tail says why. The file is edited line by line (`Config.js`) so the comments the example ships with survive: an unset key sits commented out, setting it activates its line, and unsetting comments it back out. Every write first parses the whole new file with `tomllib`, then replaces the old one atomically, so an edit can never leave a config the daemon refuses to start with. **Ask presets** edits the canvas's canned questions for staged files: label, question, and the file kinds each is offered for. They live in `Prefs` and the canvas reads them live, so changes apply at once; "Reset to defaults" drops the saved list and brings back the built-in one in `../../assistant/Presets.js`. A new preset gets the fallback icon. Search finds the model fields, every `[env]` key, every tool and every preset by name. Check: `node desktop/modules/assistant/test_config.js`.