Repository navigation
feat: add Pi provider integration via RPC #402
Description
Activity
yas before anything else pls 🫶
Reacted by Howaboua, Martin Bachl, lenstr, SeaJayCodes, Benjamin, spellitwithaph, Ilia Safronov, Lucas Netto, Juliano Farias, Carter Tran and 64 more- addedenhancementRequested improvement or new capability.Requested improvement or new capability.
on Mar 8, 2026 Could this use core
AgentSessionmode?Right at the top of Pi RPC docs it says:
Note for Node.js/TypeScript users: If you're building a Node.js application, consider using AgentSession directly from @mariozechner/pi-coding-agent instead of spawning a subprocess. See src/core/agent-session.ts for the API. For a subprocess-based TypeScript client, see src/modes/rpc/rpc-client.ts.
Could this use core
AgentSessionmode?Right at the top of Pi RPC docs it says:
Note for Node.js/TypeScript users: If you're building a Node.js application, consider using AgentSession directly from @mariozechner/pi-coding-agent instead of spawning a subprocess. See src/core/agent-session.ts for the API. For a subprocess-based TypeScript client, see src/modes/rpc/rpc-client.ts.
Think at this point you are not making a wrapper anymore, you're making a pi-desktop app.
Yes I realized this this morning, but also I know that Theo put everything into making this app efficient and performant (mostly in UI sense). This is then a completely architectural questions If something like this would even be wanted in T3 code. Considering sometimes a single instance of claude code or opencode can use more than 1GB or RAM, while I've seen Pi sessions run even the biggest sessions at 100-300MB, then putting them into one process, one could have a lot of sessions running without their computer breaking a sweat.
Think at this point you are not making a wrapper anymore, you're making a pi-desktop app.
But also technically if T3 code supports Pi once, it would probably be quite easy to make a ts file that runs all Pi sessions inside one process and exposes to T3 code normally.
I'm going to create a PR that adds the groundwork for this (no functionality changes yet) to keep it small and reviewable.
Reacted by Maxi Tromer, Ben Dataforxyz, John and Dr. Jose L. SalazarThis is super interesting :)
Perhaps would make sense to use https://github.com/svkozak/pi-acp instead of a pi specific implementation.
so this getting implemented or nay?
I moved over to Paseo to be able to work with Pi on the desktop.
Keep coming back here to see if this is implemented for T3 Code.
Someday... 🤞Reacted by Iorio Nicolas and FerasMaaliReacted by Daniel Bermúdez and FerasMaaliI moved over to Paseo to be able to work with Pi on the desktop. Keep coming back here to see if this is implemented for T3 Code. Someday... 🤞
Paseo looks nice actually. Why do you want to move away from it?
I made a fork based on this issue and added Pi support. I would open a PR if Theo would actually like us opening those, check the PR template. 😂
Anyway, here is my fork: MajesteitBart/t3code
Summary of what's added
Adds Pi Agent as a first-class T3 Code provider using Pi RPC mode.
- Adds Pi provider settings, driver registration, provider snapshots, dynamic model discovery, and provider-native thinking options.
- Adds a Pi RPC runtime and adapter that maps Pi JSONL events into T3 provider runtime events.
- Wires Pi sessions into T3's provider-scoped preview MCP browser surface through
pi-mcp-adapter, without falling back to Piagent-browseror standalone browser automation. - Adds Pi web/provider UX for provider selection, model selection, composer behavior, and chat rendering.
- Keeps Pi composer behavior aligned with shared T3 affordances for
/model, slash commands,$skill, and file/document context. - Blocks unsupported Pi image attachments before dispatch so drafts are preserved.
- Bridges supported Pi extension UI/user-interaction requests into T3 user-input flows.
Reacted by Jeremy GollehonReacted by Mike KeyI had just found this when I started working on it.
Reacted by Arnim Bleier1 remaining item
- added 6 commits that reference this issue
on Jul 5, 2026 Looking forward for official pi support in t3 code. Theo teased t3 code mobile app. Adding pi support before the official release of that would be a killer feature. I am running local models with small context window and pi is the only agent that is minimal and less bloated. Personally very excited for t3 code mobile app as that would fit in perfectly into my workflow.
Reacted by Mike Key and Nico@melounvitek I tried your gateway, and it has nice UI and I like how it integrates into existing Pi! I just opened it on my machine and all my Pi sessions were visible there, even my skills worked. I maybe will keep using it until something better will apear. Sad it's in Ruby, I do no understand why would anyone use Ruby in 2026? 😆
Reacted by NeodonMine is not Vibe Coded - I think I might open a PR - the main issue is - there is just no way to do a proper provider and it not be 1000 lines and I know how @t3dotgg feels about that. So probably not gonna happen. It's smaller than the OpenCode repo in the number of files added and touched - but I just don't see a way around it. Tried really hard to follow same conventions.
https://github.com/1337hero/t3code/tree/feat/pi-provider
The easier solution however would be to just offer a much smaller provider that doesn't cover everything - but you can't do that properly.
I use a local models to experiment. While I bounce between my Max 20X Claude plan and 100 OpenAI plan - the main reason I tinker with Pi is as a local model harness.
And it might be a lot easier to build out a provider for local models. I think that could be kept a lot smaller and tigther.
You just don't want some huge thing that is difficult to maintain for either developers or Claude.
Reacted by John BollenbacherAny updates on this from official maintainers?
Reacted by VaclavKalocI'm not sure Pi is on their radar.
I closed my PR as there is still more work to do. I might try again.
Hmm, looks like it's probably not gonna happen in a near future, right? :(
My shitty Pi-specific gateway I mentioned earlier actually got better (and is no longer in Ruby), I now use it as my daily driver. But having T3 code Pi support would really be great. Hope it is gonna happen eventually!
Reacted by StrammeicheHmm, looks like it's probably not gonna happen in a near future, right? :(
My shitty Pi-specific gateway I mentioned earlier actually got better (and is no longer in Ruby), I now use it as my daily driver. But having T3 code Pi support would really be great. Hope it is gonna happen eventually!
Yeah they said they're not adding providers right now: #4355 (comment)
Reacted by Vít Meloun, Oliver Mannion, p2p, Iorio Nicolas, Paul Batum, Illustar0, Tharun T, Coy Geek, tm, RayBytes and 1 more- locked and limited conversation to collaborators
on Aug 15, 2026



Implement Pi as a first-class provider in T3 Code.
There is already a working reference implementation on my fork that can be used for guidance:
IgorWarzocha#1
Do not treat that PR as something to merge directly. Treat it as a reference for architecture, failure cases, and scope.
The goal is to add Pi cleanly through T3’s existing provider/orchestration model rather than bolting on a Pi-specific path.
What to build
Add Pi as a real provider across the stack so that:
Implementation direction
Use Pi in RPC mode.
Do not embed Pi in a one-off way or create a Pi-only frontend flow. The implementation should fit the same general shape as the existing provider stack so future providers canfollow the same path.
The work should roughly cover:
Important constraints
Please keep the implementation aligned with how T3 already works.
Specifically:
Pitfalls to watch for
These are the main failure modes to avoid:
Those should not render as empty assistant messages in chat.
user-visible answer.
must clean up correctly.
on PATH.
cost or see warnings unnecessarily.
Scope guidance
An initial implementation does not need to solve every future provider concern, but it
should not paint the codebase into a corner.
A good result would:
Non-goals for v1
These do not need to be solved unless they fall out naturally from the implementation:
Acceptance criteria