Caroline is the owner's assistant and part of the system, not an app. Her service is never stopped for memory, keeps running while the device sleeps and may take the screen. She works through the system's own interfaces rather than by imitating a person in front of a screen. Her own repository has its own documentation; this page covers how she lives inside Beroun.
Two ways in
| Way | What |
|---|---|
| The first tile of the launcher | Her text chat: tabs, typing, voice input and playback one message at a time. MODE closes it |
| R2 | Her continuous voice dialogue over whatever is on the screen: her talking head on a transparent background while an invisible page runs the chat. Press R2 again to end it |
Both show the same Caroline: the conversations live in her backend. Settings has a Caroline row that opens her panel, and her start wizard is served by her backend.



How she runs
The shell runs her supervisor as the privileged service caroline-backend, once there is an account and a network, and watches it.
- Her workspace and data live on the device, her ports follow the instance, and her runtime sits outside her repository.
- No remote listener is opened.
- When the shell stops, her processes stop with it.
One account, one edition
Beroun answers through the owner's SquirrelWisdom account. Her repository builds an edition for it: third-party model sources, their sign-in, model choice and wizard step are cut out, and the runtime carries no external model client.
The overlay
Code that has to run inside her process is applied from outside when it starts, so her checkout stays exactly as released.
| Part | What |
|---|---|
| Service keys | Loaded from a local file, never kept in the OS repository |
ic_messaging | The Communicator's backend: store, accounts, and adapters for mail, WhatsApp, Telegram, Signal and Slack, mounted on her API |
| Message tools | messages_history, messages_search, messages_unread, messages_mark_read |
ic_apps | Tool groups for apps (app-<id>), the beroun_* system group, agents, hooks and a pool for page tools |
| Browser driver | Her browser tool drives the system's own Browser |
A tool for every call
The rule is simple: every API of the system has a tool for Caroline. The beroun_* group covers files, settings, the clock, network, power, sleep, services, notifications, MessageBox, sound, vibration, her updates, the external display and the store. A test walks every route under /api/ and fails if one has no tool and no explained exemption.
Apps ask her through POST /api/caroline/ask (permission caroline.ask); the answer goes back to that app only. Adding or editing an account needs the owner's passwords, so Settings gives her tools to list and remove accounts and to open the accounts page, and she opens the page for the owner to fill in.
Updates that undo themselves
The rule: inactive, she updates herself. In use, the owner is asked quietly. A ready update installs at the first inactive moment.
- Her backend checks the signed release list every 30 minutes (and shortly after start), downloads the platform's artifact, and verifies signature, sha256 and size.
- The shell's updater stops her, applies the overlay (owned paths only, directory swaps with rollback) and restarts her.
- The system's copy is read-only and never touched. Updates go to a writable copy that runs only when its version is newer; a newer system image removes it.
- The way back: an updated tree is on probation. It must answer on her port within 150 seconds and her supervisor must not die twice in a minute. Otherwise the previous copy is put back, and that version is marked failed and not tried again.
- A release that needs a higher runtime waits until the platform itself is updated.
- Tools:
beroun_update_status,beroun_update_check,beroun_update_now(only on the owner's yes).
Resource figures
| Item | Figure |
|---|---|
| Runtime on disk | About 470 MB |
| Backend, idle or in a turn | 293–314 MB (about 350 MB with her supervisor) |
| Chat layer in the web view | About 530 MB with one tab, about 5 MB more per extra tab |
| Talking head | 42–68 MB while on screen |
