Skip to content

The assistant

Valet can have an assistant. It’s optional, and the page works without one: see running with no AI.

You ask a question in the ask box. The assistant calls tools that read your services, and answers with the same cards the page uses. You pick the model. It can be a local one, so nothing has to leave your network.

The chat answering 'Is anything down?' with a services card and one sentence
The answer is a live card and a sentence. The numbers come from a tool, not from the model.

Some cars come with a valet key. It starts the engine, but it won’t open the trunk or the glovebox.

That’s the model here. The assistant reads freely, and changes nothing without your approval.

  • It never holds your keys. It calls tools, and Valet’s server makes the requests. Tool results go through the redactor before the model sees them.
  • Every tool has an access level. read looks. write adds something. control changes or removes something. You set what each integration allows in assistant.access.
  • Anything but read asks you first. Nothing runs until you press the button on the approval card. The model can’t press it.
  • Without sign-in, it can only look. If Valet has no sign-in and you haven’t said the network is trusted, the assistant gets read tools and nothing else, whatever assistant.access says.
  • Changes are written down. Anything that isn’t a read goes in the activity log, with who asked and whether it worked.

This is a guard, not a guarantee of good judgement. The model can still be wrong, and it can read you a wrong answer. The guard is about what it can do. What it can and can’t do says where the edges are.

config.yaml
assistant:
baseURL: http://ollama:11434/v1
model: qwen3:8b

That’s enough. access defaults to { default: read }, so this assistant can look at everything and change nothing. See models for other providers.

Besides each integration’s tools, the assistant has a few of its own:

ToolWhat it does
showPuts live widgets in the chat, side by side or stacked.
presentDraws a chart or table from numbers it already has. It makes a card and nothing else.
search_everythingOne search across everything searchable it may read. Offered when there are at least two such tools.
planSeveral changes in order, with one approval. Offered when Valet may act.
timelineWhat happened over a period: services going down, things finishing, changes made.
metric_chartA graph of any headline number Valet tracks.
activity_logWhat Valet itself changed recently.
watch_add, watch_list, watch_remove“Tell me when” reminders. A plain rule checks them, with no model.
year_in_reviewThe numbers from the year in review.

With assistant.access.config set, it can also help edit your config.

The system prompt tells it to call a tool rather than guess, and to name a cause only if a tool result shows one. That’s an instruction to a model, so treat it as a strong hint, not a rule. The rules that hold whatever the model does are the ones on this page.