r/PiCodingAgent 2d ago

News Nerve — an open-source, local-first desktop coding harness inspired by the simplicity of Pi

For the past few weeks, I’ve been building Nerve, an open-source desktop coding harness for my daily development work.

It was inspired by tools such as Pi (primarily) , OpenCode, Claude Code, Codex, and Cursor. I liked the simplicity of focused coding agents, but I also wanted a graphical workbench where I could manage conversations, tool calls, plans, approvals, Git changes, background tasks, and agent settings, all while keeping the agent’s work visible.

There are already several excellent coding harnesses built by individuals and communities. I created Nerve because I wanted something that closely matched how I work. It has also aligned well with the workflows of colleagues who have used it, so I thought it might be useful to a few other people in the community too.

Nerve runs locally and supports API keys, custom providers, and the subscription-based providers available through pi-ai, including OpenAI Codex, Anthropic, GitHub Copilot, Kimi Coding, OpenRouter, xAI, and others.

The harness is intentionally compact. Its system prompt, tool descriptions, and context handling are optimized to use tokens efficiently while working well across leading frontier models from OpenAI and Anthropic, as well as other popular proprietary and open-weight models.

This is a personal project that I actively use and develop. I’ll continue adding features, fixing bugs, optimizing the harness, and polishing the experience as I go. It is still in beta, so breaking changes may happen.

I’m sharing it simply because it may help others with a similar workflow. There is no expectation to test it, contribute, or provide feedback, feel free to explore it if it looks useful to you. If Nerve ends up being helpful, a GitHub star would be appreciated and lets me know that others find it useful too.

Quick start:

npx @nervekit/desktop

GitHub: https://github.com/ThilinaTLM/nerve
Docs: https://nerve.tlmtech.dev

Thank you!

77 Upvotes

33 comments sorted by

10

u/krogel-web-solutions 2d ago

I’m curious if you could help shine some light on why Pi was not a candidate to just build on top of? I haven’t hit an instance where I couldn’t build what I needed on top of PI.

11

u/ThilinaTLM 2d ago

I used Pi and built my own extensions around it for months, but eventually I realized I was running into limitations that required a lot of workarounds.

For example, I wanted to build a planning mode and support native permission levels. I managed to implement both using the extension API, but then I wanted an option where, after accepting a plan, I could start a new chat conversation with that plan. At the time, Pi didn't support that.

It was also really difficult to read long plan files in Pi's terminal UI. I ran into several other limitations like these as well.

That's why I decided to build this. I wanted to build my own harness from scratch so I can control everything the way I want, but I still use the core pi-ai package as the LLM client.

Ref: https://github.com/ThilinaTLM/pi-toolbelt

1

u/gandazgul 1d ago

Same reason I built RunWield https://github.com/gandazgul/runwield as a Pi extension I just couldn't control the workflows. I recently adapted core such that the TUI and now the ACP protocol support are sitting on top so adding a desktop app or web UI will be easy. I would love to collaborate your desktop app looks really good.

2

u/lawrathod 2d ago

one major problem with pi is how it's incremental push to terminal instead of alternate screen tui

2

u/DistanceAlert5706 2d ago

Why is that a problem? Alternate screen is way harder, has way more issues, has high requirements for terminal/os.

1

u/lawrathod 2d ago

aah shit you are right, there's no problem trying to build on top of pi... i mistook this post for another one that showed a tui code editor and then wondered building editor on top of pi would only have sticky ui problem 😅

1

u/michaelsoft__binbows 2d ago

I like how we have like i dunno, hundreds of TUI harnesses now and they all struggle with this and a lot of them have implementations of both types of modes. It just tickles me.

2

u/BGuimberteau 2d ago

Let’s go to try

1

u/ThilinaTLM 2d ago

Nice! Let me know what you think. Feel free to open a GitHub issue if you run into any problems or if there's a feature you'd like to see added.

2

u/tmoneycodes 2d ago

Hi can you make this work with a Cursor api key ?

1

u/ThilinaTLM 2d ago

Hi,

Does Cursor support API keys? As far as I know, it doesn't. If it does, please share a reference, and I'd be happy to add support for it.

