OpenCAS Manager is the native Qt operator surface for OpenCAS. It is a C++/Qt6 desktop application for configuring, observing, and communicating with a running OpenCAS runtime without turning the runtime into a webview.
The manager follows a Windows 3.1 Program Manager interaction model while retaining the current OpenCAS visual theme: manually placed program-group icons, nested program-group windows, close/tile/cascade window commands, and focused program windows for chat, voice, expression, health, usage, schedule, memory, Body Double desktop context, endpoint exploration, and related runtime surfaces.
This repository is a public source snapshot of the Manager application. It does
not include private OpenCAS runtime state, local .opencas data, credentials,
logs, or personal machine paths. Runtime actions are performed through OpenCAS
HTTP APIs; when a runtime API is unavailable, the UI is expected to show that
state instead of pretending an operation succeeded.
- OpenCAS_runtime - the public OpenCAS runtime snapshot that this manager controls.
- OpenCAS_Documentation - public architecture, installation, API, and release documentation for OpenCAS.
- OpenLLMAuth - local AI gateway used by OpenCAS for provider routing and OpenAI-compatible model access.
- gabbee - adjacent Linux desktop voice and dictation tooling from the same local-first operator-tooling family.
- CMake 3.20 or newer
- C++17 compiler
- Qt 6 Widgets, Network, Multimedia, MultimediaWidgets, OpenGL, and OpenGLWidgets modules
- An OpenCAS runtime if you want live data and control actions
Linux package examples are in INSTALL.md.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j
ctest --test-dir build --output-on-failure./build/opencas-manager --base-url http://127.0.0.1:8080The base URL is persisted with QSettings, so the app remembers the target
OpenCAS server between launches.
Voice conversation wake-word mode defaults to Bulma. Change it in the Chat
window or set OPENCAS_MANAGER_WAKE_KEYWORD before launching. Set
OPENCAS_MANAGER_WAKE_KEYWORD_ENABLED=0 to start with wake gating disabled.
The Body Double program reads screenshots from the runtime API first. Local desktop-context screenshot fallback is opt-in:
OPENCAS_DESKTOP_CONTEXT_ROOT=/path/to/desktop_context ./build/opencas-managerDo not point that setting at private state you do not intend local users of this application to inspect.
EndpointManifest.*is the dashboard parity seed and endpoint catalog.WindowManager.*owns top-level floating windows and persists their geometry.ProgramManagerWindowimplements the desktop, program groups, manual icon placement, and window menu commands.ProgramTemplateWindowis the base class for new agent-created Manager programs that need a consistent runtime-program shell.ApiClient.*centralizes HTTP URL normalization and JSON requests.MemoryWindowand its visual widgets provide the native memory atlas, timeline, retrieval inspection, and higher-order memory visualizations.ChatWindowprovides native chat, microphone capture, voice transcription, TTS playback, wake-keyword conversation mode, and barge-in handling while keeping provider logic inside OpenCAS.EmotionFaceWindowrenders live somatic expression from/api/identity/somaticusing bundled expression assets.EndpointExplorerWindowis the raw endpoint workbench for API surfaces that do not yet justify a custom program.
See docs/DESIGN.md for the product and UI architecture rules.
This repository should contain source, tests, bundled non-secret assets, and public documentation only. Keep these out of commits:
- API keys, provider tokens, credentials, cookies, or private keys
.opencasruntime state, chat history, memory databases, screenshots, logs, or local operator workspaces- machine-local paths such as Android SDK locations
- generated build directories and Gradle caches
Security and secret-handling guidance is in SECURITY.md.