Skip to content

Request: Graphical User Interface (desktop + web) on top of oh-my-pi #5742

Description

@HarshalRathore

Feature Request: Graphical User Interface for oh-my-pi

The Ask

OMP is a terminal-driven agent harness — powerful, scriptable, hash-anchored. But the TUI is the only face it has. Unlike peers in the space (OpenCode, Codex CLI, Cursor), there is no graphical interface layer.

Request: a browser-based GUI (single codebase, renders as both a web app and a desktop app via Tauri/Electron) that wraps the OMP agent core. Think of it as omp daemon exposing a local API, with a nice React frontend consuming it.

Why

Product Interface Model
OpenCode Web UI (localhost:5173) + Desktop Runs opencode-go as a backend, frontend talks to it via API
Codex CLI Web UI (localhost:7172) + Terminal fallback Same pattern — local daemon + browser UI
Cursor Standalone desktop app Tightly integrated editor
OMP TUI only No graphical layer exists

The pattern is proven: a local agent daemon + a browser UI gives you both a desktop app (e.g. Electron/Tauri wrapping the web UI) and a web app (just open the browser) from one codebase.

Suggested Approach

  1. Daemon modeomp serve (or omp daemon) starts the agent runtime as an HTTP/WebSocket server on a local port, exposing a simple JSON API for: starting sessions, sending messages, streaming responses, managing files.
  2. Web UI — A standalone frontend (React, Svelte, or similar) consuming that API.
    • Desktop: wrap it in Tauri → native window, system tray, notifications
    • Web: serve the same build from the daemon, open http://localhost:<port>
  3. Share the TUI code where possible — the terminal emulator, markdown renderer, and keybindings from pi-tui could be repurposed for a browser-based terminal component.

Minimum Viable GUI

Not asking for a full IDE. The MVP could be:

  • Chat pane — message list with streaming, markdown rendering, syntax-highlighted code blocks, image display
  • Input area — multi-line editor with history, paste support, @-mentions for files
  • Session list — sidebar showing open/recent sessions, click to switch
  • File viewer — inline diff display, file tree
  • Settings panel — provider config, model selection, keybindings
  • System tray — background daemon, click to open

Nice-to-have GUI Details

  • Dark/light theme matching system preference
  • Split-pane view: code diff on one side, chat on the other
  • Drag-and-drop file attachment
  • Rich rendering of errors, diffs, and Mermaid diagrams (already done in TUI)
  • Desktop notifications (already done in TUI — pi-tui has desktop-notify.ts)

Existing Assets to Reuse

OMP already has most of the heavy lifting done in @oh-my-pi/* packages:

Package What it provides GUI reuse
pi-tui Markdown renderer, image display, keybindings, autocomplete, fuzzy search Port markdown/syntax rendering to web
pi-coding-agent Session management, tool execution, agent loop The core — expose via API
pi-mnemopi Long-term memory Settings/knowledge panel
omp-stats Analytics Usage dashboard

Prior Art Links

Why Now

OMP is already competitive on the agent side (subagents, LSP, AST edits, hooks, extensions). The missing piece is a graphical interface that lowers the barrier for less terminal-native users and gives a visual workspace for diff review, multi-file editing, and session management. A web-based GUI also enables remote usage (SSH-forward the port, use from a tablet).

Metadata

Metadata

Assignees

No one assigned

    Labels

    cliCLI commands and argumentsenhancementNew feature or requesttriagedtuiTerminal UI rendering and displayuxUser experience improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions