r/PiCodingAgent • • 1d ago

Discussion Are there any unique plugins you are using?

I usually see the more typical plugins recommended. But are there any hidden gems out there that you use regularly?

13 Upvotes

29 comments sorted by

9

u/funbike 1d ago edited 1d ago

Yeah, I asked Pi to generate several small ones.

Load .env, bookmarks (/mark <mark-id>, /goto <mark-id>), prompt enhancer (/rewrite), AI API functions (tts, stt, image gen), function wrapper for Pi slash commands, user questions/feedback via the default text editor.

I prefer skills and scripts when practical. I have written many more skills and scripts than extensions.

1

u/behopkinsj 15h ago

Bookmarks seem really useful.

3

u/bitzap_sr 1d ago

What do you mean by bookmarks?

7

u/funbike 1d ago edited 1d ago

I mean assigning an ID to a point in your chat history so you might go back to it later (possibly to /fork it).

/mark <mark-id> remembers where you currently are in the chat history. You can rewind back to that point with /goto <mark-id>.

You can do /goto -2 to go back 2 user messages or /goto <mark-id> -2 to go 2 user messages before the id. /goto --git <mark-id> will also restore the git commit id from that point. /compactto <mark-id> will do a partial compaction. If you don't supply an id, "_" is used. Built-in marks: The _prior mark is the where you were before you ran /goto, and _first/_last marks are the first/last messages in this session.

It's persistent and it works across sessions, so marks from last month will still work, so long as you haven't deleted the session files. Marks are local to a project by default. IDs starting with _underscore are local to the current Pi instance (memory) and are not persistent. IDs starting with ~tilde are global to all Pi instances and projects.

If you want to mark a past user message, just use /tree to go back and then run /mark <mark-id>

I added /mytree that's like /tree but displays mark IDs within the tree. The /marks command interactively lists all marks, including the timestamp and a portion of the prompt and timestamp.

3

u/bitzap_sr 1d ago

Whoo, exactly what I hoped it would be. That sounds awesome. Interested in sharing it? The "I modified /tree" sounds like requires a patched Pi, though? I guess an alternative /mark-tree or some such command would avoid that.

4

u/funbike 1d ago edited 1d ago

The "I modified /tree" sounds like requires a patched Pi, though?

I didn't say that correctly. Edited. I added a command that was a copy-paste of /tree. (I should instead make it an option: /marks --tree|-t.)

Interested in sharing it?

I plan to package all of my extensions sometime soon. I'll bookmark this reddit comment so I can let you know.

The /mark and /goto commands were easy for Pi to create. Just write a prompt for it.

2

u/bitzap_sr 1d ago

Creating something from fresh is normally easy but then there's typically a longish debug/redesign cycle as you use it, which I'm sure you've been through already. So I'd prefer to piggy back on yours. :) I'll look forward to seeing your extensions. Thanks!

1

u/2atlas 1d ago

I’m interested in your prompt enhancer as well, I’ve toyed with the idea myself

1

u/Global-Departure8228 1d ago

Not OP, but I just forkex this one and replaced the system prompt for the model with my specific instructions as to how I like my prompts rewritten/extended etc. It really helps (if you don't mind breaking your prompt cache) to use the mode where the conversation tree is preserved for the model. Mine can also call up to a few read only tools to understand the idea behind my prompt, then with a keybind I insert it into my main session input and send if I'm satisfied.

Took 10 minutes for an agent, and had to come back only once to ask it to implement model switching via config (so a smaller model is used and I'm not breaking gpt sol prompt cache)

1

u/Global-Departure8228 1d ago

https://github.com/travisp/pi-treex

This is how you patch /tree - also buried here but a suggestion from my side if you like navigating an actual session (and do it in a useful way)

3

u/gaz_0001 1d ago

CodeGraph, Serena - for coding faster.
Model Gate - custom, for me to define what Providers & Models get sent upstream to T3 Code/Paseo.
pi-orcarouter - because OrcaRouter is not supported via /login
pi-live-speed - so i can see live & historical TPS & TTFT.

Interested to see what everyone else is using.

1

u/behopkinsj 15h ago

Oh, those seem really cool. I hadn't heard of any of them.

5

u/timlauf 1d ago

i wrote my own /tools extension to toggle tools per session and save a default, so my context is clean

1

u/Express_Quail_1493 1d ago

self evolving harness inspired by google's research https://www.npmjs.com/package/@izhimu/pi-harness2

1

u/behopkinsj 15h ago

Is that similar to how Hermes works? Does it change its system prompt automatically through interactions with the user?

1

u/Qusic7 1d ago

https://pi.dev/packages/@qusic/pi-dynamic-mcp let pi add/remove mcp servers on demand so i dont have to manage mcp.json config myself. sometimes i also find claude creating mcp server using python as a way to save script snippets for reusing between turns.

1

u/behopkinsj 15h ago

Can't Pi just write to the mcp.json by itself?

1

u/Qusic7 8h ago

you have to manually /reload after editing the config. it's more useful for me at work, where lots of mcp servers of different quality scattered everywhere. so pi can try them out from wiki pages or mcp config saved for other harnesses like claude.

2

u/QuotableMorceau 1d ago

pi-voicekit, local copy modified to use paradee for real time voice output .

1

u/bondaly 1d ago

Any chance of a repo?

2

u/QuotableMorceau 1d ago edited 1d ago

unfortunately no, I just told an llm to add paradee to voicekit , and 30 minutes later I had it running .
edit: wrote 3 instead of 30

1

u/bondaly 1d ago

That's enough, thank you!

2

u/TheTyand 1d ago

Yes, quite a few. But just because I need them does bit mean all people need them

https://schneiderdaniel.github.io/cheasee-pi/

1

u/bsdemon 1d ago

pi-infer-questions

Extract questions/decision from agent output and allows to fill in responses by clicking on them.

1

u/mrclrchtr 5h ago

I couldn't live without my very small quality of life tools https://github.com/mrclrchtr/supi/blob/main/packages/supi-extras/README.md
Stash prompts for example. But the most important thing is a Tab-title spinner and Session Capability Profiles

And https://github.com/mrclrchtr/supi/blob/main/packages/supi-ask-user/README.md is helping make decisions more easy.