pi-treex0.5.0
Enhances pi's native /tree with sticky-left view and a detail pane
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
pi-treex
TreeX enhances pi's native session tree with sticky-left indentation and a bottom detail pane.
It patches the built-in /tree view.
WARNING
This extension patches the /tree internals and could break if pi updates in an incompatible way. I chose this approach rather than re-implementing (or copying) the internal tree rendering so that it would automatically update the rendering.
Features
- sticky-left view that auto-shifts deep branches left to reclaim horizontal space
- bottom detail pane with more details for the selected row
- detail metadata shows context usage for the selected point when it can be inferred
- Adds a ◆ marker to the current point in the session tree, plus an ↑/↓ CURRENT hint in the detail pane when you're browsing away from it.
Screenshots
| Before | After |
|---|---|
![]() |
![]() |
| Pi keeps the selected row visible, but deep branch gutters still consume much of a narrow viewport. | TreeX removes shared phone-width indentation while preserving relative branches, native panning, and selected-message detail. |
Captured at 50 columns with a Rose Pine-inspired theme.
Detail View
The detail view shows the depth of the currently selected item, what type of item it is, how long ago it occurred, and context usage for that point in the conversation when it can be inferred. For a tool, it will display what the tool result was. For a user or assistant message, it will display as much of the message as it can. When the preview is truncated, it shows an inline Ctrl+R full hint; press Ctrl+R to expand the detail drawer into a scrollable full-detail view.
Context usage calculation mirrors pi's own footer behavior at the selected entry: after a trailing user message it may be estimated from the last assistant usage. After a context edit, it estimates the effective context instead of trusting stale usage. After compaction, usage remains unknown until a surviving assistant response supplies it.
Context edits appear in the native tree's “all” filter. Their details show the target entry and whether it was omitted from model context or replaced, including the replacement content. Original history remains unchanged.
Installation
npm
pi install npm:pi-treex
To try it for one run without adding it to your settings:
pi -e npm:pi-treex
git
pi install git:github.com/travisp/pi-treex
Usage
After installation, use:
/tree
Development
devbox run -- npm ci --ignore-scripts
devbox run check # lint + style check + tests
devbox run -- npm run format # format files
devbox run -- npm test # run the integration tests
Manual release checks
Repeat on both the npm Node CLI and the standalone Pi executable, loading this checkout with pi -ne -e ./treex.ts:
- Open
/treein a session containing user and assistant messages; verify the detail previews. - Press
Ctrl+Rto expand a long message, scroll, and collapse it. - Close the tree, run
/reload, and verify the tree and expanded details still work.
Notes
- Requires pi 0.87.1 or newer; integration tests target 0.87.1. Manual Node CLI and standalone Bun checks were last completed on 0.85.1.
- Native classes are imported through Pi's extension loader, so TreeX does not depend on the executable's filesystem layout.
- TreeX patches the native
/treepath, so built-in slash command and tree hotkey keep using pi's own navigation and summary flow. - TreeX relies on private interactive-mode internals, so upstream pi changes may require TreeX updates.

