omp packages

omp-claude-tui0.1.0

Claude Code-style transcript, fullscreen scroll mode and in-app copy for omp (oh-my-pi)

jack.zz Published 3 hours ago MIT ~0 downloads/mo

Built for omp

The author tagged this package omp-plugin.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

omp-claude-tui

Claude Code-style transcript for omp: ● Tool(arg) cards with a ⎿ result gutter, a fullscreen scroll mode with omp's own input docked at the bottom, and in-app drag-to-copy.

Compatibility: tested on omp 18.16.0 only. omp has no public API for this, so the plugin hooks omp internals (see How it works / risk). On another omp version a feature may stop working; it then falls back to omp's own look instead of crashing, and /cc-tui status shows what is unavailable.

● Bash(seq 1 10)
  ⎿  1
     2
     3
     4
     … +6 lines (ctrl+o to expand)

● Update(notes.txt)
  ⎿  Updated notes.txt with 1 addition and 1 removal
     1   alpha
     2 - beta
     2 + BETA
     3   gamma

Install

omp plugin install omp-claude-tui
# or straight from GitHub:
omp plugin install github:Jack-01041202/omp-claude-tui

Restart omp afterwards; already-open sessions keep their look. Then optionally:

/cc-tui fullscreen on    # start every session in fullscreen scroll mode

Update with omp plugin upgrade omp-claude-tui, remove with omp plugin uninstall omp-claude-tui.

For development, link a checkout instead: omp plugin link ~/omp-claude-tui.

What it changes

Surface Result
bash ● Bash(cmd), output under ⎿, omp's exit/wall-time notices removed, Exit code N on failure
write Wrote N lines to path plus numbered preview
edit, apply_patch Updated path with N additions and M removals plus diff
grep, glob, find Search(...) / Find(...) with Found N …; listing on Ctrl+O
todo Update Todos checklist (☐ / ☒)
read (URL reads only) Read N lines
Working row <current intent>… (12s)
Composer omp's built-in claude shape, only when composer.shape is not configured
Input position pinned to the bottom row even while the transcript is shorter than the screen (blank rows padded on top)

Bullet: dim while pending, blinking while running, green on success, red on failure.

Not changed: plain file reads (omp draws them in its own grouped read card), task (live subagent cards use the tool's own renderer), MCP and other tools, the footer (setFooter is a no-op in omp's interactive mode), and Tern's native view.

Scroll mode

omp renders the main session inline, so scrolling the terminal back moves the input away with everything else. Press PgUp (or run /cc-tui scroll) to open a fullscreen view: the session transcript scrolls on top, and omp's own input editor stays docked at the bottom — the same editor instance, so slash and agent command completion, @ files, history, the status line and Enter behave as in the normal view.

Key Action
Mouse wheel, PgUp / PgDn scroll the transcript (scrolling to the bottom resumes following new output)
Drag select text in the transcript; copies to the clipboard on release
Double-click / triple-click select and copy a word / a line
Ctrl+O expand tool output in the transcript
Esc close an open completion menu, otherwise return to the normal view
any other key goes to the input editor (and clears the selection)

Copying uses pbcopy on macOS and OSC 52 elsewhere; the key hint row briefly shows Copied N characters. Selection covers the transcript rows on screen (no auto-scroll while dragging); scrolling clears it. Holding Shift still gives the terminal's native selection.

When omp opens a dialog (approval, ask, a selector), scroll mode closes and the dialog appears in the normal view.

Default fullscreen

/cc-tui fullscreen on makes scroll mode the default, saved across launches: every session (startup, /new, resume, fork) opens in it, and after a dialog is answered the view comes back on its own. Esc switches to the normal view until the next session starts; PgUp returns. /cc-tui fullscreen off restores the normal view as default and closes the view.

Limits: new text appears once each message is saved to the session file, not token by token; needs a saved session (not --no-session). PgUp no longer pages a multi-line draft in the normal editor.

Command

/cc-tui status        current state
/cc-tui scroll        open scroll mode (same as PgUp)
/cc-tui fullscreen on|off  make scroll mode the default for every session (default off)
/cc-tui on | off      toggle (applies to new and repainted cards)
/cc-tui lines <n>     rows shown under ⎿ while collapsed (default 4)
/cc-tui pin on|off    pin the input to the bottom row (default on)

Settings persist in ~/.omp/agent/omp-claude-tui.json.

How it works / risk

omp exposes no public API for restyling built-in tool cards. The plugin wraps entries of omp's internal renderer registry (toolRenderers from @oh-my-pi/pi-tui/tools). This is display-only: tool definitions the model sees, approval and execution are untouched. Each wrapped hook falls back to omp's original renderer when it throws or the plugin is off. An omp upgrade that changes the registry or the args/details shapes can revert cards to omp's look; if the registry is missing, the plugin warns at session start and stays inert.

The bottom pin wraps omp's internal Composer.prototype.renderFrame (from @oh-my-pi/pi-tui/prompt/composer) and pads short frames with blank rows on top. If that module is missing, /cc-tui status reports pin input unavailable. With tui.mouse on, clicks on live subagent rows can land a few rows off while the frame is padded, since omp hit-tests against the unpadded frame.

Scroll mode mounts omp's internal fullscreen transcript viewer (@oh-my-pi/pi-tui/overlays/agent-transcript-viewer, the one Agent Hub uses) read-only on the main session file, parsed with @oh-my-pi/pi-coding-agent/modes/agent-hub-runtime, and docks the live editor taken from omp's composer (recorded by the renderFrame wrapper). While open it wraps tui.setFocus to leave the view when focus moves to a dialog. If a module is missing, /cc-tui status reports scroll mode unavailable. Native fullscreen support is tracked upstream in can1357/oh-my-pi#10232.