POC and demo scripts
Five demos run in under 15 minutes. Each one is copied from exe.dev’s docs, so the commands are the real syntax. Do a dry run the day before, because names and flags can change.
Sources: https://exe.dev/docs/what-is-exe, https://exe.dev/docs/api, https://exe.dev/docs/proxy, https://exe.dev/docs/sharing, https://exe.dev/docs/login-with-exe, https://exe.dev/docs/cnames, https://exe.dev/docs/customization, https://exe.dev/docs/faq/copy-files, https://exe.dev/docs/https-api, https://exe.dev/docs/integrations-github, https://exe.dev/docs/integrations-http-proxy, https://exe.dev/docs/internet-access, https://exe.dev/docs/standalone-vms, https://exe.dev/docs/pools, https://exe.dev/docs/repo-buttons.
POC success criteria (agree on these first)
| # | Criterion | How to show it |
|---|---|---|
| 1 | A new VM is reachable over HTTPS and SSH in minutes | Demo 1 |
| 2 | The app is private by default and shared on purpose | Demo 2 |
| 3 | Automation works without a human (HTTPS API) | Demo 3 |
| 4 | An agent uses GitHub without holding a token | Demo 4 |
| 5 | Cost is predictable | Demo 5 + Economics |
Demo 1: zero to HTTPS (3 minutes)
ssh exe.dev # first time: registration; check host key
ssh exe.dev new --name=demo # ~2 seconds to create
ssh demo.exe.xyz 'python3 -m http.server 8000 >/dev/null 2>&1 &'
ssh exe.dev share port demo 8000 # tell the proxy which port
open https://demo.exe.xyz/ # TLS done, auth done
- Say: “No IP, no certificate, no login page. The proxy picks a port, preferring 80, and
share portoverrides it” (https://exe.dev/docs/proxy). - Copying files:
scp file.txt demo.exe.xyz:~/(https://exe.dev/docs/faq/copy-files).
Demo 2: private by default, shared on purpose (3 minutes)
ssh exe.dev share show demo
ssh exe.dev share add demo colleague@example.com # Web access
ssh exe.dev share add-link demo # link for anyone you send it to
ssh exe.dev share set-public demo # whole internet
ssh exe.dev share set-private demo # back to private
- Show identity: in the app, read the
X-ExeDev-Emailheader. To force a login, visithttps://demo.exe.xyz/__exe.dev/login?redirect=/(https://exe.dev/docs/login-with-exe). - Custom domain (optional): CNAME
app.example.comtodemo.exe.xyz, then runssh exe.dev domain add demo app.example.com. Until it’s registered, requests get421 Misdirected Request(https://exe.dev/docs/cnames).
Demo 3: the HTTPS API (2 minutes)
ssh exe.dev ssh-key generate-api-key --exp=1d # copy the exe1... token it prints
TOKEN=exe1.PASTE_HERE
curl -s -X POST https://exe.dev/exec -H "Authorization: Bearer $TOKEN" -d 'ls --json'
curl -s -X POST https://exe.dev/exec -H "Authorization: Bearer $TOKEN" -d 'whoami'
- Say: “It’s the SSH API in a POST body. Scope a token with
cmdsand always setexp” (https://exe.dev/docs/https-api). - Mention the limits: a 30 s timeout, a 64 KB body, no stdin, and no pty.
Demo 4: an agent with GitHub but no token (4 minutes)
Prerequisite: the exe.dev GitHub App is installed on the account or org (https://exe.dev/docs/integrations-github).
ssh exe.dev new --sandbox --name=agent-1 --egress=integrations
ssh exe.dev integrations add github --name repo --repository OWNER/REPO --attach vm:agent-1
ssh agent-1.exe.xyz 'git clone https://github.int.exe.xyz/OWNER/REPO.git && ls REPO'
ssh agent-1.exe.xyz 'env | grep -i token || echo "no token on the VM"'
ssh exe.dev rm agent-1
- Say: “The VM cloned a private repo. The token is in exe.dev’s edge, not on the VM, and egress is locked to integrations” (https://exe.dev/docs/integrations, https://exe.dev/docs/internet-access).
- Shortcut: a repo button,
https://exe.dev/new?repo=https://github.com/OWNER/REPO, does VM, Shelley and clone in a single click (https://exe.dev/docs/repo-buttons).
Demo 5: capacity you can see (Work accounts, 3 minutes)
ssh exe.dev pool new build --cpus=4 --region=lax
ssh exe.dev new --pool=build
ssh exe.dev pool resize build --cpus=8 # grows now; >32 vCPU needs approval
ssh exe.dev pool resize build --cpus=4 # shrinking is immediate
ssh exe.dev team usage
- Say: “Users and VMs cost nothing. Capacity costs $0.105 per 2 vCPU unit-hour above what’s included, by the hour, only while it exists” (https://exe.dev/docs/pools, https://exe.dev/docs/billing/work).
Customizing the image (bonus)
ssh exe.dev new --image=myorg/my-custom-image:latest
cat setup.sh | ssh exe.dev new --setup-script /dev/stdin
Private registry images need --registry-auth (https://exe.dev/docs/customization, https://exe.dev/docs/private-image).
POC close-out checklist
- All five criteria shown, with screenshots
-
team usageorbilling usageoutput captured for the cost discussion - Limits discussed (see Competitive: honest limits)
- Next step: Personal, Work, or an Enterprise POC (the minimum is one host, and a POC first is welcome) (https://exe.dev/docs/enterprise)
- Demo VMs and pools deleted (
rm <vm>, thenpool delete <pool>, which refuses while VMs remain)