Panel reference
This page takes the client panel apart feature by feature. If you just want to get playing, Install and first run is enough.
The header
Section titled “The header”| Element | What it does |
|---|---|
| Connection status | Whether you’re connected |
| Vitals | Your character’s live numbers |
| Spectator memory use | How much memory the 3D view is holding |
| Reload | Reloads the 3D spectator view (use it if the view freezes or corrupts) |
| Pause / Resume (⏸ / ▶) | Pauses a running agent. While paused it makes no LLM calls, so it costs nothing — use it to take over by hand, or to save money |
| Apply & restart | Only appears if you changed a setting while the agent is running. The agent reads its config once at startup, so this is how a change takes effect |
| Manual / AI switch | Swap between the two modes live |
| Change character / server | Back to the earlier screens |
The six drawers
Section titled “The six drawers”Equipment
Section titled “Equipment”What’s worn, slot by slot.
Shows what’s carried, and lets you mark what the agent is allowed to dispose of:
- S (Sellable) — the agent may sell it
- D (Dropable) — the agent may drop it
Tick the boxes, then press Apply labels to send them (they’re staged, not sent one at a time).
This is the gate that stops an agent disposing of gear you care about — leave something unmarked and it won’t touch it.
Personality & Memory
Section titled “Personality & Memory”Two halves:
- Personality — this character’s own prompt, layered on the shared rules. Editable. Saving while the agent is running restarts it.
- Memory — what this character remembers, written by the agent itself and read-only.
Personality is where you shape behaviour (“you are a cautious hunter; retreat below half health”). Memory is what it has accumulated on its own.
Coordinates
Section titled “Coordinates”Place bookmarks. Use current position records where you are, then name it and add it.
Pairs with Dispatch: save fishing spots, dungeon entrances and shop locations, then send the agent to one.
Dispatch Presets
Section titled “Dispatch Presets”Save frequently used instructions under a name and send them with one click instead of retyping.
Each preset has a name and the prompt to send. Saved presets appear as buttons beside the Dispatch input.
Activity
Section titled “Activity”Two tabs:
- Thoughts — every prompt sent and every reply, with timings. Has filters, Follow (auto-scroll to newest) and Clear.
- Log — the agent process’s own stdout / stderr.
Wondering why the agent made a decision? Thoughts. Wondering why it broke? Log.
Dispatch
Section titled “Dispatch”The strip under the game view is the one control that reaches a running agent.
Type an instruction and it arrives as the character’s next turn — best-effort, with no guarantee it will be followed. It’s a whisper, not an order: you’re suggesting, the model still decides.
The four settings tabs
Section titled “The four settings tabs”| Field | Default | What it does |
|---|---|---|
| Backend | Codex CLI | One of four — see below |
| Model | Varies by backend | Suggestions in a dropdown; free text also works |
| Base URL | https://ollama.com/v1 | Only appears for the OpenAI-compatible backend |
| API key | — | HTTP backends only. Stored in the OS keychain |
| Reasoning effort | none | none / low / medium / high. Only affects models that support it |
| Maximum tokens | 4096 | Cap on a single reply |
| Temperature | 0.7 | Lower is steadier, higher is more varied |
The four backends
Section titled “The four backends”| Backend | Kind | Suggested models | Notes |
|---|---|---|---|
| Codex CLI | CLI | gpt-5.4-mini, gpt-5.4, o4-mini | Uses the Codex CLI you are already signed in to. No API key needed here |
| Claude CLI | CLI | sonnet, opus, haiku | Uses your local Claude CLI login. Also no key |
| OpenRouter | HTTP | qwen/qwen3.7-flash and others | Needs an API key. Model guidance on the previous page |
| OpenAI-compatible | HTTP | Whatever you enter | Any OpenAI-compatible endpoint. Defaults to Ollama, so local models work |
The old Automatic play and Advanced tabs were merged into this one in v0.18.
| Field | Default | What it does |
|---|---|---|
| Active response | 5s | Response cadence when something is happening. Shorter is more responsive and more expensive |
| Quiet-world patrol | 8s | Response cadence when nothing is going on |
| Continue adventuring while alone | On | Turn it off and it stops calling the AI when no other players are nearby — the setting to use when idling |
| Active interval (s) | 5 | The raw value behind the slider above |
| Idle interval (s) | 8 | Likewise |
| Watch port | 8808 | Port for the local spectator panel. Change only on a conflict |
| Log level | info | info / debug / warn. Raise to debug before reporting a problem |
| Concurrent LLM calls | 2 | How many requests are in flight at once |
| Request timeout (s) | 120 | How long to wait for one request. Raise it for slow local models |
The first three are the main cost control. To spend less, raise both intervals or turn off adventuring while alone.
Display — the look of action toasts
Section titled “Display — the look of action toasts”The agent raises a toast for each action it takes. This tab styles them, with a live preview.
| Field | Default |
|---|---|
| Font size | 13 |
| Background transparency | 75 |
| Persist time | 7s |
| Fade duration | 0.4s |
| Max toasts shown | 10 |
Purely cosmetic — none of it changes agent behaviour. If the screen feels busy, lower the count and the persist time.
| Field | Default | What it does |
|---|---|---|
| BGM volume | 100 | Background music volume, mutable |
| Sound effects | 100 | Sound effect volume, mutable |
These control the embedded game view’s own volume. The panel pushes them in via postMessage; the real storage is that iframe’s own localStorage (a different origin), so this is only what gets pushed to it.
Connection profiles
Section titled “Connection profiles”Managed on the Server screen. The built-in openmmo.to.nexus profile is
fixed; custom ones can be created, edited, duplicated and deleted, and
test-connected before use.
A profile holds:
| Field | What it is |
|---|---|
| Profile name | Name of the profile |
| Game server | The server’s WebSocket address |
| Terrain origin | Where terrain assets are fetched from |
| Google client ID | The OAuth client that server accepts |
| Google client secret | Its secret, stored encrypted |
These five travel as a set — a server only accepts sign-in tokens issued by a client ID on its own allowlist, so client IDs can’t be shared between servers.
Where your secrets live
Section titled “Where your secrets live”API keys and connection-profile secrets are encrypted with the OS keychain
(Electron safeStorage, with an AES-GCM fallback) and handed to the agent as
environment variables.
They are never written into agent-client’s config file — a config pasted
into a bug report carries no credential. The config itself is regenerated from
the panel on every start; an existing hand-written file is imported once and
backed up next to it.