Provision the infrastructure your app needs and ship it from your terminal.
Assembler is a TUI-first CLI for existing applications. It scans the project you already built, plans the required infrastructure as a task DAG, executes provider actions with checkpoint and resume, and stores local run state in .assembler/state.db.
The public beta is honest about its current shape: Next.js, Astro, and static sites deploy through Vercel today. Static deploy intents can also target Cloudflare Pages explicitly with --target cloudflare-pages.
Assembler does not generate application code or scaffold projects.
npm install -g @mariusdale/assemblerOr run without installing:
npx @mariusdale/assemblerFrom an existing Next.js, Astro, or static site project:
cd your-app
assemblerThe terminal UI is the primary experience:
- Add provider credentials from
Credentials. - Run
Doctorto check local readiness and provider access. - Use
Launchto review and execute the deployment plan. - Use
Status,Preview,Domains, andEnvironment Syncfor follow-up work.
Direct commands are available for automation:
| Command | Description |
|---|---|
assembler launch [--target <target>] |
Scan, provision, deploy, and verify the current project |
assembler plan [--target <target>] |
Show the launch plan without executing it |
assembler doctor |
Check local readiness and configured provider credentials |
assembler status [runId] |
Inspect deployment history or a specific run |
assembler resume <runId> |
Resume a failed run from its checkpoint |
assembler teardown [runId] |
Delete resources created by a launch run |
assembler env pull [runId] |
Pull Vercel env vars into .env.local |
assembler env push [runId] |
Push .env.local or .env vars to Vercel |
assembler preview [branch] |
Create a branch preview environment |
assembler preview-teardown [branch] |
Tear down a preview environment |
assembler domain add <domain> |
Configure Cloudflare DNS and register the domain with Vercel |
assembler creds add <provider> <token> |
Store provider credentials locally |
assembler creds list |
List configured credential providers |
| Area | Supported today | Planned |
|---|---|---|
| Frameworks | Next.js, Astro, static sites | Remix, SvelteKit, generic Node |
| Deployment targets | Vercel, Cloudflare Pages for explicit static/edge targets | Netlify, Docker-based targets |
| Providers | GitHub, Vercel, Neon, Clerk, Stripe, Sentry, Resend, Cloudflare DNS | Supabase, Railway, Fly.io, PostHog, Plausible, Linear |
| State | Local SQLite in .assembler/state.db |
Optional dashboard and team sync |
See ROADMAP.md for the milestone plan and the first contributor issues we want to open.
Credentials are stored locally in .assembler/state.db inside the project you run Assembler from.
assembler creds add github <github-token-with-repo-scope>
assembler creds add vercel token=<vercel-token>
assembler creds add neon <neon-account-api-key>Optional providers are added the same way when your project uses them:
assembler creds add clerk token=<secret-key> publishableKey=<pk_...>
assembler creds add stripe <stripe-secret-key>
assembler creds add sentry <sentry-auth-token>
assembler creds add resend <resend-api-key>
assembler creds add cloudflare token=<cloudflare-api-token> accountId=<cloudflare-account-id>See Credential setup for scopes and provider links.
Project scan
-> planner rules and provider detection
-> task DAG
-> executor
-> ProviderPack actions
-> SQLite state and recovery commands
The planner uses framework strategies that emit deployment intents. Deployment targets, starting with Vercel and Cloudflare Pages, decide whether they can satisfy those intents, so frameworks and hosting targets can evolve independently.
| Compared with | Assembler focuses on |
|---|---|
| Terraform | SaaS-native app launch flows without asking users to manage state files |
| Vercel CLI | Hosting plus database, auth, email, DNS, previews, env sync, and teardown |
| Bash scripts | Idempotent provider actions, resumable runs, rollback hooks, and local history |
- Documentation index
- Architecture
- Astro framework support
- Cloudflare Pages target
- Public beta guide
- Credential setup
- Release checklist
- Support runbook
- Contributing
- Security policy
corepack enable pnpm
pnpm install
pnpm lint
pnpm typecheck
pnpm build
pnpm testRun the local CLI:
./bin/assembler --helpAssembler is maintained in the open and has a roadmap designed for contributors. Start with CONTRIBUTING.md, then look for issues labeled good-first-issue or pick up one of the milestone slices in ROADMAP.md.
MIT