@vanillagreen/pi-tool-renderer2.0.10
Compact Claude/opencode-style renderers for Pi tools with rich diffs, apply_patch, generic/MCP rendering, and optional global chrome.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
@vanillagreen/pi-tool-renderer
Tool and message displays for Pi. It provides compact output, optional file diffs and a tool for grouped read operations.

Install
Requires Pi 0.99.0 or later for guarded batch execution.
- npm:
pi install npm:@vanillagreen/pi-tool-renderer. - kendex: add the declaration below to the project's
kendex.toml, or to~/.config/kendex/kendex.tomlfor user scope. Runkendex update-pi.
[pi-extensions."@vanillagreen/pi-tool-renderer"]
source = "kendex"
Restart Pi after installation. Use kendex update-pi --check to preview the installation.
Features
- Show compact tool rows with expandable output.
- Display file changes with side-by-side and word-level diffs.
- Group independent read operations into one result.
- Configure message layout and terminal symbols.
How it works
Pi runs a tool and gives its call and result to the display extension. The extension formats those values using your settings. It shows a compact preview that you can expand. Optional diff views show changed files, and grouped read calls share one result display.
Memory use
- User messages keep at most 256 weakly held Markdown layouts. Each keeps one width and at most 65,536 characters each of source text and rendered lines. Larger messages render without retention. The layouts do not keep message components alive and are cleared at session shutdown.
- Grouped tool calls are tracked only while
stackToolCallsis on. - At most 256 grouped calls are kept, in groups of at most 64; older groups are dropped. Each keeps at most 16,384 characters of its result for the preview: the start for read and search calls, the end for bash.
- A dropped call that Pi draws again (ctrl+o, a resize) is shown on its own and is not kept.
- Grouped calls and the list of tool displays to refresh are cleared when a session starts or ends. A tool display Pi no longer shows is not kept alive.
- With
pendingStatusAnimationon, a running tool row blinks until its result arrives, the agent run ends or the session ends. A row the agent run ended without a result does not blink again when Pi draws it again. The ids of those rows are kept until the session ends. - A write diff reads at most 700 KB of the old file and builds no diff for more than 700 KB of new content; past either limit the row says the diff was skipped. A write row keeps the old file's text only until the write finishes or the agent run ends.
- An edit's result diff comes from the patch Pi's edit tool returns, so the renderer reads no file for it. A patch over 700 KB is not shown, and the row says the diff was skipped.
Settings
The settings editor writes project values to .pi/settings.json. The default user file is ~/.pi/agent/settings.json. PI_CODING_AGENT_DIR changes the user directory. Package values are stored under kendex.extensionManager.config["@vanillagreen/pi-tool-renderer"].
Open /extensions:settings; settings appear under the Tool Renderer tab. Project settings in .pi/settings.json apply only after Pi marks the workspace trusted.
enabled: package toggle.glyphStyle,globalGlyphStyleOverride,treeStyle: Unicode or ASCII symbols. The global override forces one style across every kendex Pi extension and leaves tool, model and user content alone.registerBatchTool,batchMaxCalls,batchCallTimeoutMs: thetool_batchtool and its limits.readOutputMode,searchOutputMode,bashOutputMode,mcpOutputMode, and the*PreviewLinesandbashLiveOutputDelayMs,bashLiveTailLines,bashCollapsedLines,commandPreviewCharsbudgets: how much of each result shows collapsed and expanded.showReadImages: images inreadresults; needs Pi's ownterminal.showImagesoff.renderMutationTools,splitDiffs,diffPreviewLines,diffExpandedLines,mutationCallPreview,mutationCallPreviewLines,shikiDiffs,wordDiffHighlights,diffBackgrounds,showDiffHunkMeta: the edit and write diff view.renderBashDiffs,renderGitDiffCommandDiffs,applyPatchRenderer,applyPatchPreview,applyPatchPreviewLines,genericToolRenderers: diffs and views for tools other than edit and write.compactUserMessages,userMessageTrailingBlankLine,compactCompactionMessages,compactSkillMessages,alignAssistantMessages,styledCodeBlocks: message rendering.toolChrome,rightMarginGuard,pendingStatusAnimation,workingIndicator,maxLineWidth: borders and the hard cap on one rendered line.stackToolCalls,stackChildDisplay,hideStackChildRows: the stacking of consecutive native tool calls.
Maintainer notes are in DEVELOPMENT.md.