selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
Arrakis logo

Self-host Arrakis

release-36

MicroVM sandboxes for AI agent code execution

BetaOpen SourceAGPL-3.0
curl -sSL https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh | bash
Updatedlast year
LanguageGo
Setup difficultyAdvanced
Stars
893
Port
7000 (REST API of arrakis-restserver)
Requires
Cloud-hypervisor
Sandbox desktop accessed over VNC, showing the pre-installed Chrome for computer use

What is Arrakis?

Arrakis is a self-hosted sandboxing platform for running AI-generated or otherwise untrusted code. Each sandbox is a MicroVM booted by cloud-hypervisor that runs Ubuntu with a code-execution service and a VNC desktop, so agent code stays isolated from the host and from other agents, while overlayfs guards the guest root filesystem. Clients — humans and AI agents alike — drive it through a REST API served by arrakis-restserver, a Go CLI, the py-arrakis Python SDK, or an MCP server, and Arrakis manages port-forwarding so sandbox GUIs, including the pre-installed Chrome used for computer-use workflows, are reachable without extra setup. Its signature capability is snapshot-and-restore: checkpoint a sandbox mid-task and later rewind to that exact state, which is useful for MCTS-style agents and for explaining elaborate agent runs. Guest images are customized by editing a Dockerfile, and a prebuilt Linux kernel ships out of the box, though you can pass your own. Installation is a curl-piped setup.sh that fetches prebuilt binaries on a Linux host with /dev/kvm; the REST server must be started with sudo (for iptables networking) and defaults to port 7000. It is licensed AGPL-3.0 with a commercial-licensing option, is Linux-only, and restoring a snapshot reuses the original VM's IP, so the old VM must first be stopped or destroyed.

Should you self-host Arrakis?

Arrakis scores 45/100 on selfhost.directory (how scoring works) and ranks #138 of 209 in AI Agents. It has 893 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is AGPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Orca (91/100, 108 446 stars). It scores higher overall, so compare the two before you pick. See Arrakis vs Orca side by side.

Features

  • Automatic port forwarding
  • CLI Client
  • Code execution service
  • MCP server support
  • MicroVM isolation
  • Python SDK
  • REST API
  • Sandbox networking and SSH
  • Snapshot and restore
  • Ubuntu guest image
  • VNC desktop in sandbox

Arrakis README

How to install Arrakis

Install Arrakis with Linux

Linux machine with /dev/kvm (cloud-hypervisor only works with /dev/kvm on Linux)
curl -sSL https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh | bash
ls arrakis-prebuilt
cd arrakis-prebuilt
sudo ./arrakis-restserver

Prebuilt setup script downloads binaries and images; the REST server needs sudo for iptables guest networking. Only Linux machines with /dev/kvm are supported.

How to configure Arrakis

  • bridge_ip10.20.1.1/24IP address of the host bridge.

    IP address of the host bridge.

  • bridge_namebr0Linux bridge on the host to which sandbox tap devices are attached.

    Linux bridge on the host to which sandbox tap devices are attached.

  • chv_bin./resources/bin/cloud-hypervisorPath to the cloud-hypervisor binary on the host.

    Path to the cloud-hypervisor binary on the host.

  • guest_mem_percentage30Percentage of host memory given to guests.

    Percentage of host memory given to guests.

  • host0.0.0.0Address the arrakis-restserver listens on (hostservices -> restserver).

    Address the arrakis-restserver listens on (hostservices -> restserver).

  • kernel./resources/bin/vmlinux.binPath to the kernel used for all MicroVMs.

    Path to the kernel used for all MicroVMs.

  • port7000Port the arrakis-restserver REST API listens on (hostservices -> restserver).

    Port the arrakis-restserver REST API listens on (hostservices -> restserver).

  • port_forwards5901, 5736-5740Guest ports automatically forwarded on the host (5901 as gui, 5736-5740 as code).

    Guest ports automatically forwarded on the host (5901 as gui, 5736-5740 as code).

  • rootfs./out/arrakis-guestrootfs-ext4.imgPath to the rootfs used for all MicroVMs.

    Path to the rootfs used for all MicroVMs.

  • server_host127.0.0.1IP at which the arrakis-restserver is running (client section).

    IP at which the arrakis-restserver is running (client section).

  • server_port7000Port at which the arrakis-restserver is running (client section).

    Port at which the arrakis-restserver is running (client section).

  • state_dir./vm-stateWhere each MicroVM's runtime state is stored.

    Where each MicroVM's runtime state is stored.

  • stateful_size_in_mb2048Size in MB of the stateful storage for sandboxes.

    Size in MB of the stateful storage for sandboxes.

Arrakis releases & version history

More in Security

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…