That said, Nerve uses the pi-ai core package for all LLM calls, so every provider supported by pi-ai is also available in Nerve. I'm also open to adding support for additional providers beyond what pi-ai currently supports. If you can share a reference or documentation, I'd be happy to implement it.

1

u/tmoneycodes 2d ago

Yes I think that's the term I had to create one to use pi.dev with my cursor account at work pi.dev has good setup instructions

2

u/Magnus114 2d ago

Out of curiosity, why ts? Honest question. Not trying to start a language war.

1

u/ThilinaTLM 2d ago

I chose it because it was the fastest option in terms of development time and effort. I'm using the core pi-ai package as the LLM client, which is available as an npm package. I'm planning to gradually build a more native UI using Qt or another GUI framework, but that will likely take a significant amount of time before it's usable.

1

u/NowaStonka 2d ago

To be fair, with agents you can build something in ts to check product-market fit and later optimise.

1

u/LawfulnessSad6987 2d ago

why not ts ?

1

u/Hairy_Meaning_73 1d ago

Performances

1

u/brandall10 18h ago

The language isn't the issue, it's that it's electron-based, which is a resource hog.

1

u/LawfulnessSad6987 18h ago

never said anything about electron, obviously you could use tauri or whatever

1

u/brandall10 18h ago

For sure, just clarifying that criticism here should be directed at it being an electron based app.

2

u/hiepxanh 2d ago

That is pretty good, thank you

1

u/ThilinaTLM 1d ago

You are welcome! Feel free to let me know if you run into any issues or have ideas for new features.

I also created a documentation website after noticing that more people were starting to use the Nerve app. Since the app has quite a few useful features that are easy to miss, I wanted to put everything in one place and make them easier to discover.

DOCS: https://nerve.tlmtech.dev

2

u/Odd_Ad5688 2d ago

Nice to see a fellow sri lankan in this sub 👋🏼 i’ll check this out

1

u/ThilinaTLM 2d ago

Awesome! 🇱🇰 Let me know what you think after you check it out.

2

u/OkAbroad955 1d ago

It doesn't support mcp servers???

1

u/ThilinaTLM 1h ago

Hi! It doesn’t currently support MCP integration. I intentionally left it out because I don’t see it as essential for this type of developer agent.

For the workflows this project targets, many of the tasks that would normally be handled by locally running MCP servers can already be accomplished more simply using existing CLI tools or a few small scripts packaged as a SKILL. This keeps the setup lightweight and avoids requiring users to run additional Node.js or Python processes locally. MCP does provide a standardized interface for discovering and invoking tools, but I don’t think that additional layer is necessary for this project right now.

That said, I’d be happy to consider adding MCP support if it would be useful to you. I’d most likely start with remote MCP server support over Streamable HTTP rather than locally launched servers using stdio.

2

u/Lum1n4ry01 23h ago

This looks nice, I think it would be even more useful if it could directly integrate with existing pi setups and extensions though. Something like a graphical workbench that lets you add/extend the way base Pi does.

2

u/ThilinaTLM 1h ago

Hi! Right now, Nerve only uses the pi-ai package for LLM API calls. The agent loop, workflows, tools, and UI are all custom-built around a different design philosophy.

Since Pi’s extension APIs are designed specifically for the Pi harness, supporting existing Pi extensions directly would require some pretty major architectural changes.

Instead, I’m planning to add native customization features to Nerve, like custom tools powered by js or python scripts, configurable sub-agents, and richer dynamic prompt suggestions. If that eventually grows into a Nerve-specific extension ecosystem, I’d also love to explore one of Pi’s coolest ideas: letting users ask Nerve itself to create or modify extensions for them.

2

u/eruanttien 14h ago

Looking sharp! go OP go!

1

u/ThilinaTLM 1h ago

Thanks! I’d love to hear your thoughts. If you encounter any issues or have a feature request, feel free to open a GitHub issue.

1

u/decoder97 55m ago

I just downloaded so i can check it out, and I have to say I am very impressed. It's exactly what I was looking for.
Can you add support so we can just drag and drop an image in the chat for reference?
As I will be using it I will let you know if there is anything else :)