Flisk next to the usual tools
Terraform and CDK provision infrastructure. Flisk only runs your app locally.
| Task | Flisk Local dev stack | Terraform Provisions infrastructure | AWS CDK AWS infrastructure in code | Docker Compose Local containers | Tilt Live-update loop | Skaffold Kubernetes dev loop | Garden Dev and test on Kubernetes | PM2 Node process manager |
|---|---|---|---|---|---|---|---|---|
| Create a project | flisk projectflisk initWrites the master config. Add a template name to clone a starter. |
Different job, closest command.
terraform initPrepares a directory that has .tf files. Writes no configuration. |
cdk init app --language typescriptCreates a CDK app from a template, in the language you pick. |
docker initDocker Desktop command. Writes Dockerfile, compose.yaml and more. |
skaffold initFinds Dockerfiles and manifests, then writes skaffold.yaml. |
garden create projectWrites a project config and a blank .gardenignore. You add actions by hand. |
pm2 ecosystemWrites a sample ecosystem.config.js for you to edit. |
|
| Add a service | flisk resource api --type backendCreates the service and its service.json. Also frontend, worker, mcp, agent. |
No equivalent
No scaffold command. You add a resource block to a .tf file. |
No equivalent
No command. You add a stack or construct in your code. |
No equivalent
No command for it. You add an entry under services in compose.yaml. |
No equivalent
No command for it. You add an artifact and its manifests to skaffold.yaml. |
No equivalent
No command. You add an action config to a garden.yml file. |
No equivalent
No scaffold command. You add an entry to apps in ecosystem.config.js. |
|
| Import an existing docker-compose.yml | flisk import ./my-appOne bring-your-own service.json per Compose service. --dry-run previews. |
No equivalent
terraform import adopts cloud resources into state, not Compose files. |
No equivalent
cdk import adopts existing AWS resources. It does not read Compose files. |
Not needed
Not needed. Compose runs the file as it is. |
docker_compose('docker-compose.yml')A Tiltfile line, not a CLI command. |
skaffold init --compose-file docker-compose.ymlNeeds a Kubernetes cluster to run the result. |
No equivalent
No importer. The docs convert a Compose project by hand. |
No equivalent
No Compose import. PM2 reads ecosystem.config.js. |
| Start the stack with live reload | flisk upStarts every service with Tilt watching. Add a stack name for one stack. |
Different job, closest command.
terraform applyChanges real infrastructure. No file watching. |
cdk watchDeploys to your AWS account on each change, not to local containers. |
docker compose up --watchEach watched service needs a develop.watch section. |
tilt upRuns the services in the Tiltfile and updates them as you edit. |
skaffold devBuilds, deploys to a Kubernetes cluster and redeploys when files change. |
garden deploy --syncDeploys with code sync on, for each Deploy that has sync configured. |
pm2 start ecosystem.config.jsSet watch: true on an app to restart on file changes. |
| Start one service and what it needs | flisk up --only orders-apiAlso starts dependsOn services and shared infrastructure. |
Different job, closest command.
terraform apply -target=ADDRESSApplies one resource and its dependencies. Exceptional use only. |
cdk watch apiAlso deploys the stacks it depends on. --exclusively skips them. |
docker compose up orders-apiAlso starts linked services, unless they are already running. |
tilt up orders-apiA Tiltfile that uses config.parse changes this. |
Different job, closest command.
skaffold dev -m orders-apiFilters to named modules, so it needs a multi-config skaffold.yaml. |
garden deploy apiDeploys it and the actions it depends on, once. |
Different job, closest command.
pm2 start ecosystem.config.js --only apiStarts only the named app. The file has no dependency option. |
| Preview without changing anything | flisk up --dry-runShows what would start, without starting it. |
terraform planShows the changes apply would make to your infrastructure. |
cdk diffCompares your code with the deployed stacks. |
docker compose --dry-run upA global flag. It works with most commands, but not with ps, ls or logs. |
Different job, closest command.
skaffold renderPrints the manifests it would deploy. Needs a cluster unless --offline. |
garden planExperimental. Shows what would run without changing anything. |
||
| Restart one service | flisk restart apiTriggers an update in the running stack. Calls tilt trigger. |
Different job, closest command.
terraform apply -replace=ADDRESSReplaces one resource, which recreates real infrastructure. |
No equivalent
No restart command. cdk watch redeploys when files change. |
docker compose restart apiIgnores changes to compose.yaml and env vars. Run up again. |
No equivalent
No per-service restart. skaffold dev redeploys when files change. |
Different job, closest command.
garden deploy api --forceNo restart command. --force redeploys even if the Deploy is up to date. |
pm2 restart apiKills then restarts the process. pm2 reload is for cluster mode. |
|
| Stop and tear down | flisk downStops all Tilt resources. --dry-run shows what would stop. |
terraform destroyDestroys the real infrastructure Terraform created, not a local dev stack. |
cdk destroy --allDeletes the stacks from your AWS account, not a local dev stack. |
docker compose downRemoves containers and project networks. -v also removes named volumes. |
tilt downDeletes what tilt up created. Keeps volumes unless you add --delete-volumes. |
skaffold deleteDeletes what Skaffold deployed. skaffold dev also cleans up when you stop it. |
garden cleanup deployUn-deploys every Deploy. garden cleanup namespace clears the whole namespace. |
pm2 delete allStops every app and removes it from the list. pm2 stop all keeps them listed. |
| Check status | flisk status--unhealthy lists failing or starting services. --json is for scripts. |
Different job, closest command.
terraform state listLists the resources in state. It does not check whether they are healthy. |
Different job, closest command.
cdk listLists the app's stacks. It does not show what is deployed or healthy. |
docker compose psLists the project's containers and their state. |
tilt get uiresourcesLists the resources of a running Tilt. The Tilt web UI shows the same. |
No equivalent
No status command. Use kubectl to see what is running in the cluster. |
garden get statusShows the status of the environment and every action. |
|
| Read logs | flisk logs -s api --since 5mA bounded snapshot of recent lines. --unhealthy reads only failing services. |
No equivalent
Terraform does not run your services. TF_LOG turns on Terraform's own debug log. |
Different job, closest command.
cdk watchNo logs command. cdk watch streams CloudWatch log events by default. |
tilt logs -f apiFollows one resource's logs. Add --since to limit by time. |
Different job, closest command.
skaffold run --tailNo logs command. skaffold dev streams logs by default, and run does with --tail. |
pm2 logs apiStreams the app's logs. --nostream prints them without streaming. |
||
| Find service URLs | flisk networksLists the Traefik-routed URL of every service. Add --raw to print URLs only. |
Different job, closest command.
terraform outputPrints output values from state, such as an endpoint you declared. |
Different job, closest command.
cdk deploy --outputs-file outputs.jsonDeploys, then writes stack outputs, such as an endpoint you declared, to a file. |
docker compose port web 80Prints the host port mapped to one service port. |
Different job, closest command.
skaffold dev --port-forwardForwards service ports from the cluster as part of the dev loop. |
Different job, closest command.
garden get status --output yamlThe output lists each service's ingress endpoints and forwardable ports. |
||
| Diagnose the machine | flisk doctorChecks Docker, Tilt, disk space, networks. --fix repairs unused networks. |
No equivalent
No environment check. terraform version prints versions only. |
Different job, closest command.
cdk doctorPrints project and environment info. Not a readiness check. |
Different job, closest command.
docker infoPrints system-wide information. It is not a readiness check. |
Different job, closest command.
tilt doctorPrints diagnostics for bug reports. |
No equivalent
No machine check. skaffold diagnose looks at the project config instead. |
Different job, closest command.
garden get debug-infoWrites a zip of debug info. Not a readiness check. |
Different job, closest command.
pm2 reportPrints a diagnostic report for bug reports. It is not a readiness check. |
| Check generated config | flisk config verifyChecks generated files match .flisk/project.json. regenerate fixes drift. |
terraform validateChecks .tf syntax and consistency. Does not contact remote state or providers. |
cdk synth --quietRuns your app and validates the generated templates. --quiet hides the output. |
docker compose config -qValidates compose.yaml. Drop -q to print the resolved model. |
Different job, closest command.
tilt alpha tiltfile-resultAn alpha command. Runs the Tiltfile and prints the result as JSON. |
Different job, closest command.
skaffold diagnose --yaml-onlyPrints the effective skaffold.yaml. |
garden validateChecks your config files and exits with code 1 on errors. |
|
| Connect an AI coding agent (MCP) | flisk connect claudeWrites the MCP entry and Flisk skills. Also cursor and codex. |
Different job, closest command.
claude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-serverHashiCorp's MCP server: registry docs and HCP Terraform, not a local stack. |
Different job, closest command.
claude mcp add aws-iac uvx awslabs.aws-iac-mcp-server@latestAWS Labs server for CDK docs and CloudFormation checks, not your stack. |
Different job, closest command.
docker mcp client connect vscode --profile my-projectDocker Desktop 4.62+. Connects to MCP Toolkit servers, not your Compose project. |
No equivalent
No official MCP server from the Tilt project. |
No equivalent
No official MCP server from the Skaffold project. |
No equivalent
No MCP command in the CLI reference. |
No equivalent
No MCP command in the CLI reference. |
| Remove leftover Docker networks | flisk down --prune-networksflisk doctor --fix --scope machineFirst removes this project's unused networks. Second also clears other Flisk projects'. |
No equivalent
Terraform manages what is in its state, not leftovers on your machine. |
No equivalent
CDK deploys to AWS, so there are no local Docker networks to clean up. |
docker network pruneRemoves every unused network on the machine. compose down removes the project's own. |
No equivalent
Skaffold runs on Kubernetes, so there are no Docker networks to clean up. |
No task matches. Try a shorter search.
- Same job
- Different job: closest command, not a swap
- Blank: no equivalent
- Hover a cell for ↗︎ source and i note. Click a command to copy it.