@gavin-hu/my-pi-agent 0.0.0-stage → 0.7.0
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/LICENSE +21 -0
- package/README.md +160 -2
- package/assets/bytefly-chrome.png +0 -0
- package/assets/bytefly.schema.json +769 -0
- package/assets/file-browse.png +0 -0
- package/assets/plan-review.png +0 -0
- package/extensions/bytefly/README.md +820 -0
- package/extensions/bytefly/doctor/commands.ts +68 -0
- package/extensions/bytefly/doctor/config.ts +47 -0
- package/extensions/bytefly/doctor/format.ts +188 -0
- package/extensions/bytefly/doctor/register.ts +54 -0
- package/extensions/bytefly/doctor/runtime.ts +87 -0
- package/extensions/bytefly/doctor/schema.ts +51 -0
- package/extensions/bytefly/doctor/tools.ts +113 -0
- package/extensions/bytefly/doctor/tui.ts +140 -0
- package/extensions/bytefly/footer/collect/entries.ts +137 -0
- package/extensions/bytefly/footer/collect/snapshot.ts +64 -0
- package/extensions/bytefly/footer/config.ts +35 -0
- package/extensions/bytefly/footer/price/config.ts +152 -0
- package/extensions/bytefly/footer/price/price.ts +59 -0
- package/extensions/bytefly/footer/price/rates.ts +54 -0
- package/extensions/bytefly/footer/price/schedule.ts +112 -0
- package/extensions/bytefly/footer/price/types.ts +53 -0
- package/extensions/bytefly/footer/register.ts +116 -0
- package/extensions/bytefly/footer/render/footer.ts +51 -0
- package/extensions/bytefly/footer/render/format.ts +106 -0
- package/extensions/bytefly/footer/render/layout.ts +139 -0
- package/extensions/bytefly/footer/render/lines.ts +50 -0
- package/extensions/bytefly/footer/render/segments.ts +281 -0
- package/extensions/bytefly/footer/render/status.ts +42 -0
- package/extensions/bytefly/footer/types.ts +104 -0
- package/extensions/bytefly/header/component.ts +112 -0
- package/extensions/bytefly/header/config.ts +77 -0
- package/extensions/bytefly/header/register.ts +53 -0
- package/extensions/bytefly/index.ts +48 -0
- package/extensions/bytefly/notify/config.ts +60 -0
- package/extensions/bytefly/notify/dispatch.ts +138 -0
- package/extensions/bytefly/notify/format.ts +39 -0
- package/extensions/bytefly/notify/register.ts +85 -0
- package/extensions/bytefly/notify/types.ts +28 -0
- package/extensions/bytefly/picker/commands.ts +73 -0
- package/extensions/bytefly/picker/discovery.ts +128 -0
- package/extensions/bytefly/picker/resources.ts +226 -0
- package/extensions/bytefly/picker/runtime.ts +108 -0
- package/extensions/bytefly/picker/toggle.ts +145 -0
- package/extensions/bytefly/picker/tui.ts +260 -0
- package/extensions/bytefly/picker/types.ts +55 -0
- package/extensions/bytefly/separator/component.ts +26 -0
- package/extensions/bytefly/separator/config.ts +24 -0
- package/extensions/bytefly/separator/format.ts +50 -0
- package/extensions/bytefly/separator/register.ts +42 -0
- package/extensions/bytefly/separator/types.ts +22 -0
- package/extensions/document/README.md +281 -0
- package/extensions/document/config.ts +58 -0
- package/extensions/document/extract/doc.ts +19 -0
- package/extensions/document/extract/docx.ts +18 -0
- package/extensions/document/extract/file.ts +45 -0
- package/extensions/document/extract/odt.ts +101 -0
- package/extensions/document/extract/pdf.ts +25 -0
- package/extensions/document/extract/rtf.ts +45 -0
- package/extensions/document/extract/vendor.d.ts +39 -0
- package/extensions/document/extract/xlsx.ts +88 -0
- package/extensions/document/formats.ts +59 -0
- package/extensions/document/index.ts +17 -0
- package/extensions/document/paging.ts +110 -0
- package/extensions/document/render.ts +105 -0
- package/extensions/document/schema.ts +50 -0
- package/extensions/document/tool.ts +152 -0
- package/extensions/file-browse/README.md +269 -0
- package/extensions/file-browse/client.ts +550 -0
- package/extensions/file-browse/config.ts +82 -0
- package/extensions/file-browse/files.ts +433 -0
- package/extensions/file-browse/fuzzy.ts +75 -0
- package/extensions/file-browse/git.ts +74 -0
- package/extensions/file-browse/html.ts +346 -0
- package/extensions/file-browse/icons.ts +119 -0
- package/extensions/file-browse/index.ts +149 -0
- package/extensions/file-browse/markdown.ts +592 -0
- package/extensions/file-browse/paths.ts +101 -0
- package/extensions/file-browse/router.ts +289 -0
- package/extensions/file-browse/server.ts +104 -0
- package/extensions/file-open/README.md +135 -0
- package/extensions/file-open/index.ts +93 -0
- package/extensions/file-open/open.ts +102 -0
- package/extensions/file-open/schema.ts +31 -0
- package/extensions/goal/README.md +241 -0
- package/extensions/goal/clarify-parse.ts +203 -0
- package/extensions/goal/clarify-prompt.ts +80 -0
- package/extensions/goal/clarify.ts +234 -0
- package/extensions/goal/commands.ts +220 -0
- package/extensions/goal/config.ts +35 -0
- package/extensions/goal/format.ts +111 -0
- package/extensions/goal/index.ts +77 -0
- package/extensions/goal/runtime.ts +90 -0
- package/extensions/goal/schema.ts +105 -0
- package/extensions/goal/state.ts +69 -0
- package/extensions/goal/tools.ts +136 -0
- package/extensions/goal/tui.ts +97 -0
- package/extensions/goal/types.ts +42 -0
- package/extensions/job/README.md +309 -0
- package/extensions/job/commands.ts +74 -0
- package/extensions/job/config.ts +68 -0
- package/extensions/job/format.ts +256 -0
- package/extensions/job/index.ts +140 -0
- package/extensions/job/logs.ts +56 -0
- package/extensions/job/paths.ts +31 -0
- package/extensions/job/process.ts +106 -0
- package/extensions/job/registry.ts +265 -0
- package/extensions/job/reservations.ts +82 -0
- package/extensions/job/runtime.ts +846 -0
- package/extensions/job/schema.ts +148 -0
- package/extensions/job/session.ts +116 -0
- package/extensions/job/status.ts +69 -0
- package/extensions/job/store.ts +103 -0
- package/extensions/job/tools.ts +295 -0
- package/extensions/job/tui.ts +486 -0
- package/extensions/job/types.ts +92 -0
- package/extensions/job/ui.ts +99 -0
- package/extensions/job/waiters.ts +46 -0
- package/extensions/memory/README.md +221 -0
- package/extensions/memory/commands.ts +190 -0
- package/extensions/memory/config.ts +35 -0
- package/extensions/memory/errors.ts +9 -0
- package/extensions/memory/format.ts +141 -0
- package/extensions/memory/index.ts +59 -0
- package/extensions/memory/runtime.ts +199 -0
- package/extensions/memory/schema.ts +86 -0
- package/extensions/memory/store.ts +231 -0
- package/extensions/memory/tools.ts +165 -0
- package/extensions/memory/tui.ts +430 -0
- package/extensions/memory/types.ts +38 -0
- package/extensions/plan/README.md +417 -0
- package/extensions/plan/blocks.ts +197 -0
- package/extensions/plan/commands.ts +134 -0
- package/extensions/plan/feedback.ts +157 -0
- package/extensions/plan/git-bash.ts +320 -0
- package/extensions/plan/index.ts +179 -0
- package/extensions/plan/path-guard.ts +101 -0
- package/extensions/plan/plans.ts +267 -0
- package/extensions/plan/policy.ts +73 -0
- package/extensions/plan/runtime.ts +195 -0
- package/extensions/plan/steps.ts +228 -0
- package/extensions/plan/tools.ts +605 -0
- package/extensions/plan/tui.ts +391 -0
- package/extensions/plan/types.ts +67 -0
- package/extensions/plan/web-client.ts +433 -0
- package/extensions/plan/web-page.ts +169 -0
- package/extensions/plan/web-router.ts +155 -0
- package/extensions/plan/web.ts +267 -0
- package/extensions/question/README.md +189 -0
- package/extensions/question/answers.ts +119 -0
- package/extensions/question/dialogs.ts +109 -0
- package/extensions/question/index.ts +28 -0
- package/extensions/question/schema.ts +119 -0
- package/extensions/question/tools.ts +122 -0
- package/extensions/question/tui-state.ts +240 -0
- package/extensions/question/tui.ts +324 -0
- package/extensions/question/types.ts +61 -0
- package/extensions/rewind/README.md +202 -0
- package/extensions/rewind/commands.ts +74 -0
- package/extensions/rewind/config.ts +71 -0
- package/extensions/rewind/format.ts +110 -0
- package/extensions/rewind/git.ts +177 -0
- package/extensions/rewind/index.ts +60 -0
- package/extensions/rewind/policy.ts +42 -0
- package/extensions/rewind/queue.ts +27 -0
- package/extensions/rewind/restore.ts +96 -0
- package/extensions/rewind/rewind-tui.ts +135 -0
- package/extensions/rewind/rewind.ts +146 -0
- package/extensions/rewind/runtime.ts +174 -0
- package/extensions/rewind/snapshot-run.ts +103 -0
- package/extensions/rewind/snapshot.ts +80 -0
- package/extensions/rewind/status.ts +67 -0
- package/extensions/rewind/store.ts +142 -0
- package/extensions/rewind/temp-index.ts +87 -0
- package/extensions/rewind/timeline.ts +119 -0
- package/extensions/rewind/types.ts +58 -0
- package/extensions/subagent/README.md +310 -0
- package/extensions/subagent/agents.ts +454 -0
- package/extensions/subagent/format.ts +126 -0
- package/extensions/subagent/index.ts +181 -0
- package/extensions/subagent/invocation.ts +57 -0
- package/extensions/subagent/orchestrate.ts +182 -0
- package/extensions/subagent/render.ts +491 -0
- package/extensions/subagent/run.ts +212 -0
- package/extensions/subagent/schema.ts +102 -0
- package/extensions/subagent/stream.ts +144 -0
- package/extensions/subagent/types.ts +79 -0
- package/extensions/todo/README.md +230 -0
- package/extensions/todo/commands.ts +41 -0
- package/extensions/todo/config.ts +29 -0
- package/extensions/todo/format.ts +142 -0
- package/extensions/todo/index.ts +100 -0
- package/extensions/todo/nudge.ts +64 -0
- package/extensions/todo/runtime.ts +149 -0
- package/extensions/todo/schema.ts +125 -0
- package/extensions/todo/state.ts +65 -0
- package/extensions/todo/tools.ts +136 -0
- package/extensions/todo/tui.ts +170 -0
- package/extensions/todo/types.ts +33 -0
- package/extensions/watch/README.md +214 -0
- package/extensions/watch/commands.ts +144 -0
- package/extensions/watch/config.ts +59 -0
- package/extensions/watch/format.ts +212 -0
- package/extensions/watch/index.ts +129 -0
- package/extensions/watch/process.ts +63 -0
- package/extensions/watch/runtime.ts +525 -0
- package/extensions/watch/schema.ts +177 -0
- package/extensions/watch/tools.ts +278 -0
- package/extensions/watch/tui.ts +427 -0
- package/extensions/watch/types.ts +83 -0
- package/extensions/watch/ui.ts +97 -0
- package/extensions/web-access/README.md +347 -0
- package/extensions/web-access/config.ts +36 -0
- package/extensions/web-access/fetch/cache.ts +78 -0
- package/extensions/web-access/fetch/config.ts +81 -0
- package/extensions/web-access/fetch/extract.ts +124 -0
- package/extensions/web-access/fetch/find.ts +158 -0
- package/extensions/web-access/fetch/format.ts +117 -0
- package/extensions/web-access/fetch/page.ts +169 -0
- package/extensions/web-access/fetch/pdf.ts +45 -0
- package/extensions/web-access/fetch/schema.ts +192 -0
- package/extensions/web-access/fetch/ssrf.ts +191 -0
- package/extensions/web-access/fetch/tool.ts +238 -0
- package/extensions/web-access/fetch/types.ts +26 -0
- package/extensions/web-access/html.ts +41 -0
- package/extensions/web-access/http.ts +133 -0
- package/extensions/web-access/index.ts +28 -0
- package/extensions/web-access/search/config.ts +115 -0
- package/extensions/web-access/search/format.ts +65 -0
- package/extensions/web-access/search/json.ts +75 -0
- package/extensions/web-access/search/provider.ts +38 -0
- package/extensions/web-access/search/providers/brave.ts +76 -0
- package/extensions/web-access/search/providers/duckduckgo.ts +109 -0
- package/extensions/web-access/search/providers/searxng.ts +98 -0
- package/extensions/web-access/search/registry.ts +49 -0
- package/extensions/web-access/search/schema.ts +65 -0
- package/extensions/web-access/search/search.ts +129 -0
- package/extensions/web-access/search/tool.ts +112 -0
- package/extensions/web-access/search/types.ts +32 -0
- package/extensions/web-access/text.ts +26 -0
- package/extensions/web-access/transcript.ts +20 -0
- package/extensions/wechat/README.md +273 -0
- package/extensions/wechat/bridge.ts +577 -0
- package/extensions/wechat/client.ts +411 -0
- package/extensions/wechat/commands.ts +220 -0
- package/extensions/wechat/config.ts +88 -0
- package/extensions/wechat/credentials.ts +89 -0
- package/extensions/wechat/format.ts +76 -0
- package/extensions/wechat/index.ts +175 -0
- package/extensions/wechat/interaction.ts +130 -0
- package/extensions/wechat/lock.ts +86 -0
- package/extensions/wechat/login-screen.ts +91 -0
- package/extensions/wechat/login.ts +130 -0
- package/extensions/wechat/media.ts +103 -0
- package/extensions/wechat/outbound.ts +102 -0
- package/extensions/wechat/prompt.ts +104 -0
- package/extensions/wechat/qrcode.ts +46 -0
- package/extensions/wechat/remote-ui.ts +97 -0
- package/extensions/wechat/slash.ts +114 -0
- package/extensions/wechat/state.ts +71 -0
- package/extensions/wechat/status-screen.ts +176 -0
- package/extensions/wechat/tools.ts +109 -0
- package/extensions/wechat/types.ts +170 -0
- package/extensions/worktree/README.md +278 -0
- package/extensions/worktree/commands.ts +110 -0
- package/extensions/worktree/config.ts +107 -0
- package/extensions/worktree/enter.ts +273 -0
- package/extensions/worktree/errors.ts +18 -0
- package/extensions/worktree/exit.ts +122 -0
- package/extensions/worktree/git.ts +429 -0
- package/extensions/worktree/guard.ts +566 -0
- package/extensions/worktree/include.ts +147 -0
- package/extensions/worktree/index.ts +221 -0
- package/extensions/worktree/lifecycle.ts +14 -0
- package/extensions/worktree/prune.ts +99 -0
- package/extensions/worktree/registry.ts +221 -0
- package/extensions/worktree/root-tools.ts +162 -0
- package/extensions/worktree/runtime.ts +135 -0
- package/extensions/worktree/state.ts +65 -0
- package/extensions/worktree/status.ts +115 -0
- package/extensions/worktree/tools.ts +147 -0
- package/lib/README.md +49 -0
- package/lib/browser.ts +40 -0
- package/lib/config.ts +186 -0
- package/lib/env.ts +41 -0
- package/lib/escape.ts +27 -0
- package/lib/events.ts +40 -0
- package/lib/format.ts +76 -0
- package/lib/git/index.ts +7 -0
- package/lib/git/read.ts +76 -0
- package/lib/git/runner.ts +80 -0
- package/lib/highlight.ts +1000 -0
- package/lib/interaction.ts +132 -0
- package/lib/list-cursor.ts +222 -0
- package/lib/path.ts +49 -0
- package/lib/pi-invocation.ts +71 -0
- package/lib/policy.ts +67 -0
- package/lib/rails.ts +91 -0
- package/lib/requirements.ts +431 -0
- package/lib/shell.ts +33 -0
- package/lib/tool-names.ts +32 -0
- package/lib/tui.ts +184 -0
- package/lib/ui.ts +105 -0
- package/lib/web/base.ts +18 -0
- package/lib/web/components.ts +122 -0
- package/lib/web/index.ts +12 -0
- package/lib/web/layout.ts +30 -0
- package/lib/web/markup.ts +99 -0
- package/lib/web/runtime.ts +68 -0
- package/lib/web/tokens.ts +128 -0
- package/package.json +134 -4
- package/themes/bytefly-dark.json +91 -0
- package/themes/bytefly-light.json +91 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gavin Hu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,161 @@
|
|
|
1
|
-
#
|
|
1
|
+
# my-pi-agent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/gavin-hu/my-pi-agent/actions/workflows/ci.yml)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
[](https://pi.dev)
|
|
6
|
+
|
|
7
|
+
Plan before you act, delegate the work, keep the main checkout clean, and carry
|
|
8
|
+
context across sessions. `my-pi-agent` is a single [Pi](https://pi.dev) package
|
|
9
|
+
that adds sixteen extensions and two themes — install the pack, turn off what
|
|
10
|
+
you do not want, and keep using Pi unchanged.
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
## Contents
|
|
15
|
+
|
|
16
|
+
- [Why this pack](#why-this-pack)
|
|
17
|
+
- [Quick start](#quick-start)
|
|
18
|
+
- [What you get](#what-you-get)
|
|
19
|
+
- [Configuration](#configuration)
|
|
20
|
+
- [Documentation](#documentation)
|
|
21
|
+
- [Requirements](#requirements)
|
|
22
|
+
- [Contributing](#contributing)
|
|
23
|
+
- [License](#license)
|
|
24
|
+
|
|
25
|
+
## Why this pack
|
|
26
|
+
|
|
27
|
+
Pi ships a small, sharp core. This package is the layer on top for people who
|
|
28
|
+
want the agent to *think first and work safely*:
|
|
29
|
+
|
|
30
|
+
- **Plan, then execute.** A read-only planning mode turns a task into a reviewed
|
|
31
|
+
plan file that the agent then follows step by step.
|
|
32
|
+
- **Delegate and parallelize.** Run specialist subagents in their own Pi
|
|
33
|
+
processes to explore, review, test, or implement while you keep the thread.
|
|
34
|
+
- **Never wreck the checkout.** Work happens in an isolated `git worktree`, and
|
|
35
|
+
every prompt is snapshotted so a bad turn is one `/rewind` away.
|
|
36
|
+
- **Remember across sessions.** Durable notes live in plain markdown that you
|
|
37
|
+
can read, edit, and version.
|
|
38
|
+
- **Reach the web and your files.** Search, fetch, browse, open, and read
|
|
39
|
+
documents — all from inside the session.
|
|
40
|
+
|
|
41
|
+
Everything is optional and independently toggleable. Nothing is patched or
|
|
42
|
+
forked: Pi discovers the resources through the `pi` manifest in
|
|
43
|
+
[`package.json`](./package.json), so the package upgrades with Pi like any
|
|
44
|
+
other.
|
|
45
|
+
|
|
46
|
+
## Quick start
|
|
47
|
+
|
|
48
|
+
Requires a working [Pi](https://pi.dev) installation.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pi install npm:@gavin-hu/my-pi-agent # install from npm
|
|
52
|
+
pi install git:github.com/gavin-hu/my-pi-agent # install from git
|
|
53
|
+
pi install git:github.com/gavin-hu/my-pi-agent@v0.7.0 # pin a release
|
|
54
|
+
pi install ./ -l # project-local (.pi/settings.json)
|
|
55
|
+
pi -e . # try it for one run
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then, from inside Pi:
|
|
59
|
+
|
|
60
|
+
- `/extensions` lists every loaded extension and enables or disables one.
|
|
61
|
+
- `/doctor` checks that each enabled extension has what it needs at runtime.
|
|
62
|
+
- `/settings` → **Theme** selects a theme.
|
|
63
|
+
- `/plan <task>` starts a task in read-only planning mode.
|
|
64
|
+
|
|
65
|
+
## What you get
|
|
66
|
+
|
|
67
|
+
Sixteen extensions and two themes, grouped by what you are trying to do. Each
|
|
68
|
+
extension's own `README.md` has the full tool and command surface.
|
|
69
|
+
|
|
70
|
+
### Plan and delegate
|
|
71
|
+
|
|
72
|
+
| Extension | Tools and commands | What it does |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| [`plan`](./extensions/plan/) | `enter_plan_mode`, `write_plan`, `exit_plan_mode`, `set_plan_step`, `/plan`, `--plan` | Read-only planning: the model investigates, saves a plan under `.pi/plans`, and you approve it before anything is written. Review in the TUI, or open it in a browser to leave inline comments. |
|
|
75
|
+
| [`subagent`](./extensions/subagent/) | `subagent` | Delegate a task to a specialist agent (`explorer`, `planner`, `reviewer`, `worker`, `researcher`, `tester`, `debugger`, `documenter`) in its own Pi process — single, parallel, or chained. |
|
|
76
|
+
| [`todo`](./extensions/todo/) | `todo`, `/todos` | A persistent task list (`pending` / `in_progress` / `completed`) with a one-line widget. |
|
|
77
|
+
| [`goal`](./extensions/goal/) | `goal`, `/goal` | A persistent session objective, kept in a widget and restated before each turn. |
|
|
78
|
+
| [`question`](./extensions/question/) | `ask_user_question` | Ask you one or more structured questions (labelled options plus free-form "Other") and wait. |
|
|
79
|
+
| [`job`](./extensions/job/) | `job`, `/jobs` | Run long-lived shell commands in the background; inspect logs, wait, or kill them. |
|
|
80
|
+
| [`watch`](./extensions/watch/) | `watch`, `/watch` | Tail a file or command output, match lines against patterns, and alert you or hand matching lines to the agent. |
|
|
81
|
+
|
|
82
|
+

|
|
83
|
+
|
|
84
|
+
### Keep your work safe
|
|
85
|
+
|
|
86
|
+
| Extension | Tools and commands | What it does |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| [`worktree`](./extensions/worktree/) | `enter_worktree`, `exit_worktree`, `prune_worktrees`, `list_worktrees`, `/worktree*`, `--worktree` | Work inside an isolated `git worktree` on its own branch; the built-in read/write/edit/bash tools follow, and cleanup refuses to throw work away. |
|
|
89
|
+
| [`rewind`](./extensions/rewind/) | `/rewind`, `↺ N` status chip | Snapshot the repo on every prompt under `refs/pi/rewind` and restore code, conversation, or both. |
|
|
90
|
+
| [`memory`](./extensions/memory/) | `memory`, `/memory` | Durable cross-session notes as human-editable markdown, injected into each run and managed through the `/memory` picker. |
|
|
91
|
+
|
|
92
|
+
### Reach the world
|
|
93
|
+
|
|
94
|
+
| Extension | Tools and commands | What it does |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| [`web-access`](./extensions/web-access/) | `web_search`, `web_fetch` | Search the web (keyless DuckDuckGo by default, optional SearXNG or Brave) and fetch a page as readable text, with paging, `find`, per-hop SSRF checks, and optional PDF support. |
|
|
97
|
+
| [`file-browse`](./extensions/file-browse/) | `/browse` | Start a loopback, read-only file browser rooted at the working directory, with Markdown preview and a fuzzy quick-open palette. |
|
|
98
|
+
| [`document`](./extensions/document/) | `read_doc` | Extract text from a local PDF, DOCX, DOC, ODT, RTF, or XLSX in process, paged. |
|
|
99
|
+
| [`file-open`](./extensions/file-open/) | `/open`, `open_path` | Open or reveal a file or directory in the OS-native application. |
|
|
100
|
+
| [`wechat`](./extensions/wechat/) | `/wechat`, `send_wechat` | Bridge a WeChat chat to the live session over the Weixin iLink bot API; inbound text, images, and files become turns. |
|
|
101
|
+
|
|
102
|
+

|
|
103
|
+
|
|
104
|
+
### Chrome and upkeep
|
|
105
|
+
|
|
106
|
+
| Extension | Tools and commands | What it does |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| [`bytefly`](./extensions/bytefly/) | `/bytefly`, `/extensions`, `/doctor`, `run_doctor` | A themed header and width-adaptive footer, a rule between completed turns, the `/extensions` picker, `/doctor` diagnostics, and an opt-in `notify` capability that raises OS notifications when a run or a background job finishes or the agent asks for input. DeepSeek is priced out of the box, and `bytefly.json` is the shared config document every extension reads. |
|
|
109
|
+
| [`bytefly-dark`](./themes/bytefly-dark.json) / [`bytefly-light`](./themes/bytefly-light.json) | `/settings` → **Theme** | A GitHub-inspired dark palette and its light companion, with optional automatic light/dark switching. |
|
|
110
|
+
|
|
111
|
+
## Configuration
|
|
112
|
+
|
|
113
|
+
Most extensions need no configuration. Every setting lives in one shared
|
|
114
|
+
document, `bytefly.json`, read from `<agent-dir>/bytefly.json` and merged with
|
|
115
|
+
`<cwd>/.pi/bytefly.json` (project wins), under a top-level section named for the
|
|
116
|
+
extension. Each extension's `README.md` lists its keys,
|
|
117
|
+
[`docs/configuration.md`](./docs/configuration.md) indexes them, and
|
|
118
|
+
[`assets/bytefly.schema.json`](./assets/bytefly.schema.json) validates the file.
|
|
119
|
+
|
|
120
|
+
Every extension is on by default. To load the pack without some of them, set
|
|
121
|
+
`PI_DISABLED_EXTENSIONS` to a comma- or whitespace-separated list of extension
|
|
122
|
+
names (the directory names under [`extensions/`](./extensions/)):
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
PI_DISABLED_EXTENSIONS=todo,job pi -e .
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Names are compared case-insensitively and unknown names are ignored. This only
|
|
129
|
+
stops the factories from registering; to drop the whole package, use Pi's
|
|
130
|
+
`--no-extensions` or remove the package from your settings.
|
|
131
|
+
|
|
132
|
+
## Documentation
|
|
133
|
+
|
|
134
|
+
| Guide | What it covers |
|
|
135
|
+
|---|---|
|
|
136
|
+
| [Getting started](./docs/getting-started.md) | Requirements, install options, verifying the load, themes. |
|
|
137
|
+
| [Extensions](./docs/extensions.md) | The full catalog of every extension and theme. |
|
|
138
|
+
| [Configuration](./docs/configuration.md) | Config-file resolution, the per-extension index, environment variables. |
|
|
139
|
+
| [Architecture](./docs/architecture.md) | How the package, its extensions, and `lib/` fit together. |
|
|
140
|
+
| [Development](./docs/development.md) | Local setup, checks, tests, cross-platform notes, and the release process. |
|
|
141
|
+
| [Security](./docs/security.md) | Trust boundaries for the loopback and remote surfaces. |
|
|
142
|
+
|
|
143
|
+
## Requirements
|
|
144
|
+
|
|
145
|
+
- **Pi** — a working installation; `my-pi-agent` is a package, not a fork.
|
|
146
|
+
- **OS** — Windows, macOS, and Linux; the full check suite runs on all three in
|
|
147
|
+
CI.
|
|
148
|
+
- **git** on `PATH` for the `worktree` and `rewind` extensions; everything else
|
|
149
|
+
degrades or disables cleanly, and `/doctor` tells you what is missing.
|
|
150
|
+
- Optional runtime pieces (for example a browser for HTML exports) are reported
|
|
151
|
+
per extension by `/doctor`.
|
|
152
|
+
|
|
153
|
+
## Contributing
|
|
154
|
+
|
|
155
|
+
Contributions are welcome. Start with [`CONTRIBUTING.md`](./CONTRIBUTING.md) for
|
|
156
|
+
the setup, the worktree branch flow, and the checks a change must pass. AI
|
|
157
|
+
coding agents should read [`AGENTS.md`](./AGENTS.md).
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT
|
|
Binary file
|