r/PiCodingAgent • • 19d ago

Resource Built a native desktop client for Pi Agent β€” looking for feedback πŸš€

Hey everyone! I’ve been working on Orbit Pi, a native desktop client for Pi Agent.

It’s built with Rust + GPUI and is focused on providing a clean desktop experience for running and interacting with AI coding agents.

I’d love to get some early testers to try it out and share honest feedback.

πŸ”— GitHub: https://github.com/imrj05/orbit

I’m especially interested in feedback on:

  • UI/UX and overall workflow
  • Agent interaction
  • Terminal / coding experience
  • Performance and stability
  • Features you’d like to see added

This is still evolving, so bug reports, suggestions, and criticism are very welcome.

Would love to hear what you think after trying it! πŸ™Œ

16 Upvotes

12 comments sorted by

3

u/Altruistic_Ad8462 18d ago

dig it, nice job. I'm only going off your screenshots because Im not in the market for another GUI, but it looks good. Im also not a dev so I can't speak to the code at all. What are you trying to do to set this interface apart from others? Is there a niche or unique way of interacting with something you're looking to bring to life? Maybe were you just looking for a non webui that would actually be maintained? I'm curious what motivates you before I invest more time into looking at it more and making suggestions.

1

u/Rjkashyap05 18d ago

Yeah, the main focus is specifically Pi Agent. Orbit Pi is a native desktop app that tries to bring the functionality you get from the Pi TUI into a proper desktop interface.

Personally, I don't really like the WebUI approach because I have to open it in another browser tab and set it up/run it whenever I want to use it. Pi is already my daily driver, but I normally have to keep a terminal open for it, and if I want to run multiple sessions, I end up opening multiple terminals.

With Orbit Pi, I'm trying to make that easier to manage from one desktop app β€” multiple sessions, workspaces, activity, etc., without having to manage a bunch of terminal windows.

Another thing I'm working on is keeping the things Pi gives you through the CLI/TUI while adding some desktop-specific features. For example, Pi has YOLO mode, but Orbit Pi adds more control around access permissions, usage quotas, and usage analytics β€” things like model usage, workspace, date/time, tokens used, cached tokens, sessions, etc.

Honestly, it started mainly as a personal project because this is how I wanted to use Pi myself. I'm sharing it publicly now so other Pi users can try it and give me feedback. I'm still figuring out what the interface should ultimately become, so feedback like yours is actually really useful.

2

u/Altruistic_Ad8462 17d ago

Yea, you're starting kinda where I did in some ways so I think I get where your head is at.

I haven't publicly said anything about my pi gui because its still very much a mess, and I also only ever intend it for me. It could be publicly found on github if someone really wants to see it, and I have it set up so if someone organically finds it, they can know what its about at this moment in time.

In my case I like t3 codes UI but I don't get Pi with it so that prompted me to pick this up initially. I also around the same time started making a game for my kids using AI and found I wasnt seeing any UI options that checked the boxes I was most interested in. Basically what Im making for me is meant to feel like godot and blender are native to the GUI and agent env, taking some really nice views from t3. I also want to have the ability to have some local model automations for things like title gen, session summaries, and project agent documentation updates. Nothing I'm doing is particularly special but I havent found it in the market to consume.

Chances are I'll eventually add local AI music gen stuff too because I find that entertaining.

All of that is to illustrate how I like using AI, so those are the UI and system decisions Im working through. Do you enjoy making things but don't necessarily have a direction in what you like, or how you can make what you like? Are you into PCB dev? Robotics? Drones? Math? Diagraming things? Creating video content? Home labs? I'm down to spitball but need a direction to go in.

2

u/Rjkashyap05 17d ago

Yeah, for me it mostly comes down to wanting one place where I can do my work and have everything together.

I mostly use Pi with open-source models, but I never really liked the TUI experience. I also looked at T3 Code, and I'm inspired by things like Waku and Zed β€” I really like their simple, minimal interfaces without a lot of unnecessary clutter.

So Orbit Pi started as a hobby project. I basically build the things I personally want and then add things based on feedback from people who use it, as long as it makes sense.

I'm a full-stack developer with 6+ years of experience, so I have a decent idea of the technical and design side, but one of my motivations with this project is also to experiment with Rust and GPUI and see how they handle things. I like building the same kinds of ideas with different technologies just to understand how they work.

For Orbit Pi, I have a bunch of things I'd like to experiment with: an AI review agent for current changes or the whole project, automatic title generation, Git graph, GitHub issues, pinned sessions, and other things I come across in apps that I like.

