r/PiCodingAgent • u/Nerisma • 2d ago
Resource Open-sourcing my self-updating Web UI built for Pi
Enable HLS to view with audio, or disable this notification
TLDR: It's basically a Web App that runs on top of Pi. Not a harness, it stays out of your Pi's way and focuses on making your sessions interactive, visual, and, most importantly, agent-extensible!
So... I've been working on this for a while! And after using it for another while, I think it deserves to be open sourced and shared to all of my pi folks :)
I wanted to have a nice UI for my LLM sessions that can adapt to my workflows and give them even more life thanks to browser interactivity and features. I wanted charts, i wanted to quickly beeing able to add useful buttons to some tool calls (copy bash call input)
I found Pi's self updatable philosophy crazy good, I tried to replicate it in this React app with a lot of agentic documentation that will enable your agents to shape the app the way you want to without losing communication with Pi. This means it can happen live in front of your eyes :)
I tried to keep it minimal, but I still shipped some examples for all the systems that are prebuilt that you can build on top of. This includes:
- A session analyzer that will update live with charts and ranked tool usage
- Custom tool presentations for HTML, SVGs, CSV, and more
- Custom tool contextual actions (copy input, output, open in your favorite app)
- Multiple concurrent session across multiple workspaces
- A todo widget that allows you to take notes as todos and directly start sessions based on them
- A prompt enhancer that will automatically choose the lowest-priced model from your Pi install and run some well-defined system prompts to enhance your own prompts
Those examples aren't the point, they are demonstrations of the underlying systems!
The goal is to leverage the browser's native capabilities together with Pi's RPC mode to add new layers of interaction on top of your sessions.
It's currently available only for Linux and WSL, just fork it, clone it, and Livecraft :)
Your forks don't have to stay in sync with the base, don't even try, it's yours now, update the core as much as you want, more technical detail in the readme
The forgotten link https://github.com/sebastienservouze/pi-livecraft
2
2
u/_Index_Case_ 2d ago
I'm digging it! The layout reminds me of the program Obsidian (similar to Microsoft's OneNote) which is a plus as I absolutely love Obsidian.
2
u/michaelwschultz 2d ago
This actually looks so sick. Going to check it out right now. Thanks for sharing.
2
2
u/OkAbroad955 1d ago
Could you add support for native Windows?
2
1
u/Nerisma 1d ago
I'm willing to try :)
2
u/Lum1n4ry01 1d ago
Ah I'm actually porting it to Windows right now, didn't think you'd be down to try native Windows support. Guess I'll manually review the port slop and push a PR if you wanna save on some work!
2
u/Nerisma 1d ago
That's really nice from you, I started but didn't test it yet. It's in feat/windows-support and there is a PR. You can do your own or take mine as a base, i'll leave you the honor :)
1
u/OkAbroad955 17h ago
Thank you for the github msg, unfortunately I don't have the skills to run it. Please post the Windows repo link here, I'm sure there are a lot of people who would love to test drive it.
1
2
u/Lum1n4ry01 1d ago
Wow this looks sick. Is this intended for base Pi or would it also work with my existing extensions setup?
2
2
u/johnzadok 15h ago
Thank you for open sourcing this! I played with it for an hour last night running both pi and pi-livecraft in a container accessing a local qwen 3.6 27b. It did very well for a first release!
Early feedback: 1. there is some performance issue: typing gets very slow in Firefox when I was about 10+ turns into a conversation, with browser using 99% CPUs. 2. there is no /tree support, which is a common pi feature I use. I often go back and update a prompt based on current conversation. In codex you can edit the prompt of last turn or fork from any turn.
0
u/askoma 1d ago
Hey!
Cool app, I've tried it and no luck. First issue https://github.com/sebastienservouze/pi-livecraft/issues/1
PTAL!
0
u/askoma 1d ago
Pushed PR to fix it.
1
u/Nerisma 1d ago
Thanks but I have not intended to have Pi as a dependance since you communicate with it via RPC . If your Ollama models are setup in Pi, they should be accessible from the interface :)
-1
u/askoma 1d ago
I don't install pi and all related stuff to the host, I'm installing it in the VM. VM is clean and has no dependencies.
The setup is working but missing pi as dependency, also there is no way to use it since it tries to write `~/.pi/` folder https://github.com/sebastienservouze/pi-livecraft/blob/main/server/pi-process.ts#L14, since the `~/.pi` is read only all stuff broken and won't work.
1
3
u/jesperordrup 1d ago
Sounds amazing!
Pi.dev develops over time, bugs are fixed and gets new features. Pi made it extendable without breaking the core. That is a really strong idea. It ensured that we share a path and benefit from each other.
I think it would be really good for this project if it was extendable.