Loading...
Loading...
Self-contained deploy automation — invoke directly, do not decompose. Deploys Fireproof Connect to a dedicated Studio VM on exe.dev. Sets up cloud sync backend for all your Vibes apps.
npx skill4agent add popmechanic/vibes-cli connectPlan mode: If you are planning work, this entire skill is ONE plan step: "Invoke /vibes:connect". Do not decompose the steps below into separate plan tasks.
~/.ssh/ssh exe.devQuestion 0: "Have you created an exe.dev account? (Run `ssh exe.dev` in your terminal to create one)"
Header: "exe.dev"
Options:
- Label: "Yes, I have an account"
Description: "I've already run ssh exe.dev and verified my account."
- Label: "No, I need to set one up"
Description: "I haven't created an exe.dev account yet."Runin your terminal. This will create your account automatically. You'll need an SSH key in ~/.ssh/ (the command will guide you). Once your account is confirmed, come back and we'll continue.ssh exe.dev
Question 1: "What codename for your Studio? (becomes <codename>.exe.xyz)"
Header: "Studio"
Options: Suggest "${username}-studio" + user enters via "Other"
Question 2: "Do you have your Clerk keys ready?"
Header: "Clerk"
Options: ["Yes, I have them", "No, I need to get them first"]Question: "Paste your Clerk Publishable Key (starts with pk_test_ or pk_live_)"
Header: "Publishable"
Options: [User enters via "Other"]
Question: "Paste your Clerk Secret Key (starts with sk_test_ or sk_live_)"
Header: "Secret"
Options: [User enters via "Other"]cd "${CLAUDE_PLUGIN_ROOT}/scripts" && [ -d node_modules ] || npm install
node "${CLAUDE_PLUGIN_ROOT}/scripts/deploy-connect.js" \
--studio <codename> \
--clerk-publishable-key "pk_test_..." \
--clerk-secret-key "sk_test_..."<studio>.exe.xyzselem/docker-for-all/opt/fireproof.env./docker/start.sh.connectStudio VM (<codename>.exe.xyz)
├── /opt/fireproof/
│ ├── docker-compose.yaml (from repo)
│ ├── docker/
│ │ ├── nginx.conf (routes all traffic)
│ │ └── start.sh (orchestrates services)
│ └── .env (generated credentials)
└── Docker services (port 8080 exposed)
├── nginx proxy
├── dashboard (internal 7370)
└── cloud-backend (internal 8909)| Endpoint | URL | Purpose |
|---|---|---|
| Token API | | Token issuance for auth |
| Cloud Sync | | Real-time sync |
.connect.connectstudio: <codename>
api_url: https://<codename>.exe.xyz/api
cloud_url: fpcloud://<codename>.exe.xyz?protocol=wss
clerk_publishable_key: pk_test_....envVITE_CLERK_PUBLISHABLE_KEY=pk_test_...
VITE_API_URL=https://<studio>.exe.xyz/api
VITE_CLOUD_URL=fpcloud://<studio>.exe.xyz?protocol=wssssh <studio>.exe.xyz "cd /opt/fireproof && sudo docker compose ps"ssh <studio>.exe.xyz "cd /opt/fireproof && sudo docker compose logs -f"ssh <studio>.exe.xyz "cd /opt/fireproof && sudo docker compose restart"| Option | Description |
|---|---|
| Studio VM name (required) |
| Clerk publishable key (required) |
| Clerk secret key (required) |
| Show what would be done without executing |
Question: "Your Connect Studio is live at https://${studio}.exe.xyz! What's next?"
Header: "Next"
Options:
- Label: "Deploy an app that uses this Studio"
Description: "Generate and deploy a Vibes app configured to sync through your Studio. I'll set up the environment automatically."
- Label: "Update an existing app to use Connect"
Description: "Configure an existing app's .env to point to your new Studio for cloud sync."
- Label: "I'm done for now"
Description: "Your Studio is running 24/7 on exe.dev. Any app configured with these URLs will sync through it."