Skip to content

Repository files navigation

QuayDev

Isolated AI-assisted development facility using Lima VMs for sandboxed cloning and worktree-based workflows.

Prerequisites

  • Lima installed (brew install lima)
  • GCP application default credentials configured (gcloud auth application-default login)

Setup

1. Clone the repo and run setup

git clone <repo-url>
cd quaydev
./setup.sh

setup.sh will prompt for your quay fork URL and GCP project ID, generate an SSH key pair for the VM, and produce quaydev.yaml. Add the printed public key to https://github.com/settings/keys before starting the VM.

2. Create and start the VM

limactl create --name=quaydev quaydev.yaml
limactl start quaydev

This provisions a Fedora 43 VM with 8 CPUs and 24 GiB of memory. During provisioning it will:

  • Install build dependencies (git, tmux, nodejs, python3-pip, podman-compose)
  • Install Claude Code globally
  • Copy SSH keys from .quaydev-ssh/ into the VM
  • Bare-clone the quay repository

3. Shell into the VM

limactl shell quaydev

IDE Setup

VS Code

  1. Install the Remote - SSH extension.
  2. Add the following line to ~/.ssh/config on the host machine:
    Include ~/.lima/*/ssh.config
    
  3. In VS Code, open the Command Palette and run Remote-SSH: Connect to Host, then select lima-quaydev.

PyCharm

  1. Ensure the Include ~/.lima/*/ssh.config line from the VS Code step is in ~/.ssh/config.
  2. Find the SSH port for the VM:
    limactl show-ssh quaydev
  3. Go to File > Remote Development > New Connection and create an SSH configuration with host lima-quaydev and the port from the previous step.
  4. Set authentication type to OpenSSH config and authentication agent.

Stopping and deleting the VM

limactl stop quaydev
limactl delete quaydev

Running Playwright Tests

podman run --rm -it \
  --network host \
  -v $(pwd):/work:z \
  -w /work \
  mcr.microsoft.com/playwright:v1.57.0-noble \
  npx playwright test playwright/e2e/organization/org-mirroring.spec.ts

Troubleshooting

To inspect cloud-init provisioning logs inside the VM:

sudo journalctl -u cloud-init-main.service --no-pager

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages