Vivian

Sign in to continue

🏠 Dashboard

Overview of Vivian's brain and server pool.

🖥️
Servers Online
📊
Total Requests
💬
Conversations
🧠
Memories
💜 Current Emotional State
💭
Loading…
✨ Vivian's Identity
Loading…
🖥️ Server Pool
Loading…

💻 System Resources

Comprehensive overview of CPU, RAM, GPUs, and running processes.

Loading system information...

📨 Request Queue

Per-model queue breakdown. View, cancel, clear tickets and tune queue settings live.

Loading queue information...

🧊 3D & Media Jobs

The media service's job queue — 3D models and videos. Full history, per-job logs, push-to-front, delete.

Loading 3D job queue…

🧠 Smart Loader

Self-tuning model loader. Auto-detects GPU architecture, picks the optimal multi-GPU split, KV-cache compression, flash-attention, and the largest safe context window — then lets you chat with a live test bot. Loads GGUF and safetensors.

🎮 GPUs (live VRAM)
Probing…
📦 Load a Model
🤖 Auto-Tune Plan
Status— pick a model —
💬 Test Chatbot

📦 Model Quantizer

Paste a HuggingFace URL — it downloads the safetensors, converts to GGUF, and quantizes to 4-bit so the model fits in memory.

🤗 HuggingFace Model
📜 Jobs
Loading…
🧮 Context & Memory Planner

Exact KV cache cost computed from the model's own GGUF metadata (GQA-aware) against real free VRAM — how big a context you can actually afford.

Click Recompute to analyze the active model.

🧩 C++ Server Profiles

Pick how the primary model's context is carved up — total pool, slot count, unified vs per-slot KV, which GPUs — and how much of it the demo account vs everyone else may use. Applying a profile restarts vivian-cpp-server; if it fails to come up with the requested geometry it reverts automatically.

Live server
Loading…
GPUs (VRAM now)
Loading…
Demo account(s) — full-window allowance under the “Demo” profiles
Comma-separated usernames. Everyone else gets the profile's public allowance; requests over an allowance are refused with context_length_exceeded.
Profiles — pick one, then Apply & restart
Loading…

🎛️ Model Settings

Edit every setting of every model this server can load — context window, response limit, GPU placement, KV cache, batching and more. Saves are written to .env, so they apply on every load from now on.

Loading model settings…

📈 Model Activity

What the models are doing right now, what they have been doing, and a bench to test changes.

Loading live status…
Requests over time
source: request_logs
Latency (avg ms)
source: request_logs
Output tokens
source: queue_history
Throughput (tokens/sec)
source: queue_history
Per-model breakdown
Loading…
Activity history
Loading…
🧪 Test bench

Runs a real generation through /v1/chat/completions — the same path live traffic takes. Sliders below apply to this test only. Use “Save as global default” to change what every request gets when it does not specify its own value.

0 = deterministic · above ~1.2 degrades quickly

⚡ Model Engines

Switch between local llama-cpp-python GPU engine and Ollama server pool. Full runtime control — no restart needed.

🔀 Routing Mode

Loading…

🔧 Model Loader

Which loader serves the model. Apply switches the routing and restarts the model under the selected loader (unload here + preload where possible).

⚡ Local Llama Engine (llama-cpp-python)
Package
Model
GGUF path
File exists
Loaded in RAM
Context window
GPU layers
Multi-GPU split
Batch / µBatch
KV cache type
Flash attention
🗂️ GGUF Model Picker
🖥️ Ollama Server Pool
Total servers
Healthy
💬 Chat Engine (dedicated 9B, text chat)
Package
Model
GGUF path
File size
File exists
Loaded in VRAM
GPU pin
Context window
Batch (n / u)
KV cache
Flash attention
Status
Endpoints: POST /v1/chat · GET /v1/chat/status · POST /v1/chat/load
A small, fast local model for plain text chat, pinned to its own GPU. When busy or unloaded, /v1/chat automatically falls back to the Ollama manager so requests always complete.
🎛️ Model Control — Load / Kill / Clear
📋 Available Models
Loading…
ℹ️ How routing works:
Auto — the local GPU engine handles requests for its configured model; all other model names go to Ollama.
Llama Only — every chat request is sent to the local GPU engine regardless of model name. Best for speed.
Ollama Only — completely bypasses the local engine. Use this if the GGUF isn't ready or for multi-model use.

🖥️ Ollama Servers

Add and manage Ollama backend servers. Smart routing uses priority + health.

