Goodbye Claude, Hello Pi: why a longtime user moved his main coding harness from Claude Code to the open-source Pi
Goodbye Claude, Hello Pi
21 September 2026 · #pi #claude
I’ve been a longtime Claude Code user, ever since it became available in the Claude Pro subscription plan over a year ago. I remember the first time I used it, feeling giddy as it spat out messy Python code for whatever random weekend project I was working on, all from a single prompt. I’m certain that in a few years we’ll all look back at its release as one of the major drivers of this new era of software development we’re in.
Despite this, due to an accumulation of many small frustrations, I’ve finally decided to retire it as my main coding harness and migrate my development setup to use Pi instead.
Someone at Anthropic must’ve caught wind… just a day after making my decision, they announced Claude Code would finally start supporting AGENTS.md files in an effort to get me to stay. Unfortunately, for me it was too little, too late.
Complaining
In lieu of a proper obituary, I’d like to take this time to say a few words about the things I liked least about Claude Code (and thus what I’m looking forward to avoiding with Pi).
The AGENTS.md thing kind of epitomizes the whole reason I decided to quit using Claude Code. Don’t get me wrong, having a ton of CLAUDE.md files scattered about various GitHub hobby repos is great guerrilla marketing. But it sucks for users to have to deal with copying or symlinking between the two formats.
Like the Luddite I am, I still prefer to review most of the code it churns out before I commit it. I use(d) Claude Code inside VSCode, and it lets you connect the harness to the IDE. This is nice because you can highlight text in a file and have it automatically included in the context when asking questions or requesting changes during a review.
Except you can only have one session “connected” to the IDE at a time. If you open a second tab to start another task while the first one works, it can’t receive the text selection events from the IDE at all. This has been reported at least as far back as December 2025… and closed as a duplicate of a totally unrelated bug.[^1]
Of course, you can always use the official Claude Code VSCode GUI extension, which does allow you to have multiple tabs open and load the text selection into the context of each. But this extension has plenty of problems of its own. Half of the built-in slash commands don’t work at all in the GUI. It doesn’t have any support for a custom status line. Subagent output messages are simply layered into the main chat thread in chronological order, which is a mess to read when more than one is running. I could go on and on.
In spite of all of these existing issues, it seems like Anthropic has worked at a feverish pace to pack more features into Claude Code without much care for quality or stability. Dynamic workflows, agent teams, ultrareviews – all great ways to help enterprise customers burn ever more tokens each day, but not really anything I want or need.
Alongside all of these feature releases, they always seem to be fiddling with things in ways that mess up my personal setup. At the time of writing, there have been 244 releases to Claude Code this year; over 3/4 of these changed the system prompt or tool descriptions, which can substantially change how the LLM performs (especially when these new instructions contradict user prompts or repo conventions).
And what are all those changes for? Despite chopping 80% of the system prompt, Claude Code still has way more overhead than Pi for seemingly no benefit. The default Bash tool’s description is almost 3,000 tokens, most of which is random stuff about using git and opening PRs on GitHub.[^2] The models already know how to do this without detailed instructions, by the way.[^3]
Looking Forward
This post has been a lot of hating. I’m sorry! That’s not my usual style, and I do think Anthropic has made a really cool piece of software here. I’m also not under any delusion that I would’ve done a better job if I were the one in charge of running Claude Code from the beginning. LLM coding harnesses are a very new space and being one of the first to innovate in a field is a really hard task. Later tools like Pi have the benefit of hindsight to see what works and what doesn’t, what’s a core feature and what can be cut.
Ultimately, CC feels like a product without a strong vision or direction. It’s as if a bunch of excited engineers and PMs are rapidly tacking on whatever features suit their workflow… but without consideration for how this might make things worse for other users. It seems like there isn’t someone high-up whose job is strictly to say “no” to these requests, which is incredibly important when it comes to product engineering. So, for now, I’m leaving.
I’m excited to lean more into Pi. The first few days required some finagling, but since then it’s been smooth sailing. I’m enjoying the stability, minimalist approach, and the extreme level of customizability. I’ve already written a couple of extensions to support my use cases, which I’m hoping to share soon after I’ve cleaned them up a bit. If you’re also feeling these frustrations, I’d highly encourage giving an open source harness a try!
[^1]: It’s not like there’s some huge technical roadblock to this either. After installing Pi, I wrote an extension to handle this very functionality across multiple open tabs in like 20 minutes.
[^2]: Bonus points for the fact that it instructs the model to use cat <<'EOF' which (prior to widespread rollout of auto mode) would always trip the manual review rules regardless of existing git command allowlists.
[^3]: If you assume 1 million DAU and 100M requests per day, trimming 1,000 tokens off of this could literally save millions of dollars in inference costs per year. Surely that’s worth some engineer’s time??
https://caleb.software/posts/claude-to-pi.htmlReposted. Will be removed on request. All rights belong to the original author.
More from this batch
Asahi Linux relicenses all repositories from MIT to GPLv2-or-later after in-development code was lifted from personal forks or rewritten with LLMs to hide its origin
In the Linux 7.3 progress report, Asahi Linux says permissive licensing is no longer viable: attempts were made to hijack and monetise its w…
Alex Bores: Congress should ban AI recursive self-improvement this year, citing METR’s Anthropic assessment
Bores argues that OpenAI (March 2028) and Anthropic staff (2027) both expect to automate AI research, that METR’s report suggests they are r…
OpenAI’s Tibo: no ChatGPT Pro plan has a 5-hour limit; Pro 100/200/500 get 10x/20x/50x Plus usage
Codex lead Thibault Sottiaux clarified the current multipliers (Pro 500 also gets ultrafast) and then asked whether a Pro 50 tier would make…
Robocurve: tampering with a robot’s camera feed misleads every frontier model tested into harmful actions
Robocurve defines perceptual attacks as blurring or AI-doctoring a robot’s video input, then asking for a task the model would normally refu…
字节 Seed 开放 Cola2 权重:先在连续潜空间里按语义片段「想」,再解码成文字的语言模型
改进什么:常规大模型逐 token 生成。Cola2 把文本动态切成语义片段,每段压成一个连续潜变量,由约 4B 参数的块因果 Diffusion Transformer 用 Flow Matching 生成潜变量块,再由带潜变量反馈的 token 解码器写出文字;推理时把已提交…
Apple 官方 Xcode 插件进入 Claude Code 插件目录:构建、测试、渲染 SwiftUI 预览、操控模拟器和真机
Anthropic 官方插件仓库的 PR #6338 于 11 月 6 日合并,作者栏是 Apple Inc.。按插件说明和社区整理,Claude Code 装上后可以构建、运行和测试 scheme,渲染 SwiftUI 预览,操控模拟器和真机,读构建日志和诊断,并搜索 Appl…
JPMorgan Chase CISO Pat Opet: security teams should evaluate abstracting company services from the internet
Opet asks why an unauthenticated, anonymous attacker’s agent should be allowed to interact with your systems at all, and urges teams to cons…
Zed:Atom 和 Tree-sitter 原班人马做的高性能多人协作编辑器,内置 AI 代理面板并支持 ACP 外接代理
Rust 写成,今日约 +1114,约 ★94376,是本期 GitHub 日榜上增量最大的开发工具。它本身不是新项目,但下面的 cc-remote 等工具都把 Zed 当作 ACP(Agent Client Protocol)客户端来用。许可证在抓取数据里未标明。
cc-remote:Claude Code 的模型跑在远端服务器,读写文件和执行命令留在你本机
基于 claude-agent-acp 的一处改动:只要服务器上装好并登录 claude,通过普通 ssh 连接,所有文件读写、编辑和 shell 命令都在本地会话目录里执行,本机不需要装 claude;Zed 等 ACP 客户端都能用。约 ★315,日均约 +45,TypeSc…
PhoneUse Local:给 AI 代理一台 USB 连接的真 iPhone,带网页控制台、实时画面、REST API 和 MCP
MIT 开源,Python,约 ★110。在 Mac 上用自然语言指挥 iPhone 完成地图搜索、外卖下单等操作,并能通过 MCP 接入代理。对需要做移动端 E2E 测试或 RPA 的团队是一个可本地部署的起点,但真机操作涉及账号和支付,接入前要设好权限边界。
Mnemos:让代理用自己的话记住你、记住做过的决定和犯过的错的 MCP 记忆服务,数据存在本机
Apache-2.0,Python,约 ★139。每次会话开始先读回记忆;记忆不用就会淡化,记忆之间有链接。作者展示的是帮他开发这个项目的 Claude 代理自己积累的 2226 条记忆。适合想给内部代理加「跨会话连续性」又不想把记忆交给云端的人。
NInfer:面向 RTX 5090 和 DGX Spark 的原生 C++/CUDA 推理引擎,带 OpenAI / Anthropic 兼容接口
支持 Qwen3.6-27B、Qwen3.6-35B-A3B、Qwen3.8-Flash-Next 和 GLM-5.3-Flash 等指定模型,提供 CUDA Graph 解码、MTP/DFlash 投机解码、共享前缀缓存,以及两台 DGX Spark 的张量并行。约 ★3290…