Day to day
The install is done and an agent answers. This is what the rest of the week looks like.
Two interfaces, and they are for different things
The dashboard is for anything an agent owns — its personality, its model, its skills, who may
talk to it, what it has scheduled. It is a browser tab at http://127.0.0.1:18254/dashboard/.
The CLI is for the daemon — is it up, what is queued, what is in the audit log, restart this gateway. It works over SSH and against a remote daemon.
Neither is a lesser copy of the other. The setup wizard and nouride setup drive the same code;
the skills page and nouride skills write the same file.
Neither of them is how an agent works. An agent acts through tools — each one typed, individually
gated, and audited by name. It does not shell out to nouride, and the design makes that
unattractive on purpose: the control API needs a token, and handing an agent that token would collapse
every per-tool approval into a single approved exec.
The things you will do
| Where | Page | |
|---|---|---|
| Talk to an agent | any chat app, the dashboard, or nouride chat | Talking to an agent |
| Answer “may I run this?” | the chat it asked in, or the dashboard | Approvals |
| Change how an agent behaves | dashboard → Agents → Files | Persona packs |
| Switch models | dashboard → Agents → Model | Provider profiles |
| Decide what it keeps learning | dashboard → Skills | Skills & learning |
| Let someone in, or keep them out | dashboard → Agents → Access | Who may talk to it |
| Make something happen at 9am | dashboard → Schedule, or nouride cron | Scheduled work |
| Check on it | nouride status, nouride doctor | doctor |
| Back it up, upgrade it | tar over one directory | Maintenance |
The one directory
One install is one directory. This is the single most useful thing to know about operating it.
/srv/nouride/ (Linux) ~/nouride/ (macOS) ./nouride/ (Docker volume)├── nouride the binary├── dashboard/ the web UI it serves├── skills/ skills that ship with the daemon├── wa-bridge/ the WhatsApp bridge, its own executable├── .env credentials and per-host values (0600)└── .nouride/ ├── config.toml everything structural ├── data/ SQLite, secrets, attachments, backups ├── agents/ personas and agent packs │ └── skills/ the skill pool — every agent draws from it └── workspace/ what the agents produceBack up .nouride/. Everything else is a download.
Five commands worth memorising
nouride status # agents, gateways, queue — one screennouride doctor # diagnose a setup that is not workingnouride logs -f # live log; works with no journal, and against a remote daemonnouride chat # talk to an agent from the terminal, no bot tokennouride approvals # what an agent is waiting on you forThey find their own install, so they work from any directory on the install’s machine — see the note about working directories in troubleshooting if one of them reports no daemon while one is running.
Driving a remote daemon
Every command except start talks to a running daemon over the control API. Point it somewhere else
with two environment variables and the whole CLI works against that box:
export NOURIDE_URL=https://nouride.example.comexport NOURIDE_TOKEN=<the contents of its data/.control-token>nouride statusWhat runs without you
Some things happen whether or not anyone is watching, and it is worth knowing which:
- Scheduled jobs. A cron turn that needs an approval is auto-approved by default and the decision is recorded in the audit log against the job — because a 3am job that stops at a prompt nobody will see has not run at all. The hardline classes still ask, and still fail closed.
- Reconnects. A gateway that drops backs off and retries. One that gives up entirely raises an alert, if you configured somewhere for alerts to go.
- Retention sweeps. Old audit rows, old job runs and old attachments age out on the schedule in
[retention]. - Persona backups. Dated copies of the agent packs, under
data/backups/agents/. Kilobytes of Markdown, and the only thing in the install that cannot be rebuilt. - Nothing else. An agent does not act unless a message, a job or a webhook wakes it.