omp-claude-tui0.1.0
Claude Code-style transcript, fullscreen scroll mode and in-app copy for omp (oh-my-pi)
Built for omp
The author tagged this package omp-plugin.
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 statusshows 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.