home / skills / openclaw / skills / exe-dev

exe-dev skill

/skills/bjesuiter/exe-dev

This skill helps you manage persistent exe.dev VMs by creating, configuring proxies, sharing access, and enforcing custom domains.

npx playbooks add skill openclaw/skills --skill exe-dev

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
1.8 KB
---
name: exe-dev
description: Manage persistent VMs on exe.dev. Create VMs, configure HTTP proxies, share access, and set up custom domains. Use when working with exe.dev VMs for hosting, development, or running persistent services.
author: Benjamin Jesuiter
---

> ⚠️ **Warning:** This skill was auto-built by clawdbot from the exe.dev markdown documentation. It's not tested yet — use with caution! I plan to test it soon. 🔜

# exe.dev VM Management

## Quick Commands

| Task | Command |
|------|---------|
| List VMs | `ssh exe.dev ls --json` |
| Create VM | `ssh exe.dev new` |
| Make public | `ssh exe.dev share set-public <vm>` |
| Change port | `ssh exe.dev share port <vm> <port>` |
| Add user | `ssh exe.dev share add <vm> <email>` |
| Share link | `ssh exe.dev share add-link <vm>` |

## Access URLs

- **VM**: `https://<vmname>.exe.xyz/`
- **Shelley agent**: `https://<vmname>.exe.xyz:9999/`
- **VSCode**: `vscode://vscode-remote/ssh-remote+<vmname>.exe.xyz/home/exedev`

## Proxy Configuration

Default port is auto-selected from Dockerfile EXPOSE. Change with:
```bash
ssh exe.dev share port <vmname> <port>
```

Access ports 3000-9999 via `https://vmname.exe.xyz:<port>/`

## Authentication Headers

When users authenticate via exe.dev:
- `X-ExeDev-UserID` — user identifier
- `X-ExeDev-Email` — user email

For testing, use mitmproxy to inject headers:
```bash
mitmdump --mode reverse:http://localhost:8000 --listen-port 3000 \
  --set modify_headers='/~q/X-ExeDev-Email/[email protected]'
```

## Custom Domains

- **Subdomains**: CNAME `app.example.com` → `vmname.exe.xyz`
- **Apex**: ALIAS `example.com` → `exe.xyz` + CNAME `www` → `vmname.exe.xyz`

## Full Reference

See [references/exe-dev-vm-service.md](exe-dev-vm-service.md) for complete documentation including pricing, Shelley agent setup, SSH key config, and FAQ.

Overview

This skill manages persistent VMs on exe.dev, letting you create, list, and configure long-running development or hosting environments. It provides commands to expose HTTP services, share access with users or public links, and configure custom domains and proxy ports. Use it to run development servers, host lightweight apps, or maintain persistent agents on exe.dev.

How this skill works

The skill issues SSH-based commands to the exe.dev service to create and manage VMs, control sharing settings, and adjust proxy ports. It maps container-exposed ports to secure https endpoints (https://<vm>.exe.xyz[:port]) and supports configuring subdomain or apex DNS records for custom domains. It also surfaces authentication headers inserted by exe.dev for signed-in users.

When to use it

  • Hosting small web apps or demo sites that need a persistent VM without full cloud infra.
  • Running long-lived development environments accessible remotely (VSCode remote, agents).
  • Exposing container ports over secure https with minimal configuration.
  • Sharing VM access with teammates via email invites or public links for demos.
  • Testing authenticated behavior by inspecting X-ExeDev-Email / X-ExeDev-UserID headers.

Best practices

  • Set the proxy port to the container port defined by EXPOSE or an explicit port (ssh exe.dev share port).
  • Use share add <vm> <email> for individual access and share add-link for quick public links when appropriate.
  • Configure DNS using a CNAME for subdomains and ALIAS/CNAME combination for apex domains to avoid downtime.
  • Limit publicly exposed services to necessary ports (3000–9999 supported) and secure sensitive endpoints behind auth.
  • Use mitmproxy or similar only in local testing to inject X-ExeDev headers; never expose injection proxies in production.

Example use cases

  • Spin up a persistent staging site for a feature branch and expose it on a custom subdomain for stakeholders.
  • Run a background agent (Shelley) reachable at https://<vm>.exe.xyz:9999/ for integrations and testing.
  • Develop inside a remote VSCode session using the provided vscode:// SSH remote URL to the VM.
  • Share a running demo with a teammate by adding their email or creating a public share link.
  • Quickly test authenticated flows by injecting X-ExeDev-Email headers in a local reverse proxy.

FAQ

How do I list my VMs?

Run ssh exe.dev ls --json to get a JSON list of your VMs.

How do I change which port is proxied to https?

Use ssh exe.dev share port <vmname> <port> to set the public proxy port.

How do I map a custom subdomain to a VM?

Create a CNAME record pointing app.example.com to vmname.exe.xyz; for apex domains use an ALIAS to exe.xyz and a CNAME for www to vmname.exe.xyz.