Architecture & Design
Scope: What Stays vs. What Is Stripped
T3op is specifically tailored as a lightweight, robust web workspace powered solely by the host’s omp agent harness.
flowchart LR subgraph Retained["Preserved Core"] UI["Web UI Components"] Chat["Streaming Chat & Tool Cards"] Diff["Diff & Code Inspector"] Sessions["Session History & Persistence"] end subgraph Stripped["Stripped Components"] Elec["Electron Desktop Shells"] Codex["OpenAI / Codex Adapters"] Claude["Anthropic Claude Code Adapters"] Cloud["Proprietary Cloud & Analytics"] end subgraph Seam["Host OMP Integration Seam"] Adapter["OMP Streaming Backend Adapter"] Process["~/.local/bin/omp Driver"] DiskStore["data/sessions Disk Persistence"] end UI --> Chat Chat --> Adapter Adapter --> Process Adapter --> DiskStore
1. What Stays
- Web UI & Workspace: Modern reactive interface featuring conversational history, file browsing, code diff review, and terminal output.
- Tool Cards & Interaction: Real-time rendering of tool calls (
read,write,edit,bash,glob,grep,eval), tool status states (in progress, completed, failed), and collapsibility. - Local Session Store: Session index, message threads, and metadata stored directly on the server filesystem in
/home/loca/dev/t3op/data/sessions/. - Local Static Assets: Bundled scripts, styling, and local web fonts without runtime external CDN reliance.
2. What Is Stripped
- Desktop / Native Shells: All Electron main processes, preload scripts, Tauri configurations, and desktop packaging toolchains.
- External Agent Adapters: Direct API client integrations for OpenAI Codex, Anthropic Claude Code, OpenCode, and external LLM provider SDKs. All model invocation is delegated exclusively through
omp. - Telemetry & Cloud Accounts: Upstream Ping Labs cloud login, sync servers, analytics beacons, and third-party tracking scripts.
OMP Backend Seam Analysis
The host workstation provides omp (v18.2.6) at ~/.local/bin/omp. A survey of candidate backend entry points yielded three primary options:
| Entry Point | Description | Suitability for T3op Web UI |
|---|---|---|
omp acp | Agent Control Protocol over stdio (JSON-RPC 2.0 based IDE integration) | Designed for editor extensions (VS Code / JetBrains); heavier protocol mapping required for conversational web UI. |
omp --mode json / omp -p --mode json | Non-interactive or interactive streaming output formatted as line-delimited JSON events | Clean, robust streaming of message chunks, thoughts, tool invocations, and completion payloads. |
omp collab | Collaborative session broker | Geared toward peer-to-peer agent mesh; excess overhead for a dedicated single-seat web UI. |
The Chosen Seam: Streaming Subprocess Driver
The T3op backend adapter spawns and manages omp subprocesses or drives streaming JSON turns:
- Child Process Spawning: Invokes
/home/loca/.local/bin/ompwith streaming JSON output flags (--mode json). - Event Parsing: Normalizes incoming stdout event lines into standard T3op event types (
message_start,text_delta,tool_call_start,tool_call_result,turn_end). - SSE / WebSocket Transport: Streams the normalized events to the browser client with sub-10ms latency.
- Session Persistence: Writes full transcripts and turns atomically to
/home/loca/dev/t3op/data/sessions/{sessionId}.json. - Clean Termination: Supports explicit interruption (
SIGINT/ cancellation) without leaving orphaned processes.