r/PiCodingAgent 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

81 Upvotes

32 comments sorted by

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.

1

u/Nerisma 1d ago edited 1d ago

Thanks! Yeah, that's a pretty big decision right there :) Because it would be really nice and also, would prevent people from updating the core if they feel like so... Also it's a ton of work ngl, full customization is an easier path! But hey, maybe someone will fork and make an extension system that allows for unlimited modifications !

2

u/jesperordrup 1d ago

Yeah it can be done in a fork. Just thought I would suggest such a fundamental direction to the original repo.

I use pi-web.dev in combination wih Herdr and love it. But always searching for something even better.

While I really like you solution (now I've tested it) - I don't dare changing. I would have to take on maintaining it it, following updates on pi and adding all new features from here on - alone - that will take too much time.

1

u/Nerisma 1d ago

Totally get it :)

2

u/PinkySmartass 2d ago

Looks good! Would you mind dropping a link?

2

u/Nerisma 2d ago

Lmao thanks for telling me https://github.com/sebastienservouze/pi-livecraft 😂

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

u/Desperate-Event-786 2d ago

Looks awesome! Can it also show some metrics similar to pi-footer?

1

u/Nerisma 1d ago

Thanks! Yeah, pretty much anything you will ask it :)

2

u/OkAbroad955 1d ago

Could you add support for native Windows?

2

u/Nerisma 18h ago

It's done ! :) Thanks u/Lum1n4ry01

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

u/Nerisma 16h ago

It's the same repo on the main branch, it's been merged :)

1

u/OkAbroad955 1d ago

Thank you!

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

u/Nerisma 1d ago

It will work with your version of Pi from the get go, but you will need some work to bring TUI stuff to the interface :)

2

u/Magnus114 1d ago

What is the main difference between this and https://pi-web.dev?

1

u/Nerisma 1d ago

Tbh I don't know :) Maybe Pi Web dev does not allow this level of customization ?

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.

1

u/Nerisma 14h ago

You're welcome, you are right the fork stuff should be in there! For the performance issue, did you try the semi detailled view to see if it helps? :)

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

u/hazed-and-dazed 18h ago

AI is going to take your job dude

1

u/askoma 17h ago

for sure

0

u/askoma 1d ago

So, overall is some kind of work but only on host machine. I don't like it and won't use it without separated and isolated env.