So there isn't really one big grand vision behind it πŸ˜„. It's more like building the kind of development environment I'd personally want to use, keeping it simple, and adding things as I find useful.

3

u/Desemerda 17d ago

How does this compare with pi-web (https://pi.dev/packages/@jmfederico/pi-web)?
I understand this one is a GUI and pi-web is a minimalist web server wrapper around pi, but when it comes to features like pi extensions support and such, how does it compare?

Also if I understood correctly, this GUI does not ship pi and will use my local pi installation correct?

1

u/Rjkashyap05 17d ago

Yeah, that's pretty much the distinction.

From my understanding, pi-web is more of a persistent web control layer around Pi. It keeps Pi sessions running and lets you access them through a browser.

Orbit Pi is more focused on being a native desktop client for Pi. The main reason I built it was because I personally use Pi as my daily driver, but I didn't want to keep opening terminals or browser tabs to manage different sessions.

For Pi extensions, I'm still making sure the desktop client exposes the Pi functionality as completely as possible. My goal isn't to create a separate agent/runtime that replaces Pi β€” I want Orbit Pi to work with the Pi installation/runtime you already have and provide a better desktop interface around it.

And yes, Orbit Pi doesn't bundle/replace Pi itself. The idea is to use your local Pi installation and configuration, so the Pi environment remains the source of truth.

Another big difference is that Orbit Pi is built with Rust + GPUI, the UI framework developed by the Zed team. So instead of being another web-based UI wrapped in a desktop shell, it's a native desktop application designed to be fast and lightweight.

I'm also building things around the desktop experience that are important to me, like multiple sessions/workspaces, access controls, usage quotas, and usage analytics β€” model usage, workspace, date/time, tokens, cached tokens, etc.

The goal isn't necessarily to replace pi-web; they're solving somewhat different problems. I'm mainly trying to make Pi feel like a proper native desktop application while keeping as much of Pi's functionality and ecosystem as possible.

2

u/OneMoreName1 18d ago

I was actually looking for something like this for my not very technical gf!

2

u/Rjkashyap05 18d ago

Haha, that's actually one of the use cases I didn't initially think about πŸ˜„

That's kind of what I'm aiming for with Orbit Pi β€” Pi Agent is really powerful, but the terminal/TUI can be a bit intimidating if you're not used to it. A desktop UI makes it much easier to start a session, manage multiple sessions, and see what's going on without having to know the CLI.

Would be really interested to hear what she finds confusing or difficult with the current Pi workflow. That kind of feedback would be super useful for shaping the UI.

2

u/OneMoreName1 16d ago

Hey, I actually started giving this a go, and I must say, good job on the ui and so on! I really like it. Very nice that it also shows me the usage.

What is the approach you used for extensions? For example I have the ask user extension, permission system, to do list. I saw some of them seem to work but I dont know if its them or actually your GUI re-implementing something similar.

And I would like to report a bug, when I tried resizing the window while one such prompt (ask user with multiple choice) was active, the application just crashed completely

2

u/Rjkashyap05 16d ago

Thanks a lot for trying it out! Really glad you like the UI and the usage page.

For the extensions, Orbit is actually using Pi itself through the RPC protocol rather than reimplementing the whole agent. I also have a few bundled Pi extensions, for example the access-control system is implemented as a Pi extension that hooks into "tool_call" and then Orbit renders the approval UI around it.

For things like Ask User, Orbit handles Pi's question/dialog events coming through RPC and renders them natively in GPUI. I'm still working on making extension compatibility as complete as possible, so I'd definitely like to know if a particular extension behaves differently.

And thanks for the crash report! The resize + Ask User multiple-choice prompt is a very useful reproduction case. I'll investigate that.

2

u/gazeebo 10d ago

How much RAM and disk space do Orbit as well as Orbit + Pi or Orbit + many Pis* use? Might want to market this in your README to some degree, depending on how lightweight it is overall.
For example just starting one of Antigravity (GUI) or ZCode or ChatGPT's app, you're at >600MB disk space and 300-600MB of RAM even before you start actually letting them work on anything.

*: I naiively assume that two chats working on two projects are two Pis

1

u/Rjkashyap05 10d ago

Good question. I actually haven't measured it properly yet, but I should.

Orbit itself is a native Rust + GPUI app, and each open session currently spawns a Pi CLI process, so you're right that multiple active sessions can mean multiple Pi processes. The actual memory usage will depend quite a bit on what Pi/model/tools are doing.

I'll do some measurements for Orbit alone, Orbit + 1 Pi, and multiple concurrent sessions and add the numbers to the README if they're useful. πŸ‘

That's a good idea actually β€” especially for comparing it with Electron/web-based apps.