LaunchStack CLI is a TypeScript command-line tool for managing deployment workflows, project launch configuration, environment switching, provider selection, deployment history, rollback visibility, local secrets, Docker scaffolding, and GitHub Actions workflow generation.
It is built as a lean DevOps utility for developers who want a simple, local-first way to prepare and standardize deployment workflows across projects.
- Project initialization with
launchstack.config.json - Config validation
- Environment switching
- Deployment provider management
- Build and deployment workflow execution
- Deployment history tracking
- Rollback target lookup
- Local secrets management
- Git metadata tracking during deployments
- Docker file generation
- GitHub Actions workflow generation
- TypeScript-first architecture
- Lightweight CLI design
Clone the repository:
git clone https://github.com/wbizmo/launchstack-cli.git
cd launchstack-cliInstall dependencies:
npm installBuild the CLI:
npm run buildRun locally:
node dist/cli.js --helplaunchstack <command>When running locally before publishing to npm:
node dist/cli.js <command>Creates a launchstack.config.json file.
node dist/cli.js init --name my-appForce overwrite an existing config:
node dist/cli.js init --name my-app --forcenode dist/cli.js statusDisplays the current app name, environment, provider, build command, output directory, deploy target, and config status.
node dist/cli.js validateChecks whether launchstack.config.json is valid.
View current environment:
node dist/cli.js envUpdate environment:
node dist/cli.js env stagingSupported environments:
development
staging
production
View current provider:
node dist/cli.js providerUpdate provider:
node dist/cli.js provider dockerSupported providers:
vercel
netlify
render
railway
docker
custom
node dist/cli.js deploySkip the build step:
node dist/cli.js deploy --skip-buildThe deploy command reads the project config, runs the configured build command, verifies the output directory, captures Git metadata, and records deployment history.
node dist/cli.js historyLimit the number of records:
node dist/cli.js history --limit 3Deployment history is stored locally in:
.launchstack/history.json
node dist/cli.js rollbackDisplays the latest successful deployment available as a rollback target.
Add a secret:
node dist/cli.js secrets add API_KEY abc123List secret keys:
node dist/cli.js secrets listRemove a secret:
node dist/cli.js secrets remove API_KEYSecrets are stored locally in:
.launchstack/secrets.json
This file should not be committed.
node dist/cli.js docker initForce overwrite existing Docker files:
node dist/cli.js docker init --forceGenerated files:
Dockerfile
.dockerignore
docker-compose.yml
node dist/cli.js github initForce overwrite an existing workflow:
node dist/cli.js github init --forceGenerated file:
.github/workflows/deploy.yml
LaunchStack uses a local config file:
launchstack.config.json
Example:
{
"appName": "my-app",
"environment": "production",
"provider": "custom",
"buildCommand": "npm run build",
"outputDirectory": "dist",
"deployTarget": "https://example.com"
}src/
commands/
deploy.ts
docker.ts
env.ts
github.ts
history.ts
init.ts
provider.ts
rollback.ts
secrets.ts
status.ts
validate.ts
cli.ts
config.ts
git.ts
history.ts
index.ts
types.ts
errors.ts
tests/
examples/
Run the development build watcher:
npm run devBuild for production:
npm run buildRun tests:
npm testFormat files:
npm run format- TypeScript
- Node.js
- Commander
- Zod
- tsup
- Vitest
- ESLint
- Prettier
LaunchStack CLI demonstrates practical DevOps tooling concepts in a clean TypeScript project. It is intentionally lightweight, but covers core areas used in real deployment workflows:
- CLI architecture
- Config validation
- Environment management
- Build automation
- Git metadata collection
- Deployment history
- Secrets handling
- Docker scaffolding
- CI workflow generation
Planned improvements:
- Interactive init prompts
- Encrypted secrets storage
- Provider-specific deployment adapters
- Deployment preview URLs
- Rollback execution hooks
- JSON output mode
- Plugin system for custom providers
MIT
Williams
GitHub: wbizmo