Skip to content

Features

nornzach edited this page Aug 11, 2026 · 2 revisions

Features

Conversation Core

  • Streaming text — token-by-token rendering with full Markdown (GFM, syntax-highlighted code, KaTeX math, mermaid diagrams)
  • Thinking blocks — collapsible reasoning display, toggle visibility with ⌃T
  • Tool cards — 28+ dedicated renderers for bash, edit, read, grep, glob, task, debug, browser, computer, LSP, GitHub, and more
  • Steering — send a follow-up message mid-stream without aborting
  • Follow-up queue — queue messages to run after the current turn completes
  • Image attachments — paste or drag images into the composer
  • Interrupt mode — choose between "immediate" (abort on new input) or "wait" (queue)

Session Management

  • Session list — searchable sidebar with global and per-project history
  • Session tabs — up to 10 parallel tabs, each with its own sidecar
  • Branch & fork — branch from any message, fork to a new session
  • Session tree — visual fork graph showing session lineage
  • Handoff — transfer a session to a new window or teammate
  • Export — export session as HTML
  • Search — session picker accessible via sidebar and command palette (⌘K)

Parallel Sessions & Worktrees

  • Each tab can optionally run in its own git worktree
  • Worktrees are created at ~/.omp/wt/gui-<name>-<hash7> on branch omp/gui/<name>
  • Background tabs keep executing autonomously with status indicators
  • Ownership guards prevent two sidecars from attaching to the same session file
  • Closing a tab prompts to clean up the worktree

Model & Provider Management

  • Model picker — grouped by provider, shows auth status and context-window fit
  • Thinking levels — 7 levels, from "off" to "max"
  • Fast mode — quick toggle for lightweight tasks
  • Per-role models — assign different models to main agent, advisor, and subagents
  • Model comparison — side-by-side comparison of models
  • Provider config — add/edit/remove providers, OAuth login, API keys
  • Usage dashboard — requests, tokens, cost, cache-hit, speed, errors with time ranges and charts

Conversation Dock

Live execution state renders between the transcript and composer instead of in a separate drawer:

Card What it supports
Todo Phase progress, status cycling, inline editing, drag reorder, and read-only change snapshots preserved in the transcript
Plan Rendered steps or raw Markdown, approval, per-step feedback, refresh, and plan-mode controls
Agents Live roster, list/graph views, labeled tasks, status, and expandable subagent transcripts
Queue Inline queued-message bubbles plus a manager for reorder, remove, clear, and cross-lane moves between steering and follow-up

Cards self-gate when inactive, collapse independently, and share a scrollable dock capped at 45% of the window height so the transcript remains usable.

Workspace Drawer

The drawer is reserved for secondary workspace inspection:

Panel What it shows
Diff File diffs from agent edits
Files Workspace file tree
Logs Sidecar log output (tail)

Command Palette (⌘K)

Every omp slash command is available as a grouped, searchable menu:

  • Sub-menus, argument prompts, and toggles all run real RPC
  • Fully localized (English + Chinese)
  • Fuzzy search across all commands

Native Management Surfaces

  • Skills — inspect, enable/disable, preview instructions
  • MCP servers — add (stdio/http/sse), test connection, manage auth
  • Security Center — scan results, findings, dispositions
  • SSH hosts — manage host configs, test connections
  • Plugins & marketplaces — install, configure, update from community sources

Auto-Update

  • Checks for new GitHub Releases on launch
  • Per-version dismissal (won't nag about a version you skipped)
  • User-initiated download with live progress bar
  • Quit-and-install when ready

Crash Recovery

  • Renderer crashes auto-recover with rate limiting
  • Runtime errors logged to bounded JSONL at ~/Library/Application Support/@oh-my-pi/omp-gui/logs/gui-runtime.jsonl
  • Replacing app resources triggers clean relaunch (no white screen)

Proxy Support

The app resolves proxy settings in order:

  1. Explicit GUI preference (Settings → GUI → HTTP proxy)
  2. Inherited env vars (terminal launch)
  3. macOS system proxy (auto-detected via Chromium PAC resolution)

Clone this wiki locally