Tool display
The pi-tool-display extension keeps tool calls compact by default, adds richer diff rendering for file edits, truncates verbose tool output, and improves core chat UI details such as thinking labels and the native user prompt box.
Bundled with Selesai
Loaded automatically with Selesai; no per-extension npm install is required.
Setup and prerequisites
- Bundled with Selesai and loaded automatically; no separate install is required.
- Requires an interactive TUI session; it has no effect in headless mode.
- A starter config template ships at
config/config.example.json; the runtime config is created on first use.
What it sets up
- Tool rendering — compact OpenCode-style output for
read,grep,find,ls,bash,edit, andwrite, with ASCII-boxed tool calls by default. - Diff visualization — richer rendering for file edits with configurable view and indicator modes.
- Output truncation — hidden/summary/preview modes per tool family with line limits.
- Native user message box and improved thinking labels.
- Registers the
/tool-displaycommand for live configuration and presets.
What you can configure
Tool display configures compact tool rendering, diff views, output truncation, and the native user message box from one config.json, with /tool-display presets.
Configuration locations and precedence
- Tool display config
~/.selesai/agent/extensions/pi-tool-display/config.json
Single user-level file written by /tool-display; no project layer.
Settings
| Key / path | Type, default, and values | Description |
|---|---|---|
readOutputMode | string Default: hidden | Read tool output mode: hidden, summary, or preview. |
searchOutputMode | string Default: hidden | Search tool output mode: hidden, count, or preview. |
bashOutputMode | string Default: opencode | Bash output mode: opencode, summary, or preview. |
previewLines | number Default: 8 | Lines shown in preview mode. |
boxedToolCalls | boolean Default: true | Draw an ASCII border around each tool call and its output. |
enableNativeUserMessageBox | boolean Default: true | Use the native user message box. |
Command, tool, and shortcut controls
| Key / path | Description |
|---|---|
/tool-display show | Show the effective config summary. |
/tool-display preset <opencode|balanced|verbose|boxed> | Apply a rendering preset. |
/tool-display reset | Reset to the default boxed preset. |
Source evidence
src/extensions/pi-tool-display/src/types.tssrc/extensions/pi-tool-display/config/config.example.json
Run /tool-display to show the effective config, apply a preset (opencode, balanced, verbose, boxed), or reset to the default. Advanced options live in config.json under the agent extensions directory.
What you can do
- Keep tool output compact with
/tool-display preset opencodeor the defaultboxedstyle. - Switch to
balancedfor summaries with line counts, orverbosefor larger previews. - Tune per-tool output modes, preview line counts, and diff rendering in
config.json.
Commands, tools, and shortcuts
/tool-display show— show the effective config summary./tool-display preset <opencode|balanced|verbose|boxed>— apply a rendering preset./tool-display reset— reset to the default boxed preset.
Limits and safety
- Only interactive TUI sessions render the tool display surfaces.
- The extension registers its tool renderers only when the tool is not already owned by another extension, so existing renderers are never discarded.
- Configuration is a single user-level file; there is no project layer.