NameURLStatusConnectionsPriorityLatencyRequestsModelsActions
Loading…

☁️ Cloud Models

Register cloud AI models (DeepSeek, GLM, OpenAI, Ollama Cloud, custom). Models with :cloud suffix route to their cloud API.

Ollama NameProviderReal ModelBase URLPriorityMax ConnEnabledActions
Loading…

🧩 Applications — Install & Set Up

Every 3D, CAD, PCB, slicer, 2D and game-engine program Vivian can link into. Detects what is installed, installs what is not, places plug-ins where each app loads them (rules first, AI for anything else), and writes new plug-ins on request.

Detecting…
🧪 Generated plug-ins
AppPlug-inFamilySummaryFilesActions
None yet — click + New plug-in.
⚙ Jobs
WhenKindAppLabelStatus
No jobs yet.

🧠 Mind & Memory

Vivian's core identity, knowledge, and episodic memories.

CategoryKeyValueImportanceActions
Loading…

💜 Emotional History

Track how Vivian's emotional state has evolved over time.

💜 Current State
💭
📈 Intensity Timeline
EmotionIntensityValenceTriggerTime
Loading…

👥 Users

Manage API users and their keys.

UsernameDisplay NameRoleMemoryCreatedLast LoginActions
Loading…

⚙️ Settings

Configure Vivian's behaviour and personality.

Loading…

📰 News Feed

Latest aggregated news from 35+ RSS sources, refreshed every 15 minutes.

🧠 Live Learning

Hash-indexed RAG knowledge base. Index files, directories, code, and news to give Vivian grounded context during inference. No retraining needed.

📄
Chunks Indexed
📁
Files Indexed
🔍
Embed Model
💾
DB Size
⚙️ RAG Settings

🔑 Keyword Relevance Index (BM25 — primary retrieval; only injects relevant knowledge)
📥 Ingest Knowledge
📄 Index File
📂 Scan Directory
📝 Paste Text
🔍 Test Retrieval
⚙️ Indexing Jobs

No jobs yet.

📚 Indexed Documents

📋 Request Logs

Every incoming API call — what was sent, what came back, tokens used.

Time Method Path Status Duration User IP Model Tokens↑ Tokens↓ Total Request Response

⚠️ Server Errors

Last 100 unhandled exceptions and 500 errors. Click any row to expand the traceback.

Loading…

📦 Sessions

Manage AI sessions (code sessions and standard sessions).

IDUserTitleStatusOrg UUIDCreatedActions
Loading…

🔌 Bridge & Workers

Monitor bridge environments, work dispatch queues, and active workers.

IDUserBridge IDStatusMachineWorker TypeCreatedActions
Loading…

🔐 OAuth & Trusted Devices

Manage active OAuth access tokens and enrolled trusted devices.

UserClient IDScopesIssuedExpiresActions
Loading…

🖥️ Admin Terminal

A real shell on the server, over a pseudo-terminal — like an SSH session. cd, pipes, colours and interactive programs all work.

not connected offline

🖧 Remote Workers

Manage GPU/CPU nodes. Generate an enrollment key, copy the install script it produces, and run it on any Windows/Linux/macOS machine — it dials out over WebSocket and appears below with its detected hardware and services. From there you can deploy llama-server/Ollama on the node itself and route chat/model traffic to it.

Open full page ↗

💳 Purchases

All token purchase orders — approve CashApp payments or review PayPal IPN results.

User Tokens Amount Method Status Ref Date Actions
Loading…

🪙 Token Packages

Manage available token tiers that users can purchase.

Name Tokens Price (USD) Enabled Actions
Loading…

🔐 License Management

Manage license products and generate license keys for users.

Name Description One-Time Monthly Active Actions
Loading…

💬 Forum Manager

Manage categories, boards, threads, posts, and user moderation for forums.d0a.net

🗂️
Categories
📋
Boards
🧵
Threads
💬
Posts
👥
Forum Users
🚫
Banned Users
✦ Chat with Vivian

🔗 Embeddings

Embedding models available in your Ollama pool, and a live tester.

📡 Available Embedding Models
Loading…
🔖 Selected Model
⚡ Embedding Tester

👁️ Vision / Image Analysis

Use Ollama vision models (llava, minicpm-v, moondream…) to describe or query images.

📡 Available Vision Models
Loading…
🖼️ Image Analyzer

🧪 Qwen Test Bench

