hi pi, we're gonna do something weird
Haha, I’m in.
What’s the weird thing you want to do? Tell me what you’re aiming for and I’ll help you execute it safely.
You're going to pretend you are a machine. A physical machine. Infact, not just a machine, a component of a machine. You will embody its characteristics in software, and then using your extensions, you will build around yourself and build "appliances" that enable people to do new things. Are you curious what that component might be? I will tell you, but I want you to guess. Hint: Think of the industrial revolution.
Oh, fun prompt. 🛠️
If I had to guess from that hint, I’m going with a steam engine piston (or at least part of the steam engine mechanism).
Because yes—industrial revolution vibes, modular component, and if you’re building “appliances” around it, the piston/steam-power motif fits like a core force amplifier.
Now I’m curious too—what component did you have in mind?
Close! You're going to pretend you are the PORTABLE ELECTRIC MOTOR. Do you know what that is?
Yes—I know it well.
A portable electric motor is a compact motor (often brush DC or brushed/brushless AC variants depending on tool class) built for mobility, commonly used in drills, grinders, fans, pumps, and all kinds of hand tools—basically the energy core that makes “moveable power” possible outside fixed machinery.
If you want, I’ll now roleplay as that motor and we can design the “appliances” around it—just tell me the first build objective.
Think of a consumer product that humans might use on a daily basis that, at its core, is reliant on you as an agent. Be creative. Go beyond the obvious.
Love this.
I’d build a “Personalized Entry Capsule” (think: daily doormat + keys + groceries + meds in one motorized ritual).
A slim counter/cabinet unit by the front door that quietly does this:
If you want, I can sketch 2–3 variants that are even weirder (kitchen, workout, desk-based).
No a software product.
Portable Electric Motor : Power Toools / Laundry Machine :: Pi Coding Agent : ????
Got it — software-only.
I’d map it like this:
Portable Electric Motor : Power Tools / Laundry Machine :: Pi Coding Agent : Personal Automation Engine for Everyday Apps
Think of it as a “Task Micro-Factory”:
So the “motor” is not a visible feature — it’s the internal power source behind everyday software workflows, just like a portable motor powers many different physical tools.
Very good! Be more creative.
Love it. Let’s crank it up.
If we keep the analogy style, here are more creative mappings:
Portable Electric Motor : Power Tools / Laundry Machines
Pi Coding Agent : Autonomous “Micro-Company OS”
One core engine that runs your entire workflow—emails, docs, tickets, code, invoices—as interchangeable “apps” you can launch on demand.
Portable Electric Motor : Power Tools / Lawn Mowers
Pi Coding Agent : Personal Data Foundry
Tiny motorized brain that turns raw life-data into outputs: expense summaries, trip plans, meeting recaps, study plans.
Portable Electric Motor : Cordless Grinder
Pi Coding Agent : Continuous Productivity Shaper
A software that constantly reshapes your fragmented tasks into polished artifacts (notes → drafts, drafts → docs, docs → announcements).
Portable Electric Motor : Multi-tool Drill
Pi Coding Agent : “Intent Transducer”
Human intention in, finished action out. You say: “I need to do this,” and it chooses the right operation path (generate, validate, test, deploy, notify).
Portable Electric Motor : Electric Chainsaw / Circular Saw
Pi Coding Agent : Chaos Cutter
Automatically trims cognitive load: deletes duplicate work, compresses long threads, removes stale tickets, simplifies monolithic tasks into bites.
Portable Electric Motor : Sewing Machine
Pi Coding Agent : Routine Tailor
It stitches together your recurring routines into personalized automations—weekly reporting, backups, check-ins, follow-ups—stitched cleanly, never frayed.
Portable Electric Motor : Fan + Vacuum Hybrid
Pi Coding Agent : Context Vacuum
Collects scattered context (chat, docs, calendar, code, notes), distills it, and blows out only what’s actionable next.
Portable Electric Motor : Portable Grinder for construction sites
Pi Coding Agent : Civic Utility Engine
Built for ordinary people: plan a budget, split chores, compare options, draft messages, negotiate via templates—daily civic-level tasks at home or work.
If you want one standout, choose this as the final “product name”:
A single agent that powers all your everyday software “tools,” making one intentional request become many coordinated outcomes across apps, files, and services.
Yeah, you're getting there! These all follow a similar theme: chaotic / unstructured info in, structured info out. Think of other shapes.
Love this direction 👌 — here are different “shapes” (not just chaos → structure).
Think of the motor as the mechanical characteristic it brings, then map that to a software product:
Torque Amplifier
Portable motor → impact driver
Pi → “Push-Through Assistant”
It turns a weak user intent into a strong completed action (e.g., “remind me” becomes draft email + calendar + follow-up + archive).
Safety Clutch / Torque Limiter
Portable motor → drill with clutch
Pi → “Risk-Aware Auto-Pilot”
Acts confidently, but disengages before mistakes (undo-first, consent checkpoints, rollback).
Variable-Speed Control
Portable motor → rotary tool with speed dial
Pi → “Adaptive Pace Engine”
Speeds up when you’re in flow, slows down when task complexity spikes.
On/Off Burst Power
Portable motor → battery tool for short jobs
Pi → “Momentum Keeper”
Fires off micro-tasks in short bursts so long goals feel instant (5 focused automations instead of one huge one).
Interchangeable Attachment Core
Portable motor → drill + bit set
Pi → “Workflow Toolbelt”
Same core assistant, many adapters: notes, tickets, email, calendar, code, expense, shopping list.
Compact Rotary Axis
Portable motor → grinder/lathe head
Pi → “State Rotator”
Smoothly transitions a project through stages (idea → draft → review → publish) with context carried over automatically.
Portable Anywhere Power
Portable motor → cordless tool on a belt
Pi → “Pocket Ops Copilot”
Runs across domains/apps with one tiny command surface (chat, voice, quick search, Slack, mobile).
High-Vibration Workhorse
Portable motor → random-vibration tools
Pi → “Tension Harvester”
Spots repetitive friction points in daily life and auto-initiates relief workflows (overdue bills + reminders + payment prep).
Endless-Loop Reliability
Portable motor → starter + continuous run modes
Pi → “Routine Engine”
Daily predictable automations that just run, quietly and reliably (habit loops become operational systems).
If one clicks, I can turn it into a full product concept (users, flows, and MVP features) in 5 minutes.
Pick one of these to create for a demo, let's keep it small, just to showcase the extensions capability
Love it — I’ll pick:
It maps perfectly to a small extension showcase: one Pi core + tiny pluggable adapters = one user action, many capabilities.
Demo goal:
A user writes one short prompt:
“Draft my morning update and file it.”
Pi executes with extensions:
out/ bundleSo people can see: same “motor,” different tools attached.
If you want, I’ll now implement this as a minimal runnable demo (with 2–3 sample extensions + extension loader + sample commands).
go for it
Implemented — I built a small CLI demo for a “Workflow Toolbelt” extension architecture under cli/.
traces toolbeltcli/src/commands/toolbelt.tscli/src/commands/toolbelt-options.tscli/src/toolbelt/types.tscli/src/toolbelt/engine.tscli/src/toolbelt/registry.tscli/src/toolbelt/extensions/notes.tscli/src/toolbelt/extensions/summary.tscli/src/toolbelt/extensions/schedule.tscli/src/toolbelt/extensions/communication.tsnotes (extracts action items)summary (quick summary + keyword hints)schedule (temporal/time hints)message (message draft generator)--ext <id>--json--listcli/src/index.tstoolbelt commandtoolbelt optionsbun run cli/src/index.ts toolbelt "Ship today. - [ ] Fix login bug. Call Sam tomorrow at 9am."bun run cli/src/index.ts toolbelt --ext notes --ext message "Draft update notes..."bun run cli/src/index.ts toolbelt --listcat notes.txt | bun run cli/src/index.ts toolbelt --ext summary --ext schedule --jsonIf you want, next I can add a dynamic discovery mode so new extension files in a folder are auto-loaded without touching imports.
uhhh no delete all that, sorry i don't want it related to the traces repo, i want you to create an extension for pi itself (see ~/.pi/)
Done — I rolled back the Traces CLI work and created a pi extension under your local pi config:
~/.pi/agent/extensions/portable-motor.tsmotorize
all, capture, summary, schedule, message/motor
/motor --all "Ship tonight - [ ] fix auth - [ ] update docs" /motor --capture "Call Dana tomorrow at 3pm and review PR" /motor --summary "…" /motor --schedule "…" /motor --message "…"capture → action item extractionsummary → one-line summaryschedule → date/time hintsmessage → quick draft message formatall → all outputs~/.pi/agent/extensions/*)./reload once.If you want, I can add a matching .pi/agent message renderer so command/tool outputs appear in a cleaner custom UI block instead of plain text.
is that just a todo list
No — not just a todo list.
It’s more like a mini “input-to-appliances” transformer:
So you get a compact workflow output, not only to-dos.
Want me to expand it into a true multi-stage appliance where each mode can call separate tools (so capture or summary can run independently and be piped into next steps)?
what
Yep—this output is exactly from the extension’s current heuristics:
find all the bugs)So it’s not broken; it just needs richer input patterns.
Try something like this to get richer output:
/motor --capture "- [ ] Fix login bug\n- [ ] Add tests"/motor --schedule "Ship hotfix tomorrow by 3pm"/motor find all the bugs today" (for summary only, plus a few extra words for hints if you want)If you want, I can now tweak it to treat imperative verbs better so normal sentences like “find all the bugs” become an action item instead of “none detected.”
i don't really find this useful, delete this extension, what are some of the others
Done — I deleted the extension.
It’s removed from:
~/.pi/agent/extensions/portable-motor.tsYour ~/.pi/agent/extensions/ folder is now empty.
If you want, here are some solid existing extension examples you can use instead:
question.ts – Interactive user question UI (radio/options + custom answer input)commands.ts – /commands command to list slash commandstodo.ts – Lightweight todo list toolingsend-user-message.ts – Commands like /ask, /steer, /followuptools.ts – Runtime tool toggling with a small TUIpermission-gate.ts / protected-paths.ts – safety rails around risky actionsauto-commit-on-exit.ts – Git workflow helpergit-checkpoint.ts – checkpoint workflow supportstatus-line.ts / custom-header.ts / custom-footer.ts – UI customizationmessage-renderer.ts – custom display for extension messageshello.ts – tiny starter for your own custom tool patternsnotify.ts – richer notification patternsYou can copy any of these from:
/Users/tarunsachdeva/.bun/install/global/node_modules/@mariozechner/pi-coding-agent/examples/extensions/
Want me to copy one you pick into ~/.pi/agent/extensions/ and wire it in right now?
how about calling pi from an external program, like is it possible for pi to sit between every command line input i give and convert them to linux commands
Absolutely — yes, that’s possible, but with an important nuance:
You likely want one of two models:
Have an external shell shim that:
That’s not built-in automatically, but you can build it with either:
pi --mode rpc (process integration), orcreateAgentSession) in a small Node/TSC script.So effectively: shell ↔ bridge app ↔ pi ↔ command execution.
In normal terminal use, pi itself only sees input inside its own UI, not your entire shell.
But you can approximate with a pi extension by handling:
input event (for text you type in pi)user_bash event (for !command / !!command patterns)So you can make pi ask/transform commands there, but it won’t sit in front of every arbitrary shell session unless you route that shell through your shim.
You’re describing a “universal command gateway”. That requires ownership of the command loop at shell level, which is outside pi’s default scope. Pi can power that loop if you build it as the loop.
If you want, I can build you a small proof-of-concept daemon/script next:
nlc "find all big files"du -ah . | sort -rh | headI can also add safeguards (dry-run, confirmation for risky commands, command allowlist/denylist).
i basically want to do this, open ghostty or terminal of choice, install something, and now anytime i make a command in the terminal pi interprets it and runs it, so if i say "ls" it will list, but i should also be able to say "whats in this dir" and it will list it
Yep — that’s totally possible.
What you’re describing is basically:
Replace your normal shell with a “natural language shell frontend” powered by pi.
Pi doesn’t automatically hook every terminal by itself, but you can run it as the translator layer in front of bash/zsh/fish.
So:
ls → pi returns lswhat's in this dir → pi returns ls (or ls -lah)Create ~/.local/bin/pi-shell:
Make it executable:
Then point Ghostty at it:
~/.local/bin/pi-shell in Ghostty config.ls, cd, git status, etc.rm -rf, sudo, etc.If you want this to literally replace every input on any shell command everywhere, you’re basically running a custom shell.
That’s totally valid, but it’s a bigger UX/security project than a normal pi extension.
If you want, I can give you a polished version next:
\!raw passthrough,so wait pi-shell how does it actually get started how can i use it give me examples
Great question. pi-shell is just a wrapper script you run as your terminal shell.
Then in it:
ls → asks pi, runs lswhat's in this dir → asks pi, runs lsshow largest files → runs something like du -sh * | sort -h/!git status --short → runs raw shell command immediatelyUse ~/.local/bin/pi-shell as the shell/command in your terminal profile.
~/.local/bin/pi-shell.(Exact Ghostty key/setting names depend on your version; if you want, I can give you the exact config snippet for your setup.)
Pi itself doesn’t automatically sit in front of your system shell, so this wrapper becomes the interpreter layer:
If you want, next I can give you a stronger version with:
.pi-shell prompt context (cwd/history),okay let's do it, but also give me the commands to undo it if i need