Beyond the core dashboard, the Ryvos Web UI includes advanced features for power users who want deep visibility into the agent's behavior and memory.
Viking Memory Browser
When Viking is enabled, the Web UI provides a visual browser for the hierarchical memory:
viking://
├── 📁 resources/ (12 entries)
│ ├── 📄 api-documentation L0: "REST API docs for the main product..."
│ ├── 📄 postgres-migration L0: "Guide for PostgreSQL 14→15 migration..."
│ └── 📁 project-configs/ (5)
│ ├── 📄 docker-compose L0: "Docker Compose config for local dev..."
│ └── 📄 nginx-config L0: "Nginx reverse proxy configuration..."
├── 📁 user/ (3 entries)
│ ├── 📄 profile L0: "Senior engineer, Rust/Linux specialist..."
│ ├── 📄 preferences L0: "Concise responses, vim keybindings..."
│ └── 📄 entities L0: "Known people, services, and projects..."
└── 📁 agent/ (24 entries)
├── 📁 events/
├── 📁 cases/
├── 📁 patterns/
└── 📁 skills/
Tier Browsing
Click any entry to expand through tiers:
- L0 view — One-line summaries for quick scanning
- L1 view — 2,000-token overviews with key details
- L2 view — Full content with all details
Search
Search across all Viking memory with semantic queries:
Search: "how to handle auth token expiration"
Results:
1. agent/cases/auth-bug-fix (score: 0.92)
L1: "When JWT validation fails with 'token expired'..."
2. resources/api-documentation (score: 0.78)
L1: "Authentication uses bearer tokens with 1-hour expiry..."
Memory Management
From the browser, you can:
- View any memory at any tier
- Delete obsolete memories
- Edit memory content (admin role required)
- Export memory entries as JSON
Audit Trail Viewer
A searchable, filterable view of all actions the agent has taken.
Filters
| Filter | Options |
|---|---|
| Session | Select specific session or "all" |
| Time range | Last hour, today, this week, custom range |
| Event type | Tool execution, LLM interaction, security, guardian, cron |
| Tool | Filter by specific tool name |
| Outcome | Success, error, timeout |
| Severity | Info, warning, error |
Event Inspector
Click any event to see full details:
┌──────────────────────────────────────────────┐
│ Tool Execution: bash │
│ Session: a1b2c3d4 │
│ Time: 2026-03-15 14:32:07 (127ms) │
│ Tier: T3 (auto-approved) │
│ │
│ Input: │
│ ┌────────────────────────────────────────┐ │
│ │ { "command": "df -h" } │ │
│ └────────────────────────────────────────┘ │
│ │
│ Output: │
│ ┌────────────────────────────────────────┐ │
│ │ Filesystem Size Used Avail Use% │ │
│ │ /dev/sda1 200G 84G 116G 42% │ │
│ │ /dev/sda2 200G 134G 66G 67% │ │
│ └────────────────────────────────────────┘ │
│ │
│ Safety: No patterns matched. 0 lessons │
│ consulted. │
└──────────────────────────────────────────────┘
Timeline View
View events as a timeline for any session, showing the complete execution flow:
14:32:05 ─── RunStarted ─── "Check disk usage"
14:32:06 ─── LLM call ──── 1,240 input tokens → 156 output tokens ($0.004)
14:32:07 ─── ToolStart ─── bash: "df -h"
14:32:07 ─── ToolEnd ───── bash: success (127ms)
14:32:08 ─── LLM call ──── 1,890 input tokens → 312 output tokens ($0.006)
14:32:09 ─── RunComplete ── 2 turns, $0.010
Config Editor
Admin users can view and edit the configuration from the browser:
- Read-only view for operators and viewers (API keys are redacted)
- Edit mode for admins with syntax highlighting and validation
- Base-hash guards prevent concurrent edits — if the config was changed since you loaded it, the save is rejected
Editable Sections
| Section | Editable | Notes |
|---|---|---|
[model] | Yes | Provider, model_id (API key shown as ***) |
[agent] | Yes | max_turns, max_context_tokens, etc. |
[channels] | Yes | Enable/disable, DM policies (tokens shown as ***) |
[cron] | Yes | Add/remove/edit cron jobs |
[heartbeat] | Yes | Interval, active hours, channel |
[budget] | Yes | Limits and thresholds |
[mcp] | Yes | Add/remove MCP servers |
[gateway] | Read-only | Cannot change bind address while running |
Changes take effect after saving. Some changes (like adding a new channel) require a daemon restart.
Command Palette
Press Ctrl+K (or Cmd+K on macOS) to open the command palette:
┌─────────────────────────────────────┐
│ 🔍 Type a command or search... │
├─────────────────────────────────────┤
│ > New session │
│ > Switch session │
│ > View audit trail │
│ > Browse Viking memory │
│ > View tool health │
│ > Open settings │
│ > Toggle dark/light mode │
│ > Keyboard shortcuts │
└─────────────────────────────────────┘
The palette supports:
- Session management — Create, switch, and search sessions
- Navigation — Jump to any page or section
- Actions — Quick access to common operations
- Search — Search sessions, memory, and audit trail
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+K / Cmd+K | Open command palette |
Ctrl+N / Cmd+N | New session |
Ctrl+Enter | Send message in chat |
Escape | Close modals and palettes |
1-5 | Switch between dashboard tabs (when not in chat) |
Approval UI
When the agent requests approval for a tool call, the Web UI shows a browser dialog:
┌──────────────────────────────────────┐
│ 🔒 Approval Required │
│ │
│ Tool: bash │
│ Tier: T3 (High) │
│ │
│ Command: │
│ git push origin main --force │
│ │
│ Safety Notes: │
│ Matches dangerous pattern: │
│ "git push --force" │
│ │
│ Timeout: 52 seconds remaining │
│ │
│ [✅ Approve] [❌ Deny] │
└──────────────────────────────────────┘
The approval request appears in real time across all connected Web UI clients.
Responsive Design
The Web UI is responsive and works on:
- Desktop browsers (full layout with panels)
- Tablets (condensed layout)
- Mobile browsers (stacked layout, chat-focused)
The dark theme with indigo accents provides comfortable viewing in any environment.
Next Steps
- Dashboard — Core dashboard features
- Webhooks & Gateway — The API behind the Web UI
- Viking Memory — The memory system behind the browser