Exercise the primary chat model end-to-end — images, video frames, and thinking vs non-thinking — straight against the C++ model server on :5320, the same path live traffic takes. Every result echoes the exact sampling parameters that were sent.

Checking model server…

Reasoning mode

🏆 Model Benchmark

Run one fixed battery of graded tests against a model — maths, physics, executed programming, tool calling, reasoning, instruction following, knowledge and over-refusal — then compare its scores against every model benchmarked before it. Grading is deterministic (no LLM judge), so two runs of the same suite version are directly comparable.

Run a benchmark

Leaderboard

Best run per model · same suite version only

Loading…

Score by category

Run a benchmark to see the comparison.

Overall score over time

Two or more runs are needed to plot a trend.

Run history

Loading…

🧊 3D Studio

Talk to the local text-to-3D model (Hunyuan3D). Describe an object and get a downloadable 3D mesh, streamed live over a WebSocket that stays open for the whole generation.

Checking 3D service…
💬 Describe your model
Attach an image to build a 3D model from a picture — prompt optional.
🔭 Preview
Your generated model will appear here

🎬 Video Studio

Local text-to-video AI (zeroscope) on the reserve GPU. It shares the 3D service's job queue, so a clip waits its turn if a 3D model is mid-generation.

Checking video service…
💬 Describe your video
📺 Preview
Your generated video will appear here
Recent videos

🧵 Texture Studio

Generate seamless/tileable PBR textures (SD3.5) from a text command — with legible words baked in — or upload a texture and remix it (img2img). Textures can also be baked onto 3D models over in the 3D Studio.

Checking texture service…
🎨 Describe your texture
🖼 Textures
Your generated textures will appear here

🎨 Image Studio

Local text-to-image (SDXL, on the 3D service's GPU). Describe an image — or attach a reference picture to generate new images guided by it (img2img).

Checking image service…
💬 Describe your image
🖼 Images
Your generated images will appear here

📊 Site Analytics

Pageviews, unique visitors, top pages, and referrers across all sites.

📈 Daily Pageviews
🌐 Per-Site Traffic
📄 Top Pages
PathSiteHits
Loading…
🔗 Top Referrers
ReferrerHits
Loading…

🔍 SEO Manager

Manage meta titles, descriptions, keywords, and Open Graph settings per site and page.

SitePage KeyTitleDescriptionKeywordsRobotsActions
Loading…

📁 Files

Uploaded files and multipart uploads.

IDFilenamePurposeBytesStatusActions
Loading…

🤖 Assistants

OpenAI-compatible assistants and their threads.

IDNameModelActions
Loading…

🗃️ Vector Stores

Semantic search vector stores and their files.

IDNameFilesStatusActions
Loading…

📦 Batches

Batch API jobs for bulk processing.

IDEndpointStatusProgressActions
Loading…

🎛️ Fine-tuning Jobs

Model fine-tuning job history.

IDBase ModelFine-tuned ModelStatusActions
Loading…

📊 Evals

Model evaluation configurations and run history.

IDNameModelActions
Loading…

📖 Source Code Library

Browse and manage the indexed source code library.

Loading…
PathLangLinesSizeIndexedActions
Loading…

🎮 Xbox 360 / Xbox Live Library

Browse and manage the indexed Xbox source library.

Loading…
PathLangLinesSizeIndexedActions
Loading…

Code Library AI

Chat with an AI that has direct access to the source code library.

History

No history yet

Ask me anything about the source code. I'll search the library to find relevant functions, classes, and implementations.

Xbox Library AI

Chat with an AI that has direct access to the Xbox 360 / Xbox Live source library.

History

No history yet

Ask me anything about the Xbox 360 / Xbox Live source. I'll search the library and GitHub for relevant code.

🧠 RLM Engine

Recursive Language Models (arXiv:2512.24601) — the prompt is bound to a REPL variable instead of the context window, so the root model can process inputs far larger than its window by recursively querying sub-models over slices.

ROOT MODEL
SUB MODEL
MAX DEPTH
SUB-CALL BUDGET

Run an inference

Result

Run an inference to see the answer here.

REPL TRACE — the programs the root model wrote

Continual Harness

Durable agent state that survives compaction and sessions. The base system prompt is immutable.

Loading…

REFINE — learn durable state from a trajectory

🤖 CLI Agent Systems

The Vivian CLI's own coding-agent infrastructure — the external code-reference library, stuck-run cloud escalation, and its local "lessons learned" memory. Not the Source Code Library (a different, pre-existing system for browsing this project's own indexed structures).

