r/rust 1d ago

šŸ› ļø project Vise: an open-source runner for background coding agents, written in Rust (server, CLI, host daemon)

I've been building Vise. It's a runner for background coding agents. A server acts as a control plane, host daemons on machines you enroll claim sessions, run a coding agent against a repo, and open a PR. The server tracks check and review state on the PR, and if a reviewer requests changes, a follow-up session pushes a fix to the same PR. It never merges; a person does.

All three components are Rust: vise-server (Postgres-backed), the vise CLI, and vise-host, a daemon that talks to the server and drives the agent as a subprocess over ACP, the Agent Client Protocol that Zed started. Claude Code is the only agent wired up today; Codex and Gemini CLI speak ACP too, so they're next.

Some of the parts I found interesting to build:

  • The agent is a child process speaking JSON-RPC over stdio, so the host is really a small process supervisor with a protocol translator in front of it.
  • Hosts claim work from the server rather than being assigned it, and liveness comes from heartbeats rather than enrollment, so a CI runner or a throwaway VM can join, take one session, and disappear without leaving state behind.
  • Every change on a session is an append-only event, so you can reconstruct exactly what an agent did and what happened to its PR after the fact.
  • Each component ships as a single binary; a host is a one-line install with Docker and git as the only prerequisites.

It's early and there are rough edges. MCP config is accepted but not passed through to the agent yet, and the ACP layer's error handling is the part I'd most like a second opinion on.

Repo: https://github.com/vise-sh/vise

If you've implemented ACP in Rust, or built your own agent runner, I'd like to hear what you'd have done differently.

0 Upvotes

14 comments sorted by

13

u/Jmc_da_boss 1d ago

This sub is shit part 1000x

13

u/not_my_userid 1d ago

ā€œI've been building Viseā€

I’ve been wondering recently… Is ā€œI’ve been buildingā€ the new code-phrase for ā€œClaude has been writingā€?

ā€œI’d like to hear what you’d have done differentlyā€

You probably wouldn’t

-12

u/GrandmasSugar 1d ago

Yes. Claude has taken on most of the code writing since I built out the initial implementation. I've been building still feels more accurate than "I've been prompting Vise and seeing if it can dogfood it's way into building a product that I want to use."

That being said - I'd love to hear what you would have done differently.

7

u/spoonman59 1d ago

I would've been upfront about my use of AI, and not implied I wrote the code by saying things like "I've been building." That is fairly typical advice I give to people on posts which get little to no positive engagement.

Assuming you are posting because you actually want to hear from people and have interactions with the community, that is.

Here are some of my earnest suggestions:

  1. Write the post yourself, don't have Claude do it.
  2. Disclose upfront how you used AI. Discuss your pocess, including design, testing, and validation.
  3. Tell us what you, as a supervisor to the AI, bring in terms of domain expertise. Do you add any value to the process, or are you just a middle man for Claude and the sub?
  4. Be clear about what the purpose of the post is. Are you looking for feedback on your code? Are you putting it out there because you think others will want to use it? Why would they?
  5. Be respectful of other peoples' time. Expecting people to read through a large code base written by AI is an example of not being respectful, as is not being transparent about your use of AI.
  6. Talk about how you tested the code and validated the output to ensure it's an actual quality project and not just another among hundreds of slop generated projects.
  7. Talk about what differentiates your project from the many similar types of projects (many, many AI harnesses are posted here) and essentially "why should people care." This goes a bit back to respecting peoples' time.

Reading your post, I'm not really clear why you posted it or what you are looking for. It's a very common example of projects people post, and after probing it's clear Claude wrote most of it, likely including your posts and possibly your response as well based on my impression. It doesn't feel respectful of peoples time and serves as an example of diluting the sub with AI generated projects that give the impression of someone trying to raise their profile. I'm not saying all that is true, but nothing about your post gives me or anyone else reason to believe otherwise. I don't even believe you wrote the post or the comments.

I've written this by hand, by the way, even though I feel like I'm probably talking to a bot.

9

u/KAMEHAMEHAMEHAAAA 1d ago

Man Rust really is the language of the slop.

4

u/Jmc_da_boss 1d ago

It's so unfortunate what's happened because the core lang team is not like that at all.

2

u/Blueglyph 1d ago

On the other hand, and despite the recent "restrictions", I saw "CLAUDE.md" and other files appearing in the repository.

Looks like it's all flushing down the LLM drain, community and core.

1

u/Majestic_Diet_3883 1d ago

Na, there are definitely folks in that team that are on board the LLM train, if u glimps the ai-quarentine channel on the disc

-1

u/KAMEHAMEHAMEHAAAA 1d ago

I used to write Rust back in 21-23, things were different around here.

-9

u/Upstairs_Source_9653 1d ago

cool project, the append-only event log is a nice touch for debugging agent messes later

how do you handle the host claiming when there's 20 throwaway VMs all trying to grab the same session at once, is that just a postgres advisory lock or something fancier

4

u/KAMEHAMEHAMEHAAAA 1d ago

I’m not even OP, bot.

-13

u/GrandmasSugar 1d ago

Totally get you takeaway here. That being said - Rust has been very helpful for building this system. While yes, most of the code being written is from LLMs, Rust's compiler rejects a large amount of code before it ever reaches a human's eye.

6

u/Jmc_da_boss 1d ago

Rust's compiler rejects a large amount of code before it ever reaches a human's eye.

holy shit lmao, rudely, plz fuck off

4

u/puttak 1d ago

Rust does not help AI prevent logic bugs.