Remix.run Logo
kstenerud 5 hours ago

This is what yoloAI does. Automatically.

    # Create a new sandbox copying . as workdir (default container, but you can choose vm)
    yoloai new mybugfix . --isolation vm

    # attach to it (it has tmux already)
    yoloai attach mybugfix

    # Chat with the bot inside...

    # Happy with its work? Diff it to be sure
    yoloai diff mybugfix

    # Happy with the changes? Apply them to your workdir
    yoloai apply mybugfix

    # All done? Destroy the sandbox
    yoloai destroy mybugfix
The agent stays isolated at all times. No access to your secrets (except what you want), no access to your workdir until you apply. You can also easily restrict network access.

https://github.com/kstenerud/yoloai

ori_b 5 hours ago | parent | next [-]

Spammy ai-generated self promotion.

kstenerud 5 hours ago | parent [-]

In what way?

This does the same thing as in the blog post, except that there are a LOT of gotchas and minutiae and some yak shaving involved if you want to keep doing it manually.

I've gone through the whole path the author has, and finally had to admit that it's too much fiddling around to do it manually. Easier to just have a cmdline tool that does it for you. That's why I built it in the first place.

creata 5 hours ago | parent | prev [-]

The part that worries me here is the diff. Does it happen in the host or in the guest? What code gets run when you run `yoloai diff`?

kstenerud 5 hours ago | parent [-]

It actually runs git (with hooks disabled) to generate the diff. It happens on the host when using copy mode, and inside the sandbox when using overlay mode.

The above example doesn't specify workdir mounting mode, so it would be copy, not overlay.

creata 5 hours ago | parent [-]

If it runs inside the sandbox and the guest is compromised, can't the guest just lie?

kstenerud 5 hours ago | parent [-]

Absolutely. That's why overlay is not the default.

creata 4 hours ago | parent [-]

That's... uh, an interesting approach to security.

kstenerud 4 hours ago | parent [-]

What is? Defaulting to the most secure method?