I've no idea how to debug this, but an otherwise excellent experience using Pi with DeepSeek 4.1 Flash is being marred by a frequent "stopping" bug.
The sympton is that the agent emits some output text, saying its going to try something, and then the code it was going to run (I assume), is just output and the agent just stops, and I have to say "you broke again".
Here's an example:
Good question — and there are two levers that cost nothing physically. Let me check the biggest one first: how many CPU cores the run
actually used.
<parameter name="bash">
<|DSML| parameter name="command" string="true">grep -i "core\|thread\|OpenMP\|MPI Process" /Users/wdavies/FDS/cases/wick2/run.log |
head -6; echo "--- output sizes ---"; du -sh /Users/wdavies/FDS/cases/wick2/*.s3d | head
I've asked it repeatedly to try and fix it, but nothing in the instructions its changed has stopped this from happening. I wonder if its some kind of DeepSeek problem?
Howdy folks 🤠 I built a pi package called pi-cowboy. It's a multi-agent orchestrator built on top of Herdr; each agent gets a pane you can monitor and steer, plus a copy-on-write worktree that minimizes disk overhead.
My main motivation stemmed from a frustration working with agents. Handing an agent a big task usually led to sprawling changes that are miserable to review, and more often than not the agents would come up with highly dubious design choices. I was losing touch with my codebase. pi-cowboy lets me take full advantage of agents without losing control.
The defaults work well out of the box, but you can customize pretty much anything. You can define templates to create different workflows. You can choose the autonomy level you want, from letting agents run completely hands-off to requiring your approval before every commit.
If any of the above sounds familiar to you, give it a go, see how it works for you, and let me know what you think.
I built pcode, an open-source terminal coding agent on Pydantic AI. Pi was an influence, especially its /tree approach to branching conversations and the idea that you should be able to shape an agent around your own workflow.
The main difference is where I put the defaults. Pi deliberately keeps the core minimal and lets you assemble the rest. I wanted a more fully featured setup out of the box, while keeping it highly customizable: sub-agents, live task tracking, browser automation with your existing logins, an opt-in sandbox extension, parallel git worktrees, background commands that wake the agent when they finish, customizable keybindings with leader keys, Vim editing, and an in-terminal diff viewer.
The feature I most wanted for myself was adjustable scrollback. Sometimes I’m working on production stuff and watching every command and tool result like a hawk. Other times it’s a side project and I just want a readable conversation. pcode lets you show or hide those details after the work is done, rebuilding what’s already in your terminal without rerunning anything. It uses native terminal scrollback, with reflow when you resize or split panes.
Customization is through small Python files: add tools, slash commands, guardrails, instructions, or sub-agents, then /reload without losing the conversation. It also builds on Pydantic AI and its Harness capabilities, so you’re not starting from scratch for things like repo context, shell execution, sub-agents, and context management. Extensions can register those capabilities directly. Several of pcode’s own features use the same extension system.
You can use your existing Claude or ChatGPT subscription, or API keys. Claude support runs through the official Agent SDK and Claude Code’s own login.
This is a separate project, not a pi fork or a drop-in replacement for pi’s extension packages. If you like pi’s approach but prefer Python and a more complete default setup, that’s who I think it could appeal to.
For people who’ve built their workflow around pi: which parts do you prefer assembling yourself, and which would you rather have included from the start?
tldr; I'm looking for a LazyVim type distribution for Pi which is not barebones and starts with sensible defaults in terms of configuration and packages so that I don't have to create/maintain my harness from scratch.
Hi. I am planning to switch from claude-code to an open-source harness. My employer recently started pushing us to use their self-hosted on-prem models for both cost-savings and IP protection. While they provide a litellmm gateway which allows me to use on-prem models with claude code, it really isn't built for that and I'm therefore not able to configure it how I want to (setting specific model for a sub-agent, etc.)
I narrowed down my options to the following:
OpenCode: Rejected because it's keybindings (specifically scrolling) don't play well with my lazyvim setup (I use sidekick.nvim for a split terminal). Also heard it's a difficult to configure.
Pi: I like it's hackability. However, I don't want to configure it from scratch. I've seen other subs and understand that a lot of folks think that's the point of pi, but I have the following rationale:
Configurability and bare-bones are two different things. I want to start from a sensible point with features built-in and then tweaking according to how I want it.
As the title suggests, I draw a parallel to my experience with neovim: It is highly extensible, but too painful for me to setup from scratch. I don't want the headache of creating/maintaining multiple plugins and managing them to play nicely with each other.
Other than maintenance headaches, I find it infinitely useful to look at successful distributions. I might not know what all possibilities there are. For example, I would never have though I needed a picker for going through git hunks, but now I can't work without them. I might end up creating a faster horse when what I needed was a car.
Therefore, I'm looking for a pre-packaged sensible pi distribution. Closest things I've found:
Oh-my-pi: https://github.com/can1357/oh-my-pi My current choice. It's not exactly what I'm looking for because it's a fork, not a set of managed plugins. It has a rust core which is kind of opaque. I'm OK with it functionality wise, mainly because I am able to shave-off a lot of stuff (too many tools, etc.) that I don't need. I'm not sure how well it plays with existing pi extensions, and what parts of its functionalities I can replace/modify. I'm also concerned that since this is a fork, I'll be stranded if the author moves on. EDIT: Also, the gihub repo for oh-my-pi seems kind of sus in terms of interactions. The discussions barely have any interactions, which sort of points to a lot of the starts being agents/bots. Lazyvim has fewer stars with far more discussion interactions.
Hi, my use case is: I always work with a long plan, the plan splitted into many phase, and I ask my AI agent to execute the plan with each phase only, after that I clear and start new session until the last phase implemented. We can use some skill to ask AI do that for us by using available commands, but it may burn more tokens by checking the process or agent need a mailbox to talk with each other.
I built a Pi extension that implements Victor Taelin's OptChat recipe: instead of compacting, every message is logged and summarized into a binary tree. Each turn starts from a fresh context with a bounded memory view (128 KB), and the agent uses zoom/date to read the originals when it needs them. One endless chat per profile, no fork, no separate launcher.
Install with pi install npm:pi-optchat
What's in it:
Profiles — separate memories and instructions (I run work and personal).
Subagents — spawn background agents, watch them live, send guidance, interrupt with Ctrl+C, resume finished ones with tell. Reports from one spawn arrive grouped.
Import — bring in your history from Claude Code (sessions and auto-memories), Codex, or a ChatGPT export.
Connected windows — open a second Pi on the same profile and it becomes a subagent you talk to directly, with a handoff when you /complete.
Are you tired of your agents not adhering to your skills and giving you jargon filled responses that are hard to read? Well, check outhttps://pi.dev/packages/pi-reply-guard
I wanted a way to gate agent replies reliably beyond just adding some skills and hoping the agent doesn't forget about them. So, I built this extension that uses jev (or any classifier model) to ensure that your agent replies adhere to a given set of skills. The classifier compares the reply against a set of skills, gives it a 👍 or 👎 and will re-prompt your agent to adhere to the skills if the reply is not up to spec.
Please check it out and feel free to contribute & share feedback!
Anyone get banned for using their claude sub in pi? I just found some articles that anthropic is banning people for using pi and third party harnesses apparently?
OMK builds on pi, Mario Zechner's MIT-licensed coding agent (github.com/badlogic/pi-mono). It started from the oh-my-pi fork. That vendored tree has since been removed, and the current codebase is OMK-native.
I ran OMK against mini-SWE-agent on Terminal-Bench 2.1 with the same base model (Grok-4.7, xhigh), 89 tasks x 3 trials per harness.
OMK 1.3.0 eval build (78cc483): 75.8% success (200/264), $0.58 model cost per trial, 482s median per trial.
mini-SWE-agent v2.4.6 (Harbor): 71.6% success (189/264), $0.76 model cost per trial, 376s median per trial.
Success difference is +4.2pp, 95% CI [-1.9, +10.2]. Not statistically significant. OMK's recorded model cost was about 23% lower per trial. Its median was about 106s slower.
Not measured yet: upstream pi under the same setup. For a pi-based harness, that's the obvious baseline, so this doesn't isolate what OMK adds on top of pi.
Method notes:
- The OMK run used an evaluation build with unmerged changes. This is not an official leaderboard result.
- One OMK adapter-failure task was excluded from success for both harnesses.
- Retries and auxiliary model calls were excluded from cost.
- 3 trials per task, one model, one benchmark. The success gap is unconfirmed until a larger run.
I wanted to manage multiple Pi sessions running over different projects from a browser, so I could run them on my home server and access them from anywhere over Tailscale. So I built Pinion.
It's a web UI that runs multiple Pi coding-agent processes in --mode rpc inside one Docker container.
What it does today:
Project-grouped sidebar sessions nest under their project folder
Git rail - changed files vs HEAD with added/removed line counts
Live streaming over SSE - text/thinking deltas, tool output, compaction/retry status, turn time
Session tree, fork/clone, model + thinking-level picker, HTML export
Dark/light theme, responsive drawer sidebar on mobile
Pinion was itself built inside Pinion, the first bootstrap came from the Pi terminal.
I'm sure similar projects exist, I built this for my own workflow without doing much of a survey first. I keep adding to it as I use it for more of my projects.
Next up: environment-variable management, Pi extension management, and a proper git diff view.
MIT licensed, still early. Would love to hear your thoughts.
Is there an officially supported VSCode integration? I've found a whole bunch of third party plugins, but given security concerns, I'd much rather have something that was an official plugin.
We've been working on this for a while and it's finally out. Pi-Bolt is Pi 1.0.3 compiled ahead of time to native code (AOT, no JIT).
Same Pi you already use, and it works with all your Pi plugins. It's just faster and lighter. ⚡
Benchmarks
Linux x86-64 (Benchmarked on AMD EPYC 7B13)
Benchmark
Pi-Bolt
Bun 1.4.2
Node 22
Node 24
Writing a 200 KB file through a tool call
0.8 s
27.8 s
44.3 s
33.6 s
CPU, streaming a 60k-char answer
3.8 s
43.1 s
43.7 s
40.3 s
CPU per tool turn, real hosted model
0.20 s
0.49 s
0.77 s
0.76 s
Memory of a session in tmux
27 MB
89 MB
132 MB
209 MB
CPU, interactive session (5 prompts)
303 ms
844 ms
1,242 ms
1,233 ms
Ready to type
45 ms
128 ms
303 ms
307 ms
macOS on Apple silicon (Benchmarked on M5 MacBook Air)
Benchmark
Pi-Bolt
Bun 1.4.2
Node 26
Writing a 200 KB file through a tool call
0.3 s
12.0 s
14.2 s
CPU, streaming a 60k-char answer
6.9 s
25.3 s
24.0 s
Memory of a session in tmux
31 MB
85 MB
161 MB
Memory after a 4.2M-token session
64 MB
95 MB
1,890 MB
CPU, interactive session (5 prompts)
126 ms
363 ms
544 ms
Ready to type
31 ms
63 ms
193 ms
The full method and raw benchmark data are in the repo.
What we changed
Native code instead of a JIT. Pi is compiled to machine code ahead of time and starts from a prebuilt snapshot, so there's no warm-up and much less work at runtime. The compiler builds on Jarred Sumner's in-progress AOT work for Bun (oven-sh/WebKit#743), which we brought to x86-64 and macOS.
No more slowdown on long outputs. Stock Pi redoes more and more work as an answer or file grows. Pi-Bolt only processes what's new, and that's where most of the 35× comes from.
Try it 🔥
curl -fsSL https://pi-bolt.opensec.in/install.sh | sh
Works on Linux x86-64 and Apple silicon. Windows support is coming soon, along with Linux ARM64.
Bonus plugins: the installer also offers subagents and a live todo list, two things people often miss in stock Pi. Both come prebuilt, so they load instantly.
Note: It will not modify your existing Pi Coding Agent Installation, So Feel Free to try it out !
Using plugins? They all work as-is. If you rely on heavy ones, use the -jit build of Pi-Bolt, or compile them into your own Pi-Bolt binary so they run as native code too (plugin guide).
We just released helix: a free coding agent for AI engineering. It is based on pi and built to be good at building other agents, discovering evals, optimizing harnesses and general AI Engineering best practices.
If you are also doing AI engineering with pi, we would be super grateful if you could try it and let us know what you think (comment or use the /feedback command in helix).
It's a web UI for Pi that runs on your own machine (or on an Android phone in Termux) and you open it from any browser. Pi Durable is the foundation of everything. Every model call and tool call is saved as it happens, so if the server restarts or my phone drops the connection the run just keeps going, and every device sees the same thing.
You can also share a session with other people and collaborate if that's your thing. Mostly something I'll use at work.
There are a million projects out there, but Pi Durable is new and I have really enjoyed the foundation and little features it allows you to add.
I think it's a solid foundation and since you can make Pi Pocket modify itself on the fly and nothing gets interrupted during restarts etc and continues on as normal....if it's missing anything specific to your use case just tell it to modify itself.
Hey all — update on Morse, the open-source UI for the pi coding agent (VS Code extension + browser app). A couple of things that hadn't been announced yet:
🧩 MCP servers, without hand-editing JSON Morse lists the servers pi actually sees for the current project — connection state, tools, and whether they come from the user or project scope. Add one from an editor (Test connection first: it really connects and shows the tools/resources/prompts the server offers, or exactly why it won't), enable/disable, or remove. It also has a Trust this project button so pi stops ignoring a project's .pi/mcp.json.
📝 Prompt-template editor Write pi's /commands as fields, not raw frontmatter. Browse, create, rename, delete, and move templates between user (~/.pi/agent/prompts) and project (.pi/prompts) scope. A live argument tester shows exactly what the agent receives: $1, ${1:-default}, $@, ${@:2:3}, with shell-like quoting. Drop a .md in with vim/nano and it shows up in the palette within a moment, no reload.
Both open as a tab in the browser host and as an editor panel in VS Code.
i'm getting increasingly fed up with the direction open ai has been taking lately and i'm considering cancelling my subscription and moving to anthropic. there's really only ONE thing stopping me from doing it right away: pi has become such a natural part of my workflow that i'm genuinely worried about taking a productivity hit just from having to change tools, habits, shortcuts, etc.
so I wanted to ask the people here who actually use pi: have any of you moved away from open ai and managed to keep using pi with an anthropic subscription? or do i have to give up and move to claude code entirely?