Run Cuttlefish locally in containers with podcvd

podcvd is a command-line tool that runs each Cuttlefish instance group inside its own rootless Podman container. podcvd has the same command-line interface as cvd, so you can run podcvd create or podcvd fleet just as you would run cvd create or cvd fleet.

Advantages of podcvd

The advantages of podcvd are described in this section.

Isolation between instance groups

With cvd, all instance groups on a host share the same network ports, sockets, and runtime state. With podcvd, each instance group runs in a dedicated container, so groups can't conflict with each other or with other software on the host.

Multiple clients on one host

Several clients, such as multiple developers or AI agents, can run their own Cuttlefish devices on the same host at the same time. Setting the PODCVD_CLIENT_ID environment variable scopes podcvd commands to the instance groups of one client, so a command such as podcvd clear from one client doesn't affect the devices of another. The Cuttlefish repository also provides a podcvd skill that lets AI agents create, control, and clean up devices.

Identical interface to cvd

Despite these differences, podcvd has exactly the same command-line interface as cvd. You can use the same commands and flags that you already use with cvd, so there's no learning curve when you switch to podcvd.

Get started

The podcvd documentation is maintained in the android-cuttlefish repository on GitHub:

  • podcvd: Host requirements, installation, host setup, and PODCVD_CLIENT_ID
  • Container images: The cuttlefish-orchestration container image that podcvd uses
  • podcvd skill: The skill for AI agents