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 PointDescriptionSuitability for T3op Web UI
omp acpAgent 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 jsonNon-interactive or interactive streaming output formatted as line-delimited JSON eventsClean, robust streaming of message chunks, thoughts, tool invocations, and completion payloads.
omp collabCollaborative session brokerGeared 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:

  1. Child Process Spawning: Invokes /home/loca/.local/bin/omp with streaming JSON output flags (--mode json).
  2. Event Parsing: Normalizes incoming stdout event lines into standard T3op event types (message_start, text_delta, tool_call_start, tool_call_result, turn_end).
  3. SSE / WebSocket Transport: Streams the normalized events to the browser client with sub-10ms latency.
  4. Session Persistence: Writes full transcripts and turns atomically to /home/loca/dev/t3op/data/sessions/{sessionId}.json.
  5. Clean Termination: Supports explicit interruption (SIGINT / cancellation) without leaving orphaned processes.