Where a command goes, and when you are asked
In BigOne the intelligence runs in one process, in your own Windows session. The clients are only interfaces. This page follows a command through that process, and shows the layers and the ports it opens on your PC.
Rules first, then the model, and you before any change
Fast path
- The command is normalized: a leading "BigOne," and trailing punctuation are dropped, it is lowercased with Turkish rules, and the suffix after an apostrophe falls away ("Chrome'u" → chrome).
- The regular expressions in the skills' manifests are tried in order: built-in skills first, then lower priority values. Named groups become parameters.
- The skill's can_handle() method has the last word: does the folder exist, is the address valid, is the app installed.
- Commands typed without Turkish letters are recognized too ("indirilenleri ac").
LLM loop
- System prompt order: constitution (fixed rules) → persona → the user's extra rules → tool rules → the 3 memories closest in meaning, plus observation notes.
- Skills are given to the model as tools; the loop runs at most 8 rounds. If a provider fails, the next one takes over, even mid-loop: messages use provider-neutral types.
- On a tool call that changes something, the skill is first previewed with dry_run, an approval record is written and the loop stops there; the remaining tool calls do not run.
- After approval the target is recomputed. If it changed in the meantime, nothing runs (target_changed).
- If the model says it did something it didn't, that is caught: it is warned first; if it does it again you are told "nothing changed" and it goes into the audit log.
Each layer only uses the one below
The import direction between core packages is fixed by rule: the LLM package, for example, never imports the brain package. So when the model provider, speech recognition or storage changes, the layers above stay the same.
What runs on your PC, which ports it opens
By default the API listens on 127.0.0.1 only; it is not reachable from the network. The phone port opens only when you start pairing ("Add phone"), stays open while a phone is paired, and requires TLS and a device token. It closes 12 seconds after the last phone is removed.
| Address | What | When |
|---|---|---|
| 127.0.0.1:8765 | BigOne API · REST + WebSocket /v1/events | always, this PC only |
| 0.0.0.0:8766 | Phone port · TLS | from pairing on, while a phone is paired |
| 127.0.0.1:11434 | Ollama · local model | if Ollama is installed |
All of it in your own user folder
| Path | Contents |
|---|---|
| %LOCALAPPDATA%\Programs\BigOne | Program (no admin rights needed) |
| %LOCALAPPDATA%\BigOne\config.toml | Settings |
| %LOCALAPPDATA%\BigOne\data\bigone.db | One SQLite file: chat, memory, approvals, audit log, tasks |
| %LOCALAPPDATA%\BigOne\skills\ | Skills written by you and by BigOne (generated, versioned with git) |
| %LOCALAPPDATA%\BigOne\models\ | Voice models |
| %LOCALAPPDATA%\BigOne\data\tls\ | Self-signed certificate for the phone (EC P-256) |
| Windows Credential Manager | API keys, as BigOne/<provider>; never in files, logs or the database |
The BIGONE_HOME environment variable moves the root folder. Before opening the database, BigOne writes a probe file: if the write lands in an MSIX package's hidden copy, it refuses to start and says why.