@herbertgao/pi-extensions 2026.9.19 → 2026.9.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -8
- package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +76 -59
- package/node_modules/@herbertgao/pi-cc-extensions/README.md +76 -59
- package/node_modules/@herbertgao/pi-cc-extensions/assets/readme/preview.webp +0 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/config.ts +93 -34
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/panel.ts +346 -117
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/agent-summary/core.ts +6 -36
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/agent-summary/index.ts +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/compact-thinking.ts +24 -29
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/context.ts +330 -360
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/reference/index.ts +56 -108
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/reference/session.ts +97 -15
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/reference/subagent.ts +80 -45
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/shell/flush-docked-bash.ts +36 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/shell/footer-layout.ts +229 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/shell/footer.ts +479 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/shell/startup-header.ts +92 -61
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/shell/working-message.ts +58 -38
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/index.ts +19 -3
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/compact-mode.ts +1080 -229
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/default-mode.ts +232 -259
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/index.ts +38 -48
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/markdown-enhance.ts +8 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/hover.ts +2 -7
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/interaction.ts +277 -113
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/layout.ts +15 -6
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/packets.ts +18 -72
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/scroll.ts +61 -26
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/ansi-utils.ts +25 -57
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-component.ts +125 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-edit-render.ts +227 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-header.ts +136 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-highlight.ts +115 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-inline.ts +324 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-layout.ts +762 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-limits.ts +152 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-palette.ts +410 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-parse.ts +535 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-presentation.ts +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-renderer.ts +21 -3219
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-text.ts +44 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/diff-write-render.ts +568 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/index.ts +19 -18
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/line-width-safety.ts +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/write-execution.ts +1 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/grouping.ts +142 -192
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/mcp-title.ts +39 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{message-display.ts → tool/message-display.ts} +24 -90
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/names.ts +426 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/result.ts +90 -132
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{show-more-hint.ts → tool/show-more-hint.ts} +10 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/transcript-refresh.ts +8 -26
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/ansi-color.ts +44 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/ansi-text.ts +76 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/component-tree.ts +34 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/format.ts +28 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/fullscreen-detect.ts +51 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/patch-keys.ts +124 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/sgr-mouse.ts +70 -0
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +7 -7
- package/package.json +3 -7
- package/node_modules/@herbertgao/pi-cc-extensions/assets/readme/hero.en.svg +0 -101
- package/node_modules/@herbertgao/pi-cc-extensions/assets/readme/hero.svg +0 -101
- package/node_modules/@herbertgao/pi-cc-extensions/assets/readme/welcome.webp +0 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/render-utils.ts +0 -5
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/types.ts +0 -30
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/write-display-utils.ts +0 -12
- package/node_modules/pi-footer/CHANGELOG.md +0 -145
- package/node_modules/pi-footer/LICENSE +0 -21
- package/node_modules/pi-footer/README.md +0 -354
- package/node_modules/pi-footer/package.json +0 -68
- package/node_modules/pi-footer/src/cache.ts +0 -106
- package/node_modules/pi-footer/src/colors.ts +0 -237
- package/node_modules/pi-footer/src/config.ts +0 -202
- package/node_modules/pi-footer/src/event-widgets.ts +0 -41
- package/node_modules/pi-footer/src/extension-statuses.ts +0 -102
- package/node_modules/pi-footer/src/git.ts +0 -135
- package/node_modules/pi-footer/src/index.ts +0 -268
- package/node_modules/pi-footer/src/metrics.ts +0 -141
- package/node_modules/pi-footer/src/presets.ts +0 -383
- package/node_modules/pi-footer/src/render.ts +0 -114
- package/node_modules/pi-footer/src/separators.ts +0 -52
- package/node_modules/pi-footer/src/types.ts +0 -122
- package/node_modules/pi-footer/src/ui/color-level-confirm.ts +0 -22
- package/node_modules/pi-footer/src/ui/color-options.ts +0 -195
- package/node_modules/pi-footer/src/ui/config-lifecycle.ts +0 -61
- package/node_modules/pi-footer/src/ui/edit-colors.ts +0 -13
- package/node_modules/pi-footer/src/ui/events.ts +0 -35
- package/node_modules/pi-footer/src/ui/extension-status-picker.ts +0 -60
- package/node_modules/pi-footer/src/ui/extension-statuses.ts +0 -73
- package/node_modules/pi-footer/src/ui/fields.ts +0 -252
- package/node_modules/pi-footer/src/ui/global-menu.ts +0 -126
- package/node_modules/pi-footer/src/ui/helpers.ts +0 -44
- package/node_modules/pi-footer/src/ui/layout.ts +0 -17
- package/node_modules/pi-footer/src/ui/line-list.ts +0 -19
- package/node_modules/pi-footer/src/ui/model.ts +0 -64
- package/node_modules/pi-footer/src/ui/navigation.ts +0 -29
- package/node_modules/pi-footer/src/ui/option-edit.ts +0 -93
- package/node_modules/pi-footer/src/ui/overlay-render.ts +0 -103
- package/node_modules/pi-footer/src/ui/screen-context.ts +0 -18
- package/node_modules/pi-footer/src/ui/screen-controller.ts +0 -27
- package/node_modules/pi-footer/src/ui/screen-render.ts +0 -32
- package/node_modules/pi-footer/src/ui/screen-state.ts +0 -20
- package/node_modules/pi-footer/src/ui/screen.ts +0 -243
- package/node_modules/pi-footer/src/ui/screens/add-widget.ts +0 -92
- package/node_modules/pi-footer/src/ui/screens/confirm-exit.ts +0 -52
- package/node_modules/pi-footer/src/ui/screens/controller.ts +0 -12
- package/node_modules/pi-footer/src/ui/screens/edit-colors.ts +0 -68
- package/node_modules/pi-footer/src/ui/screens/edit-widget.ts +0 -115
- package/node_modules/pi-footer/src/ui/screens/extension-status-row.ts +0 -61
- package/node_modules/pi-footer/src/ui/screens/global.ts +0 -75
- package/node_modules/pi-footer/src/ui/screens/line-list.ts +0 -108
- package/node_modules/pi-footer/src/ui/screens/main.ts +0 -99
- package/node_modules/pi-footer/src/ui/screens/terminal.ts +0 -121
- package/node_modules/pi-footer/src/ui/screens/widget-list.ts +0 -154
- package/node_modules/pi-footer/src/ui/terminal-menu.ts +0 -32
- package/node_modules/pi-footer/src/ui/theme.ts +0 -48
- package/node_modules/pi-footer/src/ui/title-bar.ts +0 -100
- package/node_modules/pi-footer/src/ui/widget-actions.ts +0 -76
- package/node_modules/pi-footer/src/ui.ts +0 -66
- package/node_modules/pi-footer/src/widgets/context.ts +0 -28
- package/node_modules/pi-footer/src/widgets/core/active-tools.ts +0 -17
- package/node_modules/pi-footer/src/widgets/core/context-window.ts +0 -24
- package/node_modules/pi-footer/src/widgets/core/cwd-basename.ts +0 -19
- package/node_modules/pi-footer/src/widgets/core/cwd.ts +0 -108
- package/node_modules/pi-footer/src/widgets/core/event.ts +0 -34
- package/node_modules/pi-footer/src/widgets/core/external-status.ts +0 -102
- package/node_modules/pi-footer/src/widgets/core/model-provider.ts +0 -20
- package/node_modules/pi-footer/src/widgets/core/model.ts +0 -35
- package/node_modules/pi-footer/src/widgets/core/provider.ts +0 -17
- package/node_modules/pi-footer/src/widgets/core/session-name.ts +0 -17
- package/node_modules/pi-footer/src/widgets/core/text-verbosity.ts +0 -17
- package/node_modules/pi-footer/src/widgets/core/thinking-level.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/ahead-behind.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/branch.ts +0 -81
- package/node_modules/pi-footer/src/widgets/git/clean.ts +0 -19
- package/node_modules/pi-footer/src/widgets/git/deletions.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/diff.ts +0 -38
- package/node_modules/pi-footer/src/widgets/git/insertions.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/remote.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/root.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/sha.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/staged.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/status.ts +0 -19
- package/node_modules/pi-footer/src/widgets/git/unstaged.ts +0 -17
- package/node_modules/pi-footer/src/widgets/git/untracked.ts +0 -17
- package/node_modules/pi-footer/src/widgets/instance.ts +0 -118
- package/node_modules/pi-footer/src/widgets/layout/custom-text.ts +0 -18
- package/node_modules/pi-footer/src/widgets/layout/flex-separator.ts +0 -32
- package/node_modules/pi-footer/src/widgets/layout/separator.ts +0 -57
- package/node_modules/pi-footer/src/widgets/layout/spacer.ts +0 -31
- package/node_modules/pi-footer/src/widgets/options.ts +0 -122
- package/node_modules/pi-footer/src/widgets/project/runtime.ts +0 -361
- package/node_modules/pi-footer/src/widgets/registry.ts +0 -223
- package/node_modules/pi-footer/src/widgets/session/assistant-messages.ts +0 -17
- package/node_modules/pi-footer/src/widgets/session/compactions.ts +0 -17
- package/node_modules/pi-footer/src/widgets/session/elapsed.ts +0 -18
- package/node_modules/pi-footer/src/widgets/session/last-activity.ts +0 -18
- package/node_modules/pi-footer/src/widgets/session/messages.ts +0 -19
- package/node_modules/pi-footer/src/widgets/session/session-id.ts +0 -17
- package/node_modules/pi-footer/src/widgets/session/session-start.ts +0 -18
- package/node_modules/pi-footer/src/widgets/session/tool-results.ts +0 -17
- package/node_modules/pi-footer/src/widgets/session/total-messages.ts +0 -19
- package/node_modules/pi-footer/src/widgets/session/total-time.ts +0 -18
- package/node_modules/pi-footer/src/widgets/session/user-messages.ts +0 -17
- package/node_modules/pi-footer/src/widgets/store.ts +0 -26
- package/node_modules/pi-footer/src/widgets/tokens/cache-hit-rate.ts +0 -55
- package/node_modules/pi-footer/src/widgets/tokens/cache-read.ts +0 -18
- package/node_modules/pi-footer/src/widgets/tokens/cache-write.ts +0 -18
- package/node_modules/pi-footer/src/widgets/tokens/context-bar.ts +0 -108
- package/node_modules/pi-footer/src/widgets/tokens/context-length.ts +0 -26
- package/node_modules/pi-footer/src/widgets/tokens/context-remaining.ts +0 -29
- package/node_modules/pi-footer/src/widgets/tokens/context.ts +0 -29
- package/node_modules/pi-footer/src/widgets/tokens/cost.ts +0 -51
- package/node_modules/pi-footer/src/widgets/tokens/input-speed.ts +0 -25
- package/node_modules/pi-footer/src/widgets/tokens/input-tokens.ts +0 -18
- package/node_modules/pi-footer/src/widgets/tokens/output-speed.ts +0 -25
- package/node_modules/pi-footer/src/widgets/tokens/output-tokens.ts +0 -18
- package/node_modules/pi-footer/src/widgets/tokens/tokens.ts +0 -20
- package/node_modules/pi-footer/src/widgets/tokens/total-speed.ts +0 -25
- package/node_modules/pi-footer/src/widgets/tokens/total-tokens.ts +0 -18
- package/node_modules/pi-footer/src/widgets/types.ts +0 -181
- package/node_modules/pi-footer/src/widgets/utils/colors.ts +0 -11
- package/node_modules/pi-footer/src/widgets/utils/context.ts +0 -112
- package/node_modules/pi-footer/src/widgets/utils/session.ts +0 -19
- package/node_modules/pi-footer/src/widgets/utils/token-format.ts +0 -78
package/README.md
CHANGED
|
@@ -36,7 +36,6 @@ The package bundles 5 active `@herbertgao/*` child packages—`pi-bark`, `pi-cc-
|
|
|
36
36
|
- `pi-typesafe@0.8.1`
|
|
37
37
|
- `pi-multi-account@1.23.2`
|
|
38
38
|
- `pi-next-cue@1.0.7`
|
|
39
|
-
- `pi-footer@0.5.1`
|
|
40
39
|
- `pi-jev-auto-mode@0.5.0`
|
|
41
40
|
- `pi-lens@4.3.0`
|
|
42
41
|
- `pi-web-access@0.34.0`
|
|
@@ -60,15 +59,9 @@ Pi loads their extensions and skills through `node_modules/` paths inside one pa
|
|
|
60
59
|
|
|
61
60
|
`pi-next-cue@1.0.7` predicts a short next prompt after each completed agent turn. In the empty editor, `Tab` fills the suggestion and `Enter` sends it. Each settled turn can make one extra model request using recent conversation text, recent tool names/results, and the configured active or explicitly selected model. It is TUI-only and wraps the prompt editor, so do not enable another custom-editor extension that also owns the editor slot.
|
|
62
61
|
|
|
63
|
-
If `pi-footer` was installed separately before upgrading to an aggregate release that includes it, remove the standalone source shown by `pi list` so only the bundled copy loads. For the pinned standalone install used while preparing this integration:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
pi remove npm:pi-footer@0.5.1
|
|
67
|
-
```
|
|
68
|
-
|
|
69
62
|
### Footer
|
|
70
63
|
|
|
71
|
-
|
|
64
|
+
The configurable status bar is provided by `@herbertgao/pi-cc-extensions` and enabled by default (`/ccstyle` → Footer page: chips, lines, ordering, plain-text icons). `pi-footer` is no longer bundled. If `pi-footer` was installed separately, remove it so only one footer extension owns the status bar; a leftover `$PI_CODING_AGENT_DIR/extensions/pi-footer.json` can be deleted.
|
|
72
65
|
|
|
73
66
|
For the intended compact status text, merge the optional pi-lens widget setting into its existing file rather than replacing the file:
|
|
74
67
|
|
|
@@ -1,109 +1,126 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="./assets/readme/hero.en.svg" width="100%" alt="pi-cc-extensions: a productivity extension suite for Pi">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<p align="center">
|
|
6
|
-
<a href="https://pi.dev/packages?name=%40herbertgao%2Fpi-cc-extensions"><img alt="Pi package catalog" src="https://img.shields.io/badge/Pi-package-58B7FF?style=flat-square"></a>
|
|
7
|
-
<a href="https://www.npmjs.com/package/@herbertgao/pi-cc-extensions"><img alt="npm version" src="https://img.shields.io/npm/v/%40herbertgao%2Fpi-cc-extensions?style=flat-square&color=66E3C4"></a>
|
|
8
|
-
<a href="#compatibility"><img alt="Node.js 24 or newer" src="https://img.shields.io/badge/Node.js-%E2%89%A524-66E3C4?style=flat-square"></a>
|
|
9
|
-
<a href="./extensions"><img alt="TypeScript extensions" src="https://img.shields.io/badge/TypeScript-extensions-3178C6?style=flat-square"></a>
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
Claude Code-style TUI output with some personal touches and handy utilities.
|
|
14
|
-
</p>
|
|
15
|
-
|
|
16
1
|
<p align="center">
|
|
17
2
|
<a href="./README.md">简体中文</a> · <strong>English</strong>
|
|
18
3
|
</p>
|
|
19
4
|
|
|
20
|
-
|
|
5
|
+
# pi-cc-extensions
|
|
6
|
+
|
|
7
|
+
> Claude Code-style TUI output with some personal touches and handy utilities.
|
|
21
8
|
|
|
22
9
|
## Preview
|
|
23
10
|
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
11
|
+
<a href="https://github.com/user-attachments/assets/6c858000-fdad-43f9-957f-4d0278648498"><img src="./assets/readme/preview.webp" alt="pi-cc-extensions UI preview" width="100%"></a>
|
|
12
|
+
|
|
13
|
+
Click the cover to play the demo video
|
|
27
14
|
|
|
28
15
|
## Quick start
|
|
29
16
|
|
|
30
17
|
```bash
|
|
31
18
|
pi install npm:@herbertgao/pi-cc-extensions
|
|
19
|
+
|
|
20
|
+
# GitHub (this monorepo)
|
|
21
|
+
pi install git:github.com/HerbertGao/pi-extensions
|
|
32
22
|
```
|
|
33
23
|
|
|
34
24
|
Run `/reload` after installation.
|
|
35
25
|
|
|
36
26
|
## Features
|
|
37
27
|
|
|
38
|
-
| Feature
|
|
39
|
-
|
|
|
40
|
-
| Claude Code
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
28
|
+
| Feature | Description | Entry point |
|
|
29
|
+
| --------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
30
|
+
| Claude Code UI | Tool summaries, expand/collapse, rich edit/write diffs, and `on` / `compact` / `off` modes | `/ccstyle` |
|
|
31
|
+
| Markdown enhancements | Mermaid diagrams, admonitions, URL linking, and more | Automatic |
|
|
32
|
+
| Fullscreen mode | Tool card/group expand and collapse on click, previews, hover highlight, and a back-to-bottom button | `TUIMODE=fullscreen` or `--tui-mode fullscreen` |
|
|
33
|
+
| Settings panel | `Style / Features / UI / Diff / Thinking / Footer` tabs | `/ccstyle` |
|
|
34
|
+
| Context inspection | Usage breakdown and previews for the system prompt, memory, skills, tools definition, and messages | `/context` |
|
|
35
|
+
| Session/Subagent references | Search and inject effective context from previous Sessions or existing SubAgents | `@` |
|
|
36
|
+
| Status bar | Shows model, context, cache, cost, and git; also works with `@narumitw/pi-usage` for live quota. Git/cache Nerd Font icons can be turned off | `/ccstyle` |
|
|
37
|
+
| Theme | Bundled CC Dark and CC Light themes | `/theme` |
|
|
38
|
+
|
|
39
|
+
Renderer snapshots for `on` / `compact` modes: [default](./docs/tool-render-examples-default.md) · [compact](./docs/tool-render-examples-compact.md)
|
|
46
40
|
|
|
47
41
|
## Configuration
|
|
48
42
|
|
|
49
|
-
`/ccstyle` behavior is configured through `~/.pi/agent/
|
|
43
|
+
`/ccstyle` behavior is configured through `~/.pi/agent/pi-cc-extensions.json`:
|
|
50
44
|
|
|
51
|
-
```
|
|
45
|
+
```jsonc
|
|
52
46
|
{
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"editDiffCollapsedLines": 24, // diff body lines shown when collapsed; beyond that shows the expand hint (Ctrl+O / click)
|
|
59
|
-
"diffWordWrap": true, // whether long diff lines wrap (otherwise truncated)
|
|
60
|
-
"expandedPreviewMaxLines": 40, // max body lines for expanded output/diff
|
|
61
|
-
"useSummaryTitlesAsThinkingTitle": true, // use the latest provider summary as the active thinking title
|
|
62
|
-
"previewLines": 3, // thinking preview lines; 0 hides the preview body
|
|
63
|
-
"animationIntervalMs": 90, // thinking title animation interval in ms
|
|
64
|
-
"dimThinkingText": false, // dim thinking body text
|
|
65
|
-
"showStartupHeader": true, // custom startup header (logo + tips) toggle
|
|
66
|
-
"scrollStepLines": 3, // fullscreen mouse wheel scroll lines
|
|
47
|
+
// style
|
|
48
|
+
"mode": "on", // on / compact / off
|
|
49
|
+
"excludeRenderers": [], // tools keeping the native renderer; Agent always keeps its dedicated renderer
|
|
50
|
+
|
|
51
|
+
// features
|
|
67
52
|
"enableSessionReference": true, // @ session references
|
|
68
|
-
"enableSubagentAutocomplete": true, // @
|
|
69
|
-
"enableContextCommand": true, // /context
|
|
53
|
+
"enableSubagentAutocomplete": true, // @subagent:[name] completion and delegation hints
|
|
54
|
+
"enableContextCommand": true, // /context usage check
|
|
70
55
|
"enableAgentSummary": true, // per-turn tool summary
|
|
71
|
-
"enableWorkingMessage": true, // Working... token/
|
|
72
|
-
"enableAliases": true
|
|
56
|
+
"enableWorkingMessage": true, // Working... bottom token/elapsed
|
|
57
|
+
"enableAliases": true, // /clear, /exit aliases
|
|
58
|
+
|
|
59
|
+
// ui
|
|
60
|
+
"expandedInputMaxLines": 5, // expanded tool Input lines; overflow shows a footer hint
|
|
61
|
+
"expandedOutputMaxLines": 10, // expanded tool Output lines; overflow shows a footer hint
|
|
62
|
+
"expandedPreviewMaxLines": 40, // max lines for expanded TaskList bodies (expanded diffs always show all)
|
|
63
|
+
"inputClip": 0, // tool summary path/command clip length; 0 = fit width
|
|
64
|
+
"showStartupHeader": true, // startup header (logo + tips) toggle
|
|
65
|
+
"scrollStepLines": 3, // fullscreen wheel scroll step
|
|
66
|
+
|
|
67
|
+
// diff
|
|
68
|
+
"diffViewMode": "auto", // layout: auto / split / unified
|
|
69
|
+
"diffIndicatorMode": "bars", // change indicators: bars / classic / none
|
|
70
|
+
"diffSplitMinWidth": 120, // min terminal width for side-by-side columns
|
|
71
|
+
"editDiffCollapsedLines": 24, // Edit collapse lines; beyond that shows the expand hint
|
|
72
|
+
"writeDiffCollapsedLines": 0, // write collapse lines; 0 = creation summary only
|
|
73
|
+
"diffWordWrap": true, // wrap long diff lines
|
|
74
|
+
|
|
75
|
+
// thinking
|
|
76
|
+
"useSummaryTitlesAsThinkingTitle": true, // use latest summary as thinking title
|
|
77
|
+
"previewLines": 3, // preview lines; 0 hides
|
|
78
|
+
"animationIntervalMs": 90, // title animation interval (ms)
|
|
79
|
+
"dimThinkingText": false, // dim thinking body text
|
|
80
|
+
|
|
81
|
+
// footer
|
|
82
|
+
"enableCustomFooter": true, // custom status bar
|
|
83
|
+
"footerNerdIcons": true, // Nerd Font glyphs for git/cache; false = plain text
|
|
84
|
+
"footerHiddenKeys": [], // hidden plugin chip keys
|
|
85
|
+
"footerLine1Keys": ["pi-usage"], // line1 plugin chip order; pi-usage is shown by default, data from @narumitw/pi-usage
|
|
86
|
+
"footerLine2Keys": [], // line2 plugin chip order (after cwd/git)
|
|
87
|
+
"footerLine3Keys": [] // line3 overflow slot; painted only when a chip is visible
|
|
73
88
|
}
|
|
74
89
|
```
|
|
75
90
|
|
|
76
|
-
>
|
|
91
|
+
> [!TIP]
|
|
92
|
+
> **Fullscreen**: click `click to show more` to expand tool cards, thinking, Skill, and compact summaries. An expanded diff always shows every line; when expanded Input/Output exceeds the line cap, the footer `… +N more lines • click to show more` opens a full preview. Click to collapse (dragging inside the card selects text).
|
|
93
|
+
|
|
94
|
+
> [!NOTE]
|
|
95
|
+
> **Mermaid rendering**: set `markdown.mermaid` to `final` via `~/.pi/agent/settings.json` or the Mermaid diagrams option in `/settings`. Default `streaming` redraws per frame; `final` renders once at completion.
|
|
77
96
|
|
|
78
97
|
## Local development
|
|
79
98
|
|
|
80
99
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
npm test
|
|
101
|
+
npm run typecheck
|
|
83
102
|
./test.bat # or pi -e .
|
|
84
103
|
```
|
|
85
104
|
|
|
86
105
|
## Compatibility
|
|
87
106
|
|
|
88
|
-
- Node.js `>=
|
|
89
|
-
|
|
90
|
-
## Built-in capabilities
|
|
91
|
-
|
|
92
|
-
Pi 0.99+ provides native MCP tools and `/mcp` management; do not install another MCP extension that registers `/mcp`.
|
|
107
|
+
- Node.js `>=22.19.0`, Pi `^0.84.0`
|
|
93
108
|
|
|
94
109
|
## Recommended companions
|
|
95
110
|
|
|
96
111
|
| Extension | Purpose |
|
|
97
|
-
|
|
|
112
|
+
| ---------------------------------------- | ------------------------------------------------------------ |
|
|
98
113
|
| `npm:@tintinweb/pi-subagents` | Parallel SubAgents, background tasks, and worktree isolation |
|
|
99
114
|
| `npm:@tintinweb/pi-tasks` | Claude Code-style task tracking and coordination |
|
|
115
|
+
| `npm:pi-mcp-adapter` | On-demand MCP tool discovery with lower context usage |
|
|
100
116
|
| `npm:@ff-labs/pi-fff` | FFF-powered fuzzy file and content search (fffind / ffgrep) |
|
|
101
117
|
| `npm:pi-web-access` | Web search, URL fetching, GitHub cloning, PDF/video parsing |
|
|
102
|
-
| `npm:pi-theme-picker` | Theme search and live preview |
|
|
103
118
|
| `npm:@narumitw/pi-usage` | Current-account usage for Codex / Copilot / OpenRouter |
|
|
104
|
-
| `git:github.com/DietrichGebert/ponytail` | Lazy-mode coding: forces the simplest working solution |
|
|
105
119
|
|
|
106
120
|
## Credits
|
|
107
121
|
|
|
108
|
-
- Derived from [`minuque/pi-cc-extensions` v0.8.68](https://github.com/minuque/pi-cc-extensions/releases/tag/v0.8.68) (`1ca144c`) under the MIT license.
|
|
109
122
|
- Rich diffs are adapted from [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display) (MIT). See [`extensions/renderer/tool/diff/ATTRIBUTION.md`](./extensions/renderer/tool/diff/ATTRIBUTION.md).
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
[MIT](./LICENSE) © 2026 minuque; derivative maintained in [HerbertGao/pi-extensions](https://github.com/HerbertGao/pi-extensions/tree/master/packages/pi-cc-extensions)
|
|
@@ -1,109 +1,126 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="./assets/readme/hero.svg" width="100%" alt="pi-cc-extensions:Pi 终端效率扩展套件">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<p align="center">
|
|
6
|
-
<a href="https://pi.dev/packages?name=%40herbertgao%2Fpi-cc-extensions"><img alt="Pi package catalog" src="https://img.shields.io/badge/Pi-package-58B7FF?style=flat-square"></a>
|
|
7
|
-
<a href="https://www.npmjs.com/package/@herbertgao/pi-cc-extensions"><img alt="npm version" src="https://img.shields.io/npm/v/%40herbertgao%2Fpi-cc-extensions?style=flat-square&color=66E3C4"></a>
|
|
8
|
-
<a href="#兼容性"><img alt="Node.js 24 or newer" src="https://img.shields.io/badge/Node.js-%E2%89%A524-66E3C4?style=flat-square"></a>
|
|
9
|
-
<a href="./extensions"><img alt="TypeScript extensions" src="https://img.shields.io/badge/TypeScript-extensions-3178C6?style=flat-square"></a>
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
类 Claude Code TUI 输出风格,并融入了一些个人喜好,和一些实用小功能。
|
|
14
|
-
</p>
|
|
15
|
-
|
|
16
1
|
<p align="center">
|
|
17
2
|
<strong>简体中文</strong> · <a href="./README.en.md">English</a>
|
|
18
3
|
</p>
|
|
19
4
|
|
|
20
|
-
|
|
5
|
+
# pi-cc-extensions
|
|
6
|
+
|
|
7
|
+
> 类 Claude Code TUI 输出风格,并融入了一些个人喜好,和一些实用小功能。
|
|
21
8
|
|
|
22
9
|
## 界面预览
|
|
23
10
|
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
11
|
+
<a href="https://github.com/user-attachments/assets/6c858000-fdad-43f9-957f-4d0278648498"><img src="./assets/readme/preview.webp" alt="pi-cc-extensions 界面预览" width="100%"></a>
|
|
12
|
+
|
|
13
|
+
点击封面播放演示视频
|
|
27
14
|
|
|
28
15
|
## 快速开始
|
|
29
16
|
|
|
30
17
|
```bash
|
|
31
18
|
pi install npm:@herbertgao/pi-cc-extensions
|
|
19
|
+
|
|
20
|
+
# GitHub(本 monorepo)
|
|
21
|
+
pi install git:github.com/HerbertGao/pi-extensions
|
|
32
22
|
```
|
|
33
23
|
|
|
34
24
|
安装后执行 `/reload`
|
|
35
25
|
|
|
36
26
|
## 功能
|
|
37
27
|
|
|
38
|
-
| 功能
|
|
39
|
-
|
|
|
40
|
-
| Claude Code UI
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
28
|
+
| 功能 | 说明 | 入口 |
|
|
29
|
+
| --------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
30
|
+
| Claude Code UI | 工具摘要、折叠展开、rich edit/write diff,以及`on` / `compact` / `off` 三种模式 | `/ccstyle` |
|
|
31
|
+
| Markdown 增强 | Mermaid 图、提示框、URL 链接化等 | 自动生效 |
|
|
32
|
+
| Fullscreen mode | 工具卡/group 单击展开与收起、预览、hover 高亮、回到底部按钮 | `TUIMODE=fullscreen` 或 `--tui-mode fullscreen` |
|
|
33
|
+
| 配置面板 | `Style / Features / UI / Diff / Thinking / Footer` 六页签 | `/ccstyle` |
|
|
34
|
+
| 上下文检查 | 查看上下文占用,并预览 System prompt、Memory、Skills、Tools definition 和消息内容 | `/context` |
|
|
35
|
+
| Session/Subagent 引用 | 搜索并注入历史 Session 或现有 SubAgent 的有效上下文 | `@` |
|
|
36
|
+
| 状态栏 | 显示:模型、上下文、缓存、费用、git并适配 @narumitw/pi-usage 实时显示额度;git/缓存图标可关 Nerd Font | `/ccstyle` |
|
|
37
|
+
| 主题 | 随包提供内置 CC Dark、CC Light 主题 | `/theme` |
|
|
38
|
+
|
|
39
|
+
`on` / `compact` 两种模式的渲染样例:[默认模式](./docs/tool-render-examples-default.md) · [紧凑模式](./docs/tool-render-examples-compact.md)
|
|
46
40
|
|
|
47
41
|
## 配置
|
|
48
42
|
|
|
49
|
-
`/ccstyle` 的行为由 `~/.pi/agent/
|
|
43
|
+
`/ccstyle` 的行为由 `~/.pi/agent/pi-cc-extensions.json` 配置:
|
|
50
44
|
|
|
51
|
-
```
|
|
45
|
+
```jsonc
|
|
52
46
|
{
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"editDiffCollapsedLines": 24, // 折叠时展示的 diff 行数,超出显示展开提示(Ctrl+O / 点击)
|
|
59
|
-
"diffWordWrap": true, // 长 diff 行是否换行(否则截断)
|
|
60
|
-
"expandedPreviewMaxLines": 40, // 展开后输出/diff 正文的最大行数
|
|
61
|
-
"useSummaryTitlesAsThinkingTitle": true, // 用最新 provider 摘要作为思考标题
|
|
62
|
-
"previewLines": 3, // thinking 预览行数,0 隐藏预览正文
|
|
63
|
-
"animationIntervalMs": 90, // thinking 标题动画间隔(毫秒)
|
|
64
|
-
"dimThinkingText": false, // thinking 正文使用 dim 色
|
|
65
|
-
"showStartupHeader": true, // 自定义启动头(logo + tips)开关
|
|
66
|
-
"scrollStepLines": 3, // fullscreen 滚轮滚动步进行数
|
|
47
|
+
// style
|
|
48
|
+
"mode": "on", // on / compact / off
|
|
49
|
+
"excludeRenderers": [], // 走原生渲染的工具名;Agent 始终保留专用渲染器
|
|
50
|
+
|
|
51
|
+
// features
|
|
67
52
|
"enableSessionReference": true, // @ session 引用
|
|
68
|
-
"enableSubagentAutocomplete": true, // @
|
|
53
|
+
"enableSubagentAutocomplete": true, // @subagent:[name] 补全与委派提示
|
|
69
54
|
"enableContextCommand": true, // /context 上下文检查
|
|
70
|
-
"enableAgentSummary": true, //
|
|
71
|
-
"enableWorkingMessage": true, // Working... token
|
|
72
|
-
"enableAliases": true
|
|
55
|
+
"enableAgentSummary": true, // 每回合工具摘要
|
|
56
|
+
"enableWorkingMessage": true, // Working... 底部 token/耗时
|
|
57
|
+
"enableAliases": true, // /clear、/exit 别名
|
|
58
|
+
|
|
59
|
+
// ui
|
|
60
|
+
"expandedInputMaxLines": 5, // 展开工具卡 Input 可见行数,超出在末行显示展开提示
|
|
61
|
+
"expandedOutputMaxLines": 10, // 展开工具卡 Output 可见行数,超出在末行显示展开提示
|
|
62
|
+
"expandedPreviewMaxLines": 40, // 展开 TaskList 正文最大行数(展开 diff 始终全量)
|
|
63
|
+
"inputClip": 0, // 工具摘要 path/command 折叠字符数;0 = 按可用宽度
|
|
64
|
+
"showStartupHeader": true, // 启动头(logo + tips)开关
|
|
65
|
+
"scrollStepLines": 3, // fullscreen 滚轮步进
|
|
66
|
+
|
|
67
|
+
// diff
|
|
68
|
+
"diffViewMode": "auto", // 布局:auto / split / unified
|
|
69
|
+
"diffIndicatorMode": "bars", // 变更指示:bars / classic / none
|
|
70
|
+
"diffSplitMinWidth": 120, // 左右分栏的最小终端宽度
|
|
71
|
+
"editDiffCollapsedLines": 24, // Edit 折叠行数,超出显示展开提示
|
|
72
|
+
"writeDiffCollapsedLines": 0, // write 折叠行数,0 仅显示创建摘要
|
|
73
|
+
"diffWordWrap": true, // 长 diff 行换行
|
|
74
|
+
|
|
75
|
+
// thinking
|
|
76
|
+
"useSummaryTitlesAsThinkingTitle": true, // 用最新摘要作思考标题
|
|
77
|
+
"previewLines": 3, // 预览行数,0 隐藏
|
|
78
|
+
"animationIntervalMs": 90, // 标题动画间隔(毫秒)
|
|
79
|
+
"dimThinkingText": false, // thinking 正文用 dim 色
|
|
80
|
+
|
|
81
|
+
// footer
|
|
82
|
+
"enableCustomFooter": true, // 自定义状态栏
|
|
83
|
+
"footerNerdIcons": true, // git/缓存用 Nerd Font 图标;false 为纯文本
|
|
84
|
+
"footerHiddenKeys": [], // 隐藏的插件芯片 key
|
|
85
|
+
"footerLine1Keys": ["pi-usage"], // line1 插件芯片顺序;pi-usage 默认显示,数据来自 @narumitw/pi-usage
|
|
86
|
+
"footerLine2Keys": [], // line2 插件芯片顺序(接在 cwd/git 后)
|
|
87
|
+
"footerLine3Keys": [] // line3 备用槽,有可见芯片才占行
|
|
73
88
|
}
|
|
74
89
|
```
|
|
75
90
|
|
|
76
|
-
>
|
|
91
|
+
> [!TIP]
|
|
92
|
+
> **全屏模式**:单击 `click to show more` 展开工具卡、思考、Skill 和 compact 摘要;工具卡展开态 diff 全量显示,Input/Output 超行时末行 `… +N more lines • click to show more` 打开全量预览,单击收起(卡内拖动为选中文本)。
|
|
93
|
+
|
|
94
|
+
> [!NOTE]
|
|
95
|
+
> **Mermaid 渲染**:建议把 `markdown.mermaid` 设为 `final`(`~/.pi/agent/settings.json` 或 `/settings` 面板的 Mermaid diagrams 选项)。默认 `streaming` 逐帧重绘,`final` 渲染最终版更稳定。
|
|
77
96
|
|
|
78
97
|
## 本地开发
|
|
79
98
|
|
|
80
99
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
npm test
|
|
101
|
+
npm run typecheck
|
|
83
102
|
./test.bat # or pi -e .
|
|
84
103
|
```
|
|
85
104
|
|
|
86
105
|
## 兼容性
|
|
87
106
|
|
|
88
|
-
- Node.js `>=
|
|
89
|
-
|
|
90
|
-
## 内置能力
|
|
91
|
-
|
|
92
|
-
Pi 0.99+ 的内置 MCP 负责 MCP 工具与 `/mcp` 管理;不要再安装会注册 `/mcp` 的第三方 MCP 扩展。
|
|
107
|
+
- Node.js `>=22.19.0`,Pi `^0.84.0`
|
|
93
108
|
|
|
94
109
|
## 推荐搭配
|
|
95
110
|
|
|
96
111
|
| 扩展 | 用途 |
|
|
97
|
-
|
|
|
112
|
+
| ---------------------------------------- | ------------------------------------------------ |
|
|
98
113
|
| `npm:@tintinweb/pi-subagents` | 并行 SubAgent、后台任务与工作树隔离 |
|
|
99
114
|
| `npm:@tintinweb/pi-tasks` | Claude Code 风格任务跟踪与协调 |
|
|
115
|
+
| `npm:pi-mcp-adapter` | 按需发现 MCP 工具,减少上下文占用 |
|
|
100
116
|
| `npm:@ff-labs/pi-fff` | 模糊文件与内容检索(fffind / ffgrep) |
|
|
101
117
|
| `npm:pi-web-access` | 网页搜索、URL 抓取、GitHub 克隆、PDF/视频解析 |
|
|
102
|
-
| `npm:pi-theme-picker` | 主题搜索和实时预览 |
|
|
103
118
|
| `npm:@narumitw/pi-usage` | 查看当前账号用量(Codex / Copilot / OpenRouter) |
|
|
104
|
-
| `git:github.com/DietrichGebert/ponytail` | 极简编码:强制最懒但有效的方案 |
|
|
105
119
|
|
|
106
120
|
## 致谢
|
|
107
121
|
|
|
108
|
-
- 基于 MIT 许可的 [`minuque/pi-cc-extensions` v0.8.68](https://github.com/minuque/pi-cc-extensions/releases/tag/v0.8.68)(`1ca144c`)衍生维护。
|
|
109
122
|
- Rich diff 改编自 [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display)(MIT);详见 [`extensions/renderer/tool/diff/ATTRIBUTION.md`](./extensions/renderer/tool/diff/ATTRIBUTION.md)。
|
|
123
|
+
|
|
124
|
+
## 许可证
|
|
125
|
+
|
|
126
|
+
[MIT](./LICENSE) © 2026 minuque;衍生维护:[HerbertGao/pi-extensions](https://github.com/HerbertGao/pi-extensions/tree/master/packages/pi-cc-extensions)
|