cmux-backend
manaflow-ai/cmux
Backend TypeScript and Cloud VM development rules for cmux using Effect, Postgres, and provider integrations.
What is cmux-backend?
Guidance for backend TypeScript development in cmux, covering Effect-based route handlers, Cloud VM lifecycle management, Postgres migrations, and provider integrations. Use when editing API routes, services, database code, auth, or Cloud VM infrastructure.
- Enforces Effect as the default for backend TypeScript in route handlers and services touching providers, databases, auth, rate limits, retries, or telemetry
- Defines thin Next.js route handler patterns: parse request, run one Effect program, map typed errors to HTTP responses
- Specifies Cloud VM Postgres setup via Vercel Marketplace AWS Aurora with OIDC/RDS IAM authentication
- Manages Cloud VM pricing gates through Stack Auth team payment items
- Provides migration and local dev workflows using bun commands and Docker Postgres
- Documents secret management for E2B, Freestyle, and R2 provider integrations
How to install cmux-backend
npx skills add null --skill cmux-backend- Familiarity with TypeScript and Next.js route handlers
- Access to ~/.secrets/cmux.env for provider API keys (E2B_API_KEY, FREESTYLE_API_KEY, R2 credentials)
- bun package manager and Docker for local Postgres development
- AWS credentials and Vercel Marketplace setup for production/staging RDS access
How to use cmux-backend
- 1.Load provider secrets: source ~/.secrets/cmux.env before running build or test scripts
- 2.Use Effect as the default for backend TypeScript in web/app/api/**, web/services/**, and scripts touching providers or databases
- 3.Keep Next route handlers thin: parse request, run one Effect program, map errors to HTTP responses
- 4.Run migrations with bun db:migrate:aws-rds-iam for production/staging; never run migrations from Vercel build or route startup
- 5.Configure runtime environment variables: CMUX_DB_DRIVER=aws-rds-iam, AWS_ROLE_ARN, AWS_REGION, PGHOST, PGPORT, PGUSER, PGDATABASE
- 6.Reference effect-boundaries.md for route handler and service patterns; reference cloud-vm-control-plane.md for VM lifecycle and Postgres design
Use cases
- Building or modifying API routes that interact with Cloud VM providers or databases
- Setting up production/staging Postgres migrations with AWS RDS IAM authentication
- Implementing retry, timeout, and telemetry logic in backend services using Effect
- Configuring Cloud VM pricing gates and usage event tracking in Postgres
- Managing local development with Docker Postgres while keeping production on AWS Aurora
- Backend TypeScript developers working on cmux
- DevOps engineers managing Cloud VM infrastructure and Postgres migrations
- Full-stack developers building API routes and services for Cloud VM features
- Teams implementing auth, rate-limiting, and telemetry in backend systems
cmux-backend FAQ
Use Effect for backend TypeScript in route handlers, services, and scripts touching providers, databases, auth, rate limits, retries, timeouts, or telemetry. Use plain TypeScript only for trivial data shapes, constants, config files, frontend React code, or small glue where Effect adds unnecessary ceremony.
Run migrations with bun db:migrate:aws-rds-iam for production and staging. Never run Drizzle migrations from Vercel build or route startup; migrations must run separately.
Store E2B_API_KEY, FREESTYLE_API_KEY, and R2 credentials in ~/.secrets/cmux.env. Load them with: set -a; source ~/.secrets/cmux.env; set +a before running build or test scripts.
Postgres is the source of truth for VM lifecycle, active VM limits, idempotency, and usage events. Cloud VM backend logic must stay in Vercel route handlers and Effect services backed by Postgres.
Local development uses Docker Postgres derived from CMUX_PORT via bun dev. Production and staging use Vercel Marketplace AWS Aurora PostgreSQL with OIDC/RDS IAM authentication.
Full instructions (SKILL.md)
Source of truth, from manaflow-ai/cmux.
name: cmux-backend description: "Backend TypeScript and Cloud VM development rules for cmux. Use when editing web/app/api, web/services, backend scripts, Cloud VM lifecycle, provider integrations, Postgres, Stack Auth pricing gates, migrations, or provider image build scripts."
cmux Backend
Use this skill for backend TypeScript, Cloud VM, provider, database, auth, rate-limit, retry, timeout, or telemetry work.
Core rules
- Default backend TypeScript to Effect under
web/app/api/**,web/services/**, and backend scripts that touch providers, databases, auth, rate limits, retries, timeouts, or telemetry. - Keep Next route handlers thin: parse the request, run one Effect program at the boundary, map typed errors to HTTP responses, and treat unexpected defects separately.
- Use plain TypeScript only for trivial data shapes, constants, config files, frontend React code, or small glue where Effect would add ceremony without improving failure handling.
- Cloud VM backend logic must stay in Vercel route handlers and Effect services backed by Postgres.
- Do not reintroduce Rivet or a raw actor protocol for Cloud VM unless a later architecture doc explicitly changes the control plane.
- Production and staging Cloud VM Postgres use the Vercel Marketplace AWS Aurora PostgreSQL OIDC/RDS IAM path.
- Runtime env names are
CMUX_DB_DRIVER=aws-rds-iam,AWS_ROLE_ARN,AWS_REGION,PGHOST,PGPORT,PGUSER, andPGDATABASE. - Run production/staging migrations with
bun db:migrate:aws-rds-iam; never run Drizzle migrations from Vercel build or route startup. - Local development keeps using the
CMUX_PORT-derived Docker Postgres path frombun dev. - Cloud VM create pricing gates should use Stack Auth team payment items when enabled.
- Postgres remains the source of truth for VM lifecycle, active VM limits, idempotency, and usage events.
Secrets
Cloud VM build, test, and local dev scripts use provider secrets from ~/.secrets/cmux.env.
E2B_API_KEYFREESTYLE_API_KEY- R2 upload vars used by
web/scripts/build-cloud-vm-images.tswhen creating Freestyle snapshots
Load them with:
set -a
source ~/.secrets/cmux.env
set +a
~/.secrets/cmuxterm-dev.env is for local Stack/web env and does not contain the provider build keys. bun dev sources ~/.secrets/cmux.env first when present, then ~/.secrets/cmuxterm-dev.env so cmuxterm-specific Stack settings override broader cmux secrets. The web dev loader still accepts the legacy ~/.secret/cmuxterm.env and ~/.secrets/cmuxterm.env paths while machines migrate.
Detailed references
- Read references/effect-boundaries.md when shaping route handlers, services, typed errors, retries, or dependency injection.
- Read references/cloud-vm-control-plane.md when touching VM lifecycle, migrations, Postgres, provider idempotency, or pricing gates.
Related skills
More from manaflow-ai/cmux and the wider catalog.
cmux-billing
Agent skill from manaflow-ai/cmux.
cmux-browser
Browser automation for cmux webviews: open sites, interact with pages, wait for changes, extract data.
cmux-custom-sidebar
Agent skill from manaflow-ai/cmux.
cmux-customization
Customize cmux configuration, actions, layouts, and terminal behavior for end users.
cmux-debug-windows
Manage cmux debug windows and related debug menu wiring for Sidebar Debug, Background Debug, and Menu Bar Extra Debug. Use this when the user asks to open/tune these debug controls, add or adjust Debug menu entries, or capture/copy a combined debug config snapshot.
cmux-debugging
Debug logging, menu, and runtime pitfalls for cmux terminal development.