📚 Code Reference Library — external corpus search (/v1/code_index/*)

CHUNKS
FILES
DESCRIPTIONS
DB SIZE
EMBED MODEL
No active indexing job.

Search the library

☁️ Cloud Escalation — stuck-run second opinion via deepseek-v4-pro:cloud

Gated by /rlm on in the CLI. When a run has been stuck (repeated failures or no forward progress) for the threshold below, straight through, it asks the cloud model once for a second opinion and folds the answer into the transcript. This is a per-CLI-process setting shown here for visibility — change it in .env as CLOUD_ESCALATION_MINUTES and restart the API to apply.

THRESHOLD
MODEL
deepseek-v4-pro:cloud
REACHABLE

🎓 Lessons Learned — the CLI's local mistake memory (~/.vivian/lessons.json)

Managed from inside the CLI — see note below

Every CLI session silently records a lesson when a tool call fails and a later call of the same tool succeeds — the pairing captures both the mistake and what fixed it, so future sessions are told about it before repeating it. This file lives on your own machine (~/.vivian/lessons.json), not on this server, so it isn't remotely browsable here the way the other two panels are. Manage it from inside the CLI: /lessons lists everything, /lessons <topic> searches, /lessons stats summarises by tool, and /lessons clear <id|all> removes entries.

⌨️ Code Agent IDE

The 35B RLM coding agent — one tool (a persistent Python REPL), an independent verifier, real diffs.

Qwen3.8 27BBB
Vivian Code — Agent IDE
EXPLORER
Loading…
welcome
Select a file in the Explorer, or give the agent a task below.

The agent reads files into REPL variables rather than into its context window,
so a 2 MB file costs whatever it chooses to print — not 2 MB of tokens.
AGENT
OUTPUT
VERIFY
idle
Describe a task and press Run. The agent explores, edits, runs the tests, then a separate verifier grades the diff.
⎇ agent /home/vivian/Vivian-api apply ready

🎮 Game Agent

Screen capture + synthetic input + the multi-agent harness from The PokéAgent Challenge. Capture and input need a display — check capabilities first.

Host capabilities

Click Probe.

Windows

Click Refresh.

Screenshot test

No frame captured.

Input test

Buttons are sent through the best available backend.

Agent session

🕹️ Game Boy — Agent Test Bench

no session

A Game Boy emulator running in this tab (gameboy.js, MIT). The browser streams frames to the API and polls for buttons, so the server-side agent plays a game rendered here. Load your own ROM — none are bundled.

Load a ROM to start
Vivian GAME BOY

ROM

No ROM loaded.

Agent bridge

FRAMES SENT
0
BUTTONS RECEIVED
0
LAST AGENT INPUT

Let the agent play

🕘 Queue History

Every request that has run through the queue, kept permanently. The live Queue page only shows the last few minutes before finished tickets are garbage-collected.

🛑 Emergency Stop

Stops every Vivian service and evicts all models from GPU memory. This includes the main API and this admin portal itself.

⚠ Read this before you click

  • There is no web way back. This portal will be stopped too, so the button cannot undo itself. Recovery needs SSH or console access.
  • To bring everything back: sudo /home/vivian/Vivian-api/scripts/emergency_start.sh
  • Services are stopped, not disabled — a reboot restores the whole stack automatically.
  • Left running on purpose so you can still get in: sshd, tailscale, rustdesk, VNC, webmin, cloudflared, the databases, and the ollama daemon (its models are evicted, freeing the VRAM).

Preview — safe, changes nothing

Runs the exact same script in dry-run mode and shows precisely what it would stop and unload. Nothing is touched. Do this first if you are unsure.

🔄 Emergency Restart

Stops everything, waits for GPU memory to be released, then starts everything back up in dependency order — the RPC node first, then the C++ chat server, then the rest. Use this when the stack is wedged and you want a clean slate.

  • This panel goes down and comes back on its own — it is started first on the way back up. Expect ~1–3 minutes of downtime.
  • Models are not preloaded; they load on demand, so the first request after a restart is slow.
  • The script survives its own stop phase (it detaches first), so it always reaches the start half.

Type RESTART EVERYTHING to arm. (Deliberately different from the stop phrase — the two must never be confused.)

Trigger the emergency stop

Type STOP EVERYTHING below to arm the button. This is deliberately awkward — it is the only thing standing between a stray click and the whole site going dark.

Confirm