@flisk-sh/flisk 1.3.207 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -37
  3. package/cli/dist/agent-runtimes/custom.js +3 -3
  4. package/cli/dist/agent-runtimes/registry.js +3 -3
  5. package/cli/dist/backend-frameworks/registry.js +8 -8
  6. package/cli/dist/backend-languages/python.js +4 -1
  7. package/cli/dist/backend-languages/registry.js +3 -3
  8. package/cli/dist/cli.js +4 -3
  9. package/cli/dist/commands/__tests__/project-e2e-helpers.js +6 -6
  10. package/cli/dist/commands/agent.js +8 -8
  11. package/cli/dist/commands/completion.js +26 -26
  12. package/cli/dist/commands/config.js +8 -8
  13. package/cli/dist/commands/doctor.js +18 -18
  14. package/cli/dist/commands/down.js +1 -1
  15. package/cli/dist/commands/eject.js +10 -10
  16. package/cli/dist/commands/help.js +2 -2
  17. package/cli/dist/commands/import.js +2 -2
  18. package/cli/dist/commands/logs.js +2 -2
  19. package/cli/dist/commands/mcp.js +2 -2
  20. package/cli/dist/commands/networks.js +2 -2
  21. package/cli/dist/commands/open.js +0 -1
  22. package/cli/dist/commands/project.js +19 -19
  23. package/cli/dist/commands/projects.js +1 -1
  24. package/cli/dist/commands/resource.js +21 -21
  25. package/cli/dist/commands/resources.js +2 -2
  26. package/cli/dist/commands/restart.js +7 -4
  27. package/cli/dist/commands/runtime.js +15 -3
  28. package/cli/dist/commands/stack.js +8 -8
  29. package/cli/dist/commands/up.js +23 -23
  30. package/cli/dist/commands/upgrade.js +44 -40
  31. package/cli/dist/frontend-frameworks/registry.js +3 -3
  32. package/cli/dist/generator/extension-fetch.js +12 -9
  33. package/cli/dist/generator/template-engine.js +66 -53
  34. package/cli/dist/mcp/tools.js +2 -2
  35. package/cli/dist/utils/agent-host.js +1 -1
  36. package/cli/dist/utils/cli-command.js +1 -1
  37. package/cli/dist/utils/cold-preflight.js +2 -2
  38. package/cli/dist/utils/constants.js +3 -3
  39. package/cli/dist/utils/discovery-paths.js +2 -2
  40. package/cli/dist/utils/doctor-fix.js +10 -10
  41. package/cli/dist/utils/doctor-report.js +3 -3
  42. package/cli/dist/utils/doctor-runtime.js +4 -3
  43. package/cli/dist/utils/doctor-starlark.js +3 -3
  44. package/cli/dist/utils/doctor-wiring.js +4 -4
  45. package/cli/dist/utils/down-cleanup.js +2 -2
  46. package/cli/dist/utils/env-compat-init.js +8 -0
  47. package/cli/dist/utils/env-compat.js +27 -0
  48. package/cli/dist/utils/env-selection.js +9 -9
  49. package/cli/dist/utils/errors.js +13 -13
  50. package/cli/dist/utils/file-helpers.js +5 -5
  51. package/cli/dist/utils/{tdk-version.js → flisk-version.js} +8 -8
  52. package/cli/dist/utils/generated-paths.js +6 -6
  53. package/cli/dist/utils/host-port-config.js +10 -10
  54. package/cli/dist/utils/host-port-plan.js +3 -3
  55. package/cli/dist/utils/machine-output.js +2 -2
  56. package/cli/dist/utils/native-windows.js +1 -1
  57. package/cli/dist/utils/paths.js +3 -3
  58. package/cli/dist/utils/platform.js +9 -9
  59. package/cli/dist/utils/port-conflict-fix.js +3 -3
  60. package/cli/dist/utils/port-fallback-notice.js +3 -3
  61. package/cli/dist/utils/project-config-defaults.js +1 -1
  62. package/cli/dist/utils/project-features.js +2 -2
  63. package/cli/dist/utils/resource-features.js +3 -3
  64. package/cli/dist/utils/runtime-layout.js +58 -0
  65. package/cli/dist/utils/schema-version-gate.js +3 -2
  66. package/cli/dist/utils/service-urls.js +3 -3
  67. package/cli/dist/utils/services.js +2 -2
  68. package/cli/dist/utils/shared-infra.js +2 -2
  69. package/cli/dist/utils/shared-platform-postgres.js +6 -6
  70. package/cli/dist/utils/tar.js +1 -1
  71. package/cli/dist/utils/tilt.js +1 -1
  72. package/cli/dist/utils/up-readiness.js +1 -1
  73. package/cli/dist/utils/windows-doctor.js +3 -3
  74. package/cli/dist-bundle/{chunk-D2DIEX5E.js → chunk-36SOQVAL.js} +2 -2
  75. package/cli/dist-bundle/{chunk-YZRPX76N.js → chunk-3J6XI3NX.js} +1 -1
  76. package/cli/dist-bundle/chunk-5EZ4EX6U.js +2 -0
  77. package/cli/dist-bundle/chunk-763VK575.js +54 -0
  78. package/cli/dist-bundle/{chunk-5LRMAY67.js → chunk-B6Q5VKL7.js} +13 -13
  79. package/cli/dist-bundle/{chunk-AGXA5DOQ.js → chunk-BWK6MPCB.js} +3 -3
  80. package/cli/dist-bundle/{chunk-SLKTM6ZO.js → chunk-D7N2GGJH.js} +14 -14
  81. package/cli/dist-bundle/chunk-HEMPQKD6.js +7 -0
  82. package/cli/dist-bundle/chunk-ICXF6PXA.js +35 -0
  83. package/cli/dist-bundle/chunk-K6SOCO6V.js +3 -0
  84. package/cli/dist-bundle/{chunk-6EA4DGCY.js → chunk-KJZUBHLO.js} +1 -1
  85. package/cli/dist-bundle/{chunk-GOEBYLFN.js → chunk-MINZ25AC.js} +1 -1
  86. package/cli/dist-bundle/{chunk-FAHNFTWN.js → chunk-PVBAGX5X.js} +2 -2
  87. package/cli/dist-bundle/chunk-QQEV6D74.js +2 -0
  88. package/cli/dist-bundle/chunk-VHFFSBVJ.js +10 -0
  89. package/cli/dist-bundle/chunk-VMB5673O.js +57 -0
  90. package/cli/dist-bundle/{chunk-53M5D4KE.js → chunk-XD3BBFZB.js} +1 -1
  91. package/cli/dist-bundle/{chunk-GIMHTZNR.js → chunk-YL56J2WX.js} +1 -1
  92. package/cli/dist-bundle/cli.js +254 -254
  93. package/cli/dist-bundle/cold-preflight-ABU26DYW.js +2 -0
  94. package/cli/dist-bundle/colima-GBURKN54.js +2 -0
  95. package/cli/dist-bundle/{demo-stage-ANHJKDZC.js → demo-stage-EBIUCJBX.js} +2 -2
  96. package/cli/dist-bundle/{devtools-MGITLOWZ.js → devtools-ZD6XIOLD.js} +2 -2
  97. package/cli/dist-bundle/extension-fetch-VEFSCG4B.js +2 -0
  98. package/cli/dist-bundle/native-windows-BWVEYVPO.js +2 -0
  99. package/cli/dist-bundle/{one-command-P6XVAXWV.js → one-command-VNKQAMFJ.js} +2 -2
  100. package/cli/dist-bundle/open-2KSAF6M2.js +2 -0
  101. package/cli/dist-bundle/project-YD3C4ZV3.js +2 -0
  102. package/cli/dist-bundle/project-templates-EYSQG2EO.js +2 -0
  103. package/cli/dist-bundle/{services-CBXN4SXC.js → services-V6Q55JR5.js} +2 -2
  104. package/cli/dist-bundle/{stack-progress-6GO2TCRH.js → stack-progress-NIFM5T2K.js} +2 -2
  105. package/cli/dist-bundle/tilt-port-owner-MWJ7P6NB.js +2 -0
  106. package/cli/dist-bundle/url-actions-HXJLBTX6.js +2 -0
  107. package/cli/package.json +5 -5
  108. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  109. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
  110. package/cli/templates/.tiltignore.hbs +2 -2
  111. package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +1 -1
  112. package/cli/templates/TILT_TECH_STACK.star.hbs +1 -1
  113. package/cli/templates/Tiltfile.hbs +21 -21
  114. package/cli/templates/spec.master.hbs +4 -4
  115. package/examples/tdk-example/LICENSE +1 -1
  116. package/examples/tdk-example/Tiltfile +10 -10
  117. package/examples/tdk-example/services/platform/messaging/docker-compose.yml +7 -7
  118. package/examples/tdk-example/services/shop/orders-api/service.json +1 -1
  119. package/examples/tdk-example/services/shop/orders-api/src/index.ts +1 -1
  120. package/examples/tdk-example/services/shop/orders-app/index.html +1 -1
  121. package/examples/tdk-example/services/shop/orders-worker/service.json +1 -1
  122. package/examples/tdk-example/services/shop/orders-worker/src/index.ts +1 -1
  123. package/package.json +29 -11
  124. package/{Tiltfile → runtime/Tiltfile} +9 -5
  125. package/{discovery → runtime/discovery}/AGENTS.md +1 -1
  126. package/{discovery → runtime/discovery}/TILT_DISCOVERY.star +5 -5
  127. package/{discovery → runtime/discovery}/Tiltfile +5 -5
  128. package/{discovery → runtime/discovery}/config.star +5 -5
  129. package/{discovery → runtime/discovery}/constants.star +14 -14
  130. package/{discovery → runtime/discovery}/deterministic.star +1 -1
  131. package/{discovery → runtime/discovery}/discovery_daemon.star +2 -2
  132. package/{discovery → runtime/discovery}/discovery_orchestrator.star +17 -17
  133. package/{discovery → runtime/discovery}/identity-management-backend/service.yaml +2 -2
  134. package/{discovery → runtime/discovery}/incremental_discovery.star +1 -1
  135. package/{discovery → runtime/discovery}/json_manifest_scanner.star +2 -2
  136. package/{discovery → runtime/discovery}/libraries.star +1 -1
  137. package/{discovery → runtime/discovery}/manifest/constants.star +1 -1
  138. package/{discovery → runtime/discovery}/manifest/loading.star +7 -7
  139. package/{discovery → runtime/discovery}/manifest/normalize.star +12 -15
  140. package/{discovery → runtime/discovery}/registry.star +11 -11
  141. package/{discovery → runtime/discovery}/resource_snapshot.py +2 -2
  142. package/{discovery → runtime/discovery}/resource_snapshot.star +6 -6
  143. package/{discovery → runtime/discovery}/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
  144. package/{discovery → runtime/discovery}/test_resource_snapshot.py +6 -6
  145. package/{engine → runtime/engine}/AGENTS.md +6 -6
  146. package/{engine → runtime/engine}/README.md +2 -2
  147. package/{engine → runtime/engine}/Tiltfile +5 -5
  148. package/{engine → runtime/engine}/assets/docker/golden-layers.Dockerfile +17 -17
  149. package/{engine → runtime/engine}/assets/docker/wake-gateway/Dockerfile +7 -0
  150. package/{engine → runtime/engine}/entrypoint.star +1 -1
  151. package/{engine → runtime/engine}/paths.star +5 -5
  152. package/{engine → runtime/engine}/schemas/project-schema.json +2 -2
  153. package/{engine → runtime/engine}/schemas/service-schema.json +5 -5
  154. package/{engine → runtime/engine}/scripts/debug-container.sh +3 -3
  155. package/{engine → runtime/engine}/spec.master +3 -3
  156. package/{engine → runtime/engine}/topologies/README.md +3 -3
  157. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_build.star +5 -5
  158. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_constants.star +7 -7
  159. package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_dockerfile.star +8 -8
  160. package/{engine → runtime/engine}/topologies/platform/docker/compose/compose.star +12 -12
  161. package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star +21 -6
  162. package/{engine → runtime/engine}/topologies/platform/docker/config/healthcheck.star +7 -7
  163. package/{engine → runtime/engine}/topologies/platform/docker/constants.star +7 -7
  164. package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star +3 -3
  165. package/{engine → runtime/engine}/topologies/platform/docker/layers/l1_base_layers.star +5 -5
  166. package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star +14 -14
  167. package/{engine → runtime/engine}/topologies/platform/docker/layers/l3_builder_layers.star +5 -5
  168. package/{engine → runtime/engine}/topologies/platform/docker/layers/l4_runtime_layers.star +8 -8
  169. package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/constants.star +5 -5
  170. package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star +5 -5
  171. package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star +1 -1
  172. package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star +1 -1
  173. package/{engine → runtime/engine}/topologies/platform/docker/secrets/env_secrets.star +2 -2
  174. package/{engine → runtime/engine}/topologies/platform/docker/secrets/infisical.star +4 -4
  175. package/{engine → runtime/engine}/topologies/platform/registries/verdaccio_loader.star +1 -1
  176. package/{engine → runtime/engine}/topologies/platform/security/secrets.star +1 -1
  177. package/{engine → runtime/engine}/topologies/tilt/common/utils.star +9 -10
  178. package/{engine → runtime/engine}/topologies/tilt/common/utils_debug.star +1 -1
  179. package/{engine → runtime/engine}/topologies/tilt/common/utils_deterministic.star +2 -2
  180. package/{engine → runtime/engine}/topologies/tilt/common/utils_env.star +5 -5
  181. package/{engine → runtime/engine}/topologies/tilt/config/profiles.star +4 -4
  182. package/{engine → runtime/engine}/topologies/tilt/generators/agents_md.star +1 -1
  183. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/README.md +1 -1
  184. package/{engine → runtime/engine}/topologies/tilt/generators/infisical/organization.star +6 -6
  185. package/{engine → runtime/engine}/topologies/tilt/generators/npmrc.star +5 -5
  186. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_tsconfig.star +1 -1
  187. package/{engine → runtime/engine}/topologies/tilt/generators/typescript/playwright_config.star +1 -1
  188. package/{engine → runtime/engine}/topologies/tilt/generators/vite/helpers.star +7 -7
  189. package/{engine → runtime/engine}/topologies/tilt/generators/vite/templates.star +5 -5
  190. package/{engine → runtime/engine}/topologies/tilt/manifest/json_to_yaml.py +2 -2
  191. package/{engine → runtime/engine}/topologies/tilt/manifest/loader.star +2 -2
  192. package/{engine → runtime/engine}/topologies/tilt/manifest/schema.star +1 -1
  193. package/{engine → runtime/engine}/topologies/tilt/manifest/yaml_to_json.py +1 -1
  194. package/{engine → runtime/engine}/topologies/tilt/resources/build_concurrency.star +3 -3
  195. package/{engine → runtime/engine}/topologies/tilt/resources/databases.star +7 -6
  196. package/{engine → runtime/engine}/topologies/tilt/resources/infra-loader.star +12 -12
  197. package/{engine → runtime/engine}/topologies/tilt/resources/libs_paths.star +1 -1
  198. package/{engine → runtime/engine}/topologies/tilt/resources/libs_resource_definition.star +2 -2
  199. package/{engine → runtime/engine}/topologies/tilt/resources/libs_setup.star +1 -1
  200. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +36 -28
  201. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
  202. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/frontend.star +5 -5
  203. package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +4 -4
  204. package/{engine → runtime/engine}/topologies/tilt/resources/watchers.star +20 -20
  205. package/{engine → runtime/engine}/where-things-live.star +5 -5
  206. package/{ext → runtime/ext}/Tiltfile +5 -5
  207. package/{ext → runtime/ext}/ide-components/code_viewer/server.py +1 -1
  208. package/{ext → runtime/ext}/ide-components/config_inspector/server.py +2 -2
  209. package/{ext → runtime/ext}/ide-components/file_browser/server.py +1 -1
  210. package/{ext → runtime/ext}/ide-components/shared/config_service.py +2 -2
  211. package/{ext → runtime/ext}/ide-components/shared/file_utils.py +2 -2
  212. package/{ext → runtime/ext}/ide-components/shared/http_utils.py +1 -1
  213. package/{ext → runtime/ext}/ide-components/shared/syntax_highlighter.py +1 -1
  214. package/{ext → runtime/ext}/ide-components/shared/template_engine.py +1 -1
  215. package/{ext → runtime/ext}/ide-components/shared/templates/base.html +1 -1
  216. package/{ext → runtime/ext}/ide-components/shared/test_config_service.py +1 -1
  217. package/{ext → runtime/ext}/ide-components/shared/tilt_integration.py +1 -1
  218. package/{ext → runtime/ext}/ui-enhancements/tiltfile.py +1 -1
  219. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  220. package/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
  221. package/cli/dist-bundle/chunk-42IVF3YT.js +0 -3
  222. package/cli/dist-bundle/chunk-AT5MFZ3D.js +0 -10
  223. package/cli/dist-bundle/chunk-BHWJU6HY.js +0 -2
  224. package/cli/dist-bundle/chunk-DWR3LLHS.js +0 -2
  225. package/cli/dist-bundle/chunk-GB6DJJ5N.js +0 -57
  226. package/cli/dist-bundle/chunk-ODYL6LET.js +0 -52
  227. package/cli/dist-bundle/chunk-YTXQPTCN.js +0 -35
  228. package/cli/dist-bundle/chunk-Z2C55UFP.js +0 -7
  229. package/cli/dist-bundle/cold-preflight-7PFKXNK7.js +0 -2
  230. package/cli/dist-bundle/colima-SVZX2UML.js +0 -2
  231. package/cli/dist-bundle/extension-fetch-6XNTDF44.js +0 -2
  232. package/cli/dist-bundle/native-windows-X5XVLFJS.js +0 -2
  233. package/cli/dist-bundle/open-VJZ7W4JR.js +0 -2
  234. package/cli/dist-bundle/project-QSH7LOWI.js +0 -2
  235. package/cli/dist-bundle/project-templates-JDRE7AVL.js +0 -2
  236. package/cli/dist-bundle/tilt-port-owner-SMN5SAQJ.js +0 -2
  237. package/cli/dist-bundle/url-actions-D6ROTHZG.js +0 -2
  238. /package/cli/bin/{tdk.js → flisk.js} +0 -0
  239. /package/{discovery → runtime/discovery}/filtering.star +0 -0
  240. /package/{discovery → runtime/discovery}/identity-management-frontend/service.yaml +0 -0
  241. /package/{discovery → runtime/discovery}/identity-sdk/service.yaml +0 -0
  242. /package/{discovery → runtime/discovery}/indexing.star +0 -0
  243. /package/{discovery → runtime/discovery}/loading.star +0 -0
  244. /package/{discovery → runtime/discovery}/manifest/validation.star +0 -0
  245. /package/{discovery → runtime/discovery}/normalization.star +0 -0
  246. /package/{discovery → runtime/discovery}/schemas.star +0 -0
  247. /package/{discovery → runtime/discovery}/services/platform/cdc/debezium/nats-connector/service.yaml +0 -0
  248. /package/{discovery → runtime/discovery}/services/platform/cdc/nats-http-bridge/service.yaml +0 -0
  249. /package/{discovery → runtime/discovery}/services/platform/synthetic-monitor/service.yaml +0 -0
  250. /package/{discovery → runtime/discovery}/validation.star +0 -0
  251. /package/{discovery → runtime/discovery}/versioning.star +0 -0
  252. /package/{engine → runtime/engine}/REFACTORING_MANIFEST_SYSTEM.md +0 -0
  253. /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.test.ts +0 -0
  254. /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.ts +0 -0
  255. /package/{engine → runtime/engine}/assets/docker/wake-gateway/server.ts +0 -0
  256. /package/{engine → runtime/engine}/assets/scripts/cleanup-completed-migrator-images.sh +0 -0
  257. /package/{engine → runtime/engine}/assets/scripts/cleanup-tilt-images.sh +0 -0
  258. /package/{engine → runtime/engine}/assets/scripts/mac-m1-resource-monitor.sh +0 -0
  259. /package/{engine → runtime/engine}/config.star +0 -0
  260. /package/{engine → runtime/engine}/lifecycle/orchestrator.star +0 -0
  261. /package/{engine → runtime/engine}/scripts/README.md +0 -0
  262. /package/{engine → runtime/engine}/scripts/build-and-publish-lib.sh +0 -0
  263. /package/{engine → runtime/engine}/scripts/check-lib-publish.sh +0 -0
  264. /package/{engine → runtime/engine}/scripts/generate-manifest.sh +0 -0
  265. /package/{engine → runtime/engine}/spec.master.example +0 -0
  266. /package/{engine → runtime/engine}/topologies/platform/docker/AGENTS.md +0 -0
  267. /package/{engine → runtime/engine}/topologies/platform/docker/auth/auth.star +0 -0
  268. /package/{engine → runtime/engine}/topologies/platform/docker/build/frontend_build_plan.star +0 -0
  269. /package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image.star +0 -0
  270. /package/{engine → runtime/engine}/topologies/platform/docker/compose/compose_helpers.star +0 -0
  271. /package/{engine → runtime/engine}/topologies/platform/docker/compose/unsafe_value.star +0 -0
  272. /package/{engine → runtime/engine}/topologies/platform/docker/config/bunignore.star +0 -0
  273. /package/{engine → runtime/engine}/topologies/platform/docker/config/dockerignore.star +0 -0
  274. /package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/dockerfile.star +0 -0
  275. /package/{engine → runtime/engine}/topologies/platform/docker/generators/golden_docker_generator_v2.star +0 -0
  276. /package/{engine → runtime/engine}/topologies/platform/docker/index.star +0 -0
  277. /package/{engine → runtime/engine}/topologies/platform/docker/layers/bun_helpers.star +0 -0
  278. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/index.star +0 -0
  279. /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/infisical_docker.star +0 -0
  280. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/db_readiness.star +0 -0
  281. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/filesystem_setup.star +0 -0
  282. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/migrate_script.star +0 -0
  283. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_build.star +0 -0
  284. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_runtime.star +0 -0
  285. /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/secret_resolution.star +0 -0
  286. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik.star +0 -0
  287. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_constants.star +0 -0
  288. /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_helpers.star +0 -0
  289. /package/{engine → runtime/engine}/topologies/platform/net/AGENTS.md +0 -0
  290. /package/{engine → runtime/engine}/topologies/platform/net/proxy.star +0 -0
  291. /package/{engine → runtime/engine}/topologies/platform/registries/local.star +0 -0
  292. /package/{engine → runtime/engine}/topologies/platform/security/AGENTS.md +0 -0
  293. /package/{engine → runtime/engine}/topologies/platform/state/AGENTS.md +0 -0
  294. /package/{engine → runtime/engine}/topologies/platform/state/relational.star +0 -0
  295. /package/{engine → runtime/engine}/topologies/tilt/common/AGENTS.md +0 -0
  296. /package/{engine → runtime/engine}/topologies/tilt/common/utils_docker_networks.star +0 -0
  297. /package/{engine → runtime/engine}/topologies/tilt/common/utils_output.star +0 -0
  298. /package/{engine → runtime/engine}/topologies/tilt/config/AGENTS.md +0 -0
  299. /package/{engine → runtime/engine}/topologies/tilt/config/defaults.star +0 -0
  300. /package/{engine → runtime/engine}/topologies/tilt/config/feature_flags.star +0 -0
  301. /package/{engine → runtime/engine}/topologies/tilt/config/global.star +0 -0
  302. /package/{engine → runtime/engine}/topologies/tilt/generators/api_gateway.star +0 -0
  303. /package/{engine → runtime/engine}/topologies/tilt/generators/index.star +0 -0
  304. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/examples.star +0 -0
  305. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/index.star +0 -0
  306. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/machine_identity.star +0 -0
  307. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/path_manager.star +0 -0
  308. /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/secrets_generator.star +0 -0
  309. /package/{engine → runtime/engine}/topologies/tilt/generators/nginx_conf.star +0 -0
  310. /package/{engine → runtime/engine}/topologies/tilt/generators/tsconfig.star +0 -0
  311. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_library_tsconfig.star +0 -0
  312. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/common.star +0 -0
  313. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +0 -0
  314. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_tsconfig.star +0 -0
  315. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/include.star +0 -0
  316. /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/prisma_config.star +0 -0
  317. /package/{engine → runtime/engine}/topologies/tilt/generators/validators.star +0 -0
  318. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/backend.star +0 -0
  319. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/lit.star +0 -0
  320. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/preact.star +0 -0
  321. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/qwik.star +0 -0
  322. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/react.star +0 -0
  323. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/solid.star +0 -0
  324. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/svelte.star +0 -0
  325. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vanilla.star +0 -0
  326. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vue.star +0 -0
  327. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frontend.star +0 -0
  328. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/generators.star +0 -0
  329. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/library.star +0 -0
  330. /package/{engine → runtime/engine}/topologies/tilt/generators/vite/sdk.star +0 -0
  331. /package/{engine → runtime/engine}/topologies/tilt/generators/vite_config.star +0 -0
  332. /package/{engine → runtime/engine}/topologies/tilt/manifest/AGENTS.md +0 -0
  333. /package/{engine → runtime/engine}/topologies/tilt/manifest/README.md +0 -0
  334. /package/{engine → runtime/engine}/topologies/tilt/manifest/__init__.star +0 -0
  335. /package/{engine → runtime/engine}/topologies/tilt/manifest/constants.star +0 -0
  336. /package/{engine → runtime/engine}/topologies/tilt/manifest/errors.star +0 -0
  337. /package/{engine → runtime/engine}/topologies/tilt/manifest/integration.star +0 -0
  338. /package/{engine → runtime/engine}/topologies/tilt/manifest/mapper.star +0 -0
  339. /package/{engine → runtime/engine}/topologies/tilt/manifest/parser.star +0 -0
  340. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_integration.star +0 -0
  341. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_loader_parser.star +0 -0
  342. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_manifest.star +0 -0
  343. /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_validator.star +0 -0
  344. /package/{engine → runtime/engine}/topologies/tilt/manifest/validator.star +0 -0
  345. /package/{engine → runtime/engine}/topologies/tilt/resources/AGENTS.md +0 -0
  346. /package/{engine → runtime/engine}/topologies/tilt/resources/conditions.star +0 -0
  347. /package/{engine → runtime/engine}/topologies/tilt/resources/declaration.star +0 -0
  348. /package/{engine → runtime/engine}/topologies/tilt/resources/deps.star +0 -0
  349. /package/{engine → runtime/engine}/topologies/tilt/resources/libs.star +0 -0
  350. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_discovery.star +0 -0
  351. /package/{engine → runtime/engine}/topologies/tilt/resources/libs_tsconfig.star +0 -0
  352. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply.star +0 -0
  353. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +0 -0
  354. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_resource_validation.star +0 -0
  355. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +0 -0
  356. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/builders/typescript.star +0 -0
  357. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +0 -0
  358. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +0 -0
  359. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +0 -0
  360. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/env.star +0 -0
  361. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/helpers.star +0 -0
  362. /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator.star +0 -0
  363. /package/{engine → runtime/engine}/topologies/tilt/resources/ordering.star +0 -0
  364. /package/{engine → runtime/engine}/topologies/tilt/resources/shared-platform-postgres.star +0 -0
  365. /package/{engine → runtime/engine}/topologies/tilt/resources/triggers.star +0 -0
  366. /package/{ext → runtime/ext}/ide-components/README.md +0 -0
  367. /package/{ext → runtime/ext}/ide-components/shared/static/styles.css +0 -0
  368. /package/{ext → runtime/ext}/ui-enhancements/cron-status-server.sh +0 -0
  369. /package/{ext → runtime/ext}/ui-enhancements/cron-status-tracker.sh +0 -0
  370. /package/{ext → runtime/ext}/ui-enhancements/extension.yaml +0 -0
  371. /package/{ext → runtime/ext}/ui-enhancements/ui/cron-jobs-tab.css +0 -0
  372. /package/{ext → runtime/ext}/ui-enhancements/ui/help-panel.css +0 -0
  373. /package/{ext → runtime/ext}/ui-enhancements/ui/icons.css +0 -0
  374. /package/{ext → runtime/ext}/ui-enhancements/ui/tooltips.css +0 -0
  375. /package/{specs → runtime/specs}/specs/TILT_SERVICE_DEFAULTS.star +0 -0
  376. /package/{specs → runtime/specs}/specs/TILT_TECH_STACK.star +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 TDK Landscape
3
+ Copyright (c) 2026 Flisk Landscape
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -4,6 +4,9 @@
4
4
 
5
5
  Go from an empty folder to a running tech stack with one command. Built for agents.
6
6
 
7
+ <img src="https://raw.githubusercontent.com/flisk-sh/.github/main/profile/header-flisk.svg" alt="Flisk: your whole stack, running locally with one command." width="100%">
8
+
9
+
7
10
  [![Flisk Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?logo=discord&logoColor=white)](https://discord.gg/JG6r33HVB)
8
11
  [![npm version](https://img.shields.io/npm/v/@flisk-sh/flisk.svg?style=flat&color=blue)](https://www.npmjs.com/package/@flisk-sh/flisk) [![npm weekly downloads](https://img.shields.io/npm/dw/@flisk-sh/flisk?style=flat&color=blue)](https://www.npmjs.com/package/@flisk-sh/flisk) [![unpacked size](https://img.shields.io/npm/unpacked-size/@flisk-sh/flisk)](https://packagephobia.com/result?p=@flisk-sh/flisk) [![install size](https://badgen.net/packagephobia/install/@flisk-sh/flisk)](https://packagephobia.com/result?p=@flisk-sh/flisk) [![GitHub stars](https://img.shields.io/github/stars/flisk-sh/flisk?style=flat&logo=github)](https://github.com/flisk-sh/flisk/stargazers) [![OSS Insight](https://img.shields.io/badge/OSS%20Insight-analytics-blue)](https://ossinsight.io/analyze/flisk-sh/flisk) [![X followers: 1,605](https://img.shields.io/badge/X%20followers-1%2C605-1DA1F2?style=flat&logo=x&logoColor=white)](https://x.com/brookservers)
9
12
  [![Journeys E2E](https://github.com/flisk-sh/flisk/actions/workflows/e2e-journeys.yml/badge.svg)](https://github.com/flisk-sh/flisk/actions/workflows/e2e-journeys.yml) [![ERP fixture scale E2E](https://github.com/flisk-sh/flisk/actions/workflows/e2e-scale-full.yml/badge.svg)](https://github.com/flisk-sh/flisk/actions/workflows/e2e-scale-full.yml) [![Example apps E2E](https://github.com/flisk-sh/flisk/actions/workflows/e2e-real-apps.yml/badge.svg?branch=main)](https://github.com/flisk-sh/flisk/actions/workflows/e2e-real-apps.yml) [![CodeQL](https://github.com/flisk-sh/flisk/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/flisk-sh/flisk/security/code-scanning) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/flisk-sh/flisk/badge)](https://scorecard.dev/viewer/?uri=github.com/flisk-sh/flisk) [![Known Vulnerabilities](https://snyk.io/test/github/flisk-sh/flisk/badge.svg)](https://snyk.io/test/github/flisk-sh/flisk) [![Socket Badge](https://badge.socket.dev/npm/package/@flisk-sh/flisk/latest)](https://socket.dev/npm/package/@flisk-sh/flisk/overview)
@@ -37,7 +40,7 @@ English | [简体中文](docs/README-zh_cn.md) | [繁體中文](docs/README-zh_t
37
40
 
38
41
  <br />
39
42
 
40
- [Website](https://flisk.sh/) · [Quickstart](https://flisk.sh/docs/quickstart/) · [Examples](https://flisk.sh/docs/examples/) · [Awesome Flisk](https://github.com/flisk-sh/awesome-tdk-framework) · [Demo](https://flisk-sh.github.io/tdk-demo-animation/) · [Report a bug](https://github.com/flisk-sh/flisk/issues)
43
+ [Website](https://flisk.sh/) · [Quickstart](https://flisk.sh/docs/quickstart/) · [Examples](https://flisk.sh/docs/examples/) · [Awesome Flisk](https://github.com/flisk-sh/awesome-tdk-framework) · [Demo](https://flisk-sh.github.io/flisk-demo-animation/) · [Report a bug](https://github.com/flisk-sh/flisk/issues)
41
44
 
42
45
  </div>
43
46
 
@@ -49,46 +52,46 @@ LLMs are brilliant at writing application logic, but notoriously terrible at mai
49
52
 
50
53
  ## Build your app in one click
51
54
 
52
- Fastest way (recommended): open the [Flisk starter](https://github.com/flisk-sh/tdk-cli-starter) in a ready-to-use environment.
55
+ Fastest way (recommended): open the [Flisk starter](https://github.com/flisk-sh/flisk-cli-starter) in a ready-to-use environment.
53
56
 
54
57
  <table align="center">
55
- <tr><td align="center" valign="middle" width="33%"><a href="https://v0.dev/"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-v0.svg" alt="Build app with v0" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://gitpod.io/#https://github.com/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-gitpod.svg" alt="Build app with Gitpod" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://lovable.dev/"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-lovable.svg" alt="Build app with Lovable" height="32"></a></td></tr>
56
- <tr><td align="center" valign="middle" width="33%"><a href="https://bolt.new/"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-bolt.svg" alt="Build app with Bolt.new" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="vscode://vscode.git/clone?url=https://github.com/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-vscode.svg" alt="Build app with VS Code" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://github.com/codespaces/new/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-codespaces.svg" alt="Build app with Codespaces" height="32"></a></td></tr>
58
+ <tr><td align="center" valign="middle" width="33%"><a href="https://v0.dev/?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-v0.svg" alt="Build app with v0" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://gitpod.io/#https://github.com/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-gitpod.svg" alt="Build app with Gitpod" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://lovable.dev/#prompt=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-lovable.svg" alt="Build app with Lovable" height="32"></a></td></tr>
59
+ <tr><td align="center" valign="middle" width="33%"><a href="https://bolt.new/?prompt=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-bolt.svg" alt="Build app with Bolt.new" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="vscode://vscode.git/clone?url=https://github.com/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-vscode.svg" alt="Build app with VS Code" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://github.com/codespaces/new/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-codespaces.svg" alt="Build app with Codespaces" height="32"></a></td></tr>
57
60
  </table>
58
61
 
59
62
  <details>
60
- <summary>More build tools (7)</summary>
63
+ <summary>More build tools (6)</summary>
61
64
 
62
65
  <table align="center">
63
- <tr><td align="center" valign="middle" width="33%"><a href="https://replit.com/github/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-replit.svg" alt="Build app with Replit" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://glitch.com/edit/#!/import/github/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-glitch.svg" alt="Build app with Glitch" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://devpod.sh/open#https://github.com/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-devpod.svg" alt="Build app with DevPod" height="32"></a></td></tr>
64
- <tr><td align="center" valign="middle" width="33%"><a href="https://stackblitz.com/github/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-stackblitz.svg" alt="Build app with StackBlitz" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://codesandbox.io/p/github/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-codesandbox.svg" alt="Build app with CodeSandbox" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-dev-containers.svg" alt="Build app with Dev Containers" height="32"></a></td></tr>
65
- <tr><td align="center" valign="middle" width="33%"><a href="https://studio.firebase.google.com/import?url=https://github.com/flisk-sh/tdk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/build-firebase-studio.svg" alt="Build app with Firebase Studio" height="32"></a></td></tr>
66
+ <tr><td align="center" valign="middle" width="33%"><a href="https://replit.com/github/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-replit.svg" alt="Build app with Replit" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://devpod.sh/open#https://github.com/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-devpod.svg" alt="Build app with DevPod" height="32"></a></td></tr>
67
+ <tr><td align="center" valign="middle" width="33%"><a href="https://stackblitz.com/github/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-stackblitz.svg" alt="Build app with StackBlitz" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://codesandbox.io/p/github/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-codesandbox.svg" alt="Build app with CodeSandbox" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-dev-containers.svg" alt="Build app with Dev Containers" height="32"></a></td></tr>
68
+ <tr><td align="center" valign="middle" width="33%"><a href="https://studio.firebase.google.com/import?url=https://github.com/flisk-sh/flisk-cli-starter"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/build-firebase-studio.svg" alt="Build app with Firebase Studio" height="32"></a></td></tr>
66
69
  </table>
67
70
 
68
71
  </details>
69
72
 
70
73
  <table align="center">
71
- <tr><td align="center" valign="middle" width="33%"><a href="https://grok.com/?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/ai-grok.svg" alt="Build app with Grok" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/ai-claude.svg" alt="Build app with Claude" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://chatgpt.com/?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/ai-chatgpt.svg" alt="Build app with ChatGPT" height="32"></a></td></tr>
74
+ <tr><td align="center" valign="middle" width="33%"><a href="https://grok.com/?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/ai-grok.svg" alt="Build app with Grok" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/ai-claude.svg" alt="Build app with Claude" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://chatgpt.com/?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/ai-chatgpt.svg" alt="Build app with ChatGPT" height="32"></a></td></tr>
72
75
  </table>
73
76
 
74
77
  ### Deploy
75
78
 
76
79
  <table align="center">
77
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20AWS.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-aws.svg" alt="Deploy to AWS" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Azure.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-azure.svg" alt="Deploy to Azure" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Vercel.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-vercel.svg" alt="Deploy to Vercel" height="32"></a></td></tr>
78
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Netlify.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-netlify.svg" alt="Deploy to Netlify" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Heroku.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-heroku.svg" alt="Deploy to Heroku" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Railway.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-railway.svg" alt="Deploy to Railway" height="32"></a></td></tr>
79
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Cloudflare.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-cloudflare.svg" alt="Deploy to Cloudflare" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20DigitalOcean.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-digitalocean.svg" alt="Deploy to DigitalOcean" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Google%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-google-cloud.svg" alt="Deploy to Google Cloud" height="32"></a></td></tr>
80
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20AWS.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-aws.svg" alt="Deploy to AWS" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Azure.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-azure.svg" alt="Deploy to Azure" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Vercel.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-vercel.svg" alt="Deploy to Vercel" height="32"></a></td></tr>
81
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Netlify.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-netlify.svg" alt="Deploy to Netlify" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Heroku.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-heroku.svg" alt="Deploy to Heroku" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Railway.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-railway.svg" alt="Deploy to Railway" height="32"></a></td></tr>
82
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Cloudflare.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-cloudflare.svg" alt="Deploy to Cloudflare" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20DigitalOcean.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-digitalocean.svg" alt="Deploy to DigitalOcean" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Google%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-google-cloud.svg" alt="Deploy to Google Cloud" height="32"></a></td></tr>
80
83
  </table>
81
84
 
82
85
  <details>
83
86
  <summary>More clouds and hosts (18)</summary>
84
87
 
85
88
  <table align="center">
86
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20SSH.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-ssh.svg" alt="Deploy to SSH" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Civo.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-civo.svg" alt="Deploy to Civo" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Flow.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-flow.svg" alt="Deploy to Flow" height="32"></a></td></tr>
87
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Vultr.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-vultr.svg" alt="Deploy to Vultr" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Fly.io.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-flyio.svg" alt="Deploy to Fly.io" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Linode.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-linode.svg" alt="Deploy to Linode" height="32"></a></td></tr>
88
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Render.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-render.svg" alt="Deploy to Render" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Docker.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-docker.svg" alt="Deploy to Docker" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Hetzner.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-hetzner.svg" alt="Deploy to Hetzner" height="32"></a></td></tr>
89
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Cloudbit.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-cloudbit.svg" alt="Deploy to Cloudbit" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Exoscale.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-exoscale.svg" alt="Deploy to Exoscale" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Scaleway.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-scaleway.svg" alt="Deploy to Scaleway" height="32"></a></td></tr>
90
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Multipass.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-multipass.svg" alt="Deploy to Multipass" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20OVHcloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-ovhcloud.svg" alt="Deploy to OVHcloud" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20IBM%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-ibm-cloud.svg" alt="Deploy to IBM Cloud" height="32"></a></td></tr>
91
- <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Kubernetes.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-kubernetes.svg" alt="Deploy to Kubernetes" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Oracle%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-oracle-cloud.svg" alt="Deploy to Oracle Cloud" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20OpenTelekomCloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/deploy-opentelekomcloud.svg" alt="Deploy to OpenTelekomCloud" height="32"></a></td></tr>
89
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20SSH.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-ssh.svg" alt="Deploy to SSH" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Civo.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-civo.svg" alt="Deploy to Civo" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Flow.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-flow.svg" alt="Deploy to Flow" height="32"></a></td></tr>
90
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Vultr.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-vultr.svg" alt="Deploy to Vultr" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Fly.io.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-flyio.svg" alt="Deploy to Fly.io" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Linode.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-linode.svg" alt="Deploy to Linode" height="32"></a></td></tr>
91
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Render.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-render.svg" alt="Deploy to Render" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Docker.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-docker.svg" alt="Deploy to Docker" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Hetzner.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-hetzner.svg" alt="Deploy to Hetzner" height="32"></a></td></tr>
92
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Cloudbit.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-cloudbit.svg" alt="Deploy to Cloudbit" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Exoscale.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-exoscale.svg" alt="Deploy to Exoscale" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Scaleway.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-scaleway.svg" alt="Deploy to Scaleway" height="32"></a></td></tr>
93
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Multipass.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-multipass.svg" alt="Deploy to Multipass" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20OVHcloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-ovhcloud.svg" alt="Deploy to OVHcloud" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20IBM%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-ibm-cloud.svg" alt="Deploy to IBM Cloud" height="32"></a></td></tr>
94
+ <tr><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Kubernetes.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-kubernetes.svg" alt="Deploy to Kubernetes" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20Oracle%20Cloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-oracle-cloud.svg" alt="Deploy to Oracle Cloud" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://claude.ai/new?q=Deploy%20the%20app%20I%20built%20with%20the%20Flisk%20CLI%20to%20OpenTelekomCloud.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/deploy-opentelekomcloud.svg" alt="Deploy to OpenTelekomCloud" height="32"></a></td></tr>
92
95
  </table>
93
96
 
94
97
  </details>
@@ -96,17 +99,17 @@ Fastest way (recommended): open the [Flisk starter](https://github.com/flisk-sh/
96
99
  ### Build app with your AI agent
97
100
 
98
101
  <table align="center">
99
- <tr><td align="center" valign="middle" width="33%"><a href="https://devin.ai"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/devin.svg" alt="Build app with Devin" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="codex://new?prompt=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/codex.svg" alt="Build app with Codex" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="cursor://anysphere.cursor-deeplink/prompt?text=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/cursor.svg" alt="Build app with Cursor" height="32"></a></td></tr>
100
- <tr><td align="center" valign="middle" width="33%"><a href="https://windsurf.com"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/windsurf.svg" alt="Build app with Windsurf" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="claude://code/new?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Ftdk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/claude-code.svg" alt="Build app with Claude Code" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://github.com/features/copilot"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/github-copilot.svg" alt="Build app with GitHub Copilot" height="32"></a></td></tr>
102
+ <tr><td align="center" valign="middle" width="33%"><a href="https://app.devin.ai/?prompt=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/devin.svg" alt="Build app with Devin" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="codex://new?prompt=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/codex.svg" alt="Build app with Codex" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="cursor://anysphere.cursor-deeplink/prompt?text=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/cursor.svg" alt="Build app with Cursor" height="32"></a></td></tr>
103
+ <tr><td align="center" valign="middle" width="33%"><a href="https://windsurf.com"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/windsurf.svg" alt="Build app with Windsurf" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="claude://code/new?q=Build%20an%20app%20with%20the%20Flisk%20CLI.%20Read%20the%20setup%20guide%20at%20https%3A%2F%2Fgithub.com%2Fflisk-sh%2Fflisk-cli-starter%20and%20walk%20me%20through%20it%20step%20by%20step."><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/claude-code.svg" alt="Build app with Claude Code" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://github.com/features/copilot"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/github-copilot.svg" alt="Build app with GitHub Copilot" height="32"></a></td></tr>
101
104
  </table>
102
105
 
103
106
  <details>
104
107
  <summary>More agents (7)</summary>
105
108
 
106
109
  <table align="center">
107
- <tr><td align="center" valign="middle" width="33%"><a href="https://zed.dev"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/zed.svg" alt="Build app with Zed" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://aider.chat/"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/aider.svg" alt="Build app with Aider" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://coder.com"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/coder.svg" alt="Build app with Coder" height="32"></a></td></tr>
108
- <tr><td align="center" valign="middle" width="33%"><a href="https://github.com/google-gemini/gemini-cli"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/gemini-cli.svg" alt="Build app with Gemini CLI" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://antigravity.google/"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/antigravity.svg" alt="Build app with Antigravity" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://codeanywhere.com"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/codeanywhere.svg" alt="Build app with Codeanywhere" height="32"></a></td></tr>
109
- <tr><td align="center" valign="middle" width="33%"><a href="https://www.augmentcode.com"><img src="https://raw.githubusercontent.com/flisk-sh/tdk-cli-starter/main/.github/buttons/augment-code.svg" alt="Build app with Augment Code" height="32"></a></td></tr>
110
+ <tr><td align="center" valign="middle" width="33%"><a href="https://zed.dev"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/zed.svg" alt="Build app with Zed" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://aider.chat/"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/aider.svg" alt="Build app with Aider" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://coder.com"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/coder.svg" alt="Build app with Coder" height="32"></a></td></tr>
111
+ <tr><td align="center" valign="middle" width="33%"><a href="https://github.com/google-gemini/gemini-cli"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/gemini-cli.svg" alt="Build app with Gemini CLI" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://antigravity.google/"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/antigravity.svg" alt="Build app with Antigravity" height="32"></a></td><td align="center" valign="middle" width="33%"><a href="https://codeanywhere.com"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/codeanywhere.svg" alt="Build app with Codeanywhere" height="32"></a></td></tr>
112
+ <tr><td align="center" valign="middle" width="33%"><a href="https://www.augmentcode.com"><img src="https://raw.githubusercontent.com/flisk-sh/flisk-cli-starter/main/.github/buttons/augment-code.svg" alt="Build app with Augment Code" height="32"></a></td></tr>
110
113
  </table>
111
114
 
112
115
  </details>
@@ -144,7 +147,7 @@ Docker runs the containers. Tilt watches services and live-updates containers wh
144
147
  > [official website](https://flisk.sh/). Follow the installation links from these official sources.
145
148
  > A similar repository name or copied README does not establish that a download is official.
146
149
 
147
- <p align="center"><strong><a href="#quick-start">Quick start</a> · <a href="#why-tdk-cli">Why Flisk</a> · <a href="#examples">Examples</a> · <a href="#installation">Installation</a> · <a href="#faq">FAQ</a> · <a href="#docs">Documentation</a></strong></p>
150
+ <p align="center"><strong><a href="#quick-start">Quick start</a> · <a href="#why-flisk-cli">Why Flisk</a> · <a href="#examples">Examples</a> · <a href="#installation">Installation</a> · <a href="#faq">FAQ</a> · <a href="#docs">Documentation</a></strong></p>
148
151
 
149
152
  If Flisk helps you run your local stack, a ⭐ on [this repo](https://github.com/flisk-sh/flisk) helps other developers find it.
150
153
 
@@ -190,14 +193,14 @@ Production deployment stays with your own tools (Helm, Argo CD, or Kustomize).
190
193
 
191
194
  ## Who uses Flisk
192
195
 
193
- Teams that run `flisk up` on their own code (listed with their consent in [ADOPTERS.md](ADOPTERS.md)):
196
+ Teams that run `flisk up` on their own code (listed with their consent in [ADOPTERS.md](docs/project/ADOPTERS.md)):
194
197
 
195
198
  - [Lekast](https://www.linkedin.com/company/lekast/), Flisk 1.3.178
196
199
  - [mfin.services](https://medium.com/@mfin.services), Flisk 1.3.140
197
200
  - [MakeOffer](https://www.linkedin.com/company/makeofferio), Flisk 1.3.180
198
201
  - [Red Moon Digital](https://redmoon.digital/), Flisk 1.3.81
199
202
 
200
- Using Flisk too? [Tell us](https://github.com/flisk-sh/flisk/issues/new?template=we-use-flisk.yml) or [add a row to ADOPTERS.md](ADOPTERS.md).
203
+ Using Flisk too? [Tell us](https://github.com/flisk-sh/flisk/issues/new?template=we-use-flisk.yml) or [add a row to ADOPTERS.md](docs/project/ADOPTERS.md).
201
204
 
202
205
  If Flisk saves you time, a ⭐ on [this repo](https://github.com/flisk-sh/flisk) helps other developers find it.
203
206
 
@@ -263,7 +266,7 @@ flisk up shop
263
266
  curl http://api.shop.localhost/api/orders/health
264
267
  ```
265
268
 
266
- `flisk up` prints the host ports it chose. It uses port 80 when it is free, so URLs carry no port. Otherwise it picks one from 8080-8180, and the URLs it prints include that port (on Linux and WSL2 a non-root user cannot check port 80, so the range is used there). Use the URL `flisk up` prints, or set `TDK_HTTP_PORT`. A resource named `orders-api` is served at `/api/orders` (a trailing `-api` is dropped); `flisk up` prints the exact URLs.
269
+ `flisk up` prints the host ports it chose. It uses port 80 when it is free, so URLs carry no port. Otherwise it picks one from 8080-8180, and the URLs it prints include that port (on Linux and WSL2 a non-root user cannot check port 80, so the range is used there). Use the URL `flisk up` prints, or set `FLISK_HTTP_PORT`. A resource named `orders-api` is served at `/api/orders` (a trailing `-api` is dropped); `flisk up` prints the exact URLs.
267
270
 
268
271
  <p align="center">
269
272
  <img src="docs/assets/demo.svg" alt="Flisk scaffolding a backend and a frontend, then listing the stack" width="900" />
@@ -290,12 +293,12 @@ services/store/storefront-web/
290
293
  You do not need to write the nginx config, Dockerfile, or a `docker-compose.yml` for this local stack. `flisk up` uses Docker and Tilt to start it. The [generated-files guide](docs/generated-files.md) lists the other outputs and explains how regeneration and drift checks work.
291
294
 
292
295
  <p align="center">
293
- <img src="docs/assets/tdk-cli-top-9-uses.jpg" alt="Top 9 places to use Flisk CLI" width="900" />
296
+ <img src="docs/assets/flisk-cli-top-9-uses.jpg" alt="Top 9 places to use Flisk CLI" width="900" />
294
297
  </p>
295
298
 
296
299
  If Helm, Compose, or your existing Tilt setup already gives you a working local environment, keep using it. Flisk CLI is for engineers managing several services who want a clear local service contract and one command to start the stack.
297
300
 
298
- See [how Flisk compares to alternative dev tools](docs/comparison.md), [how Flisk CLI works alongside Helm](https://flisk.sh/docs/with-helm/), the [service schema](engine/schemas/service-schema.json), and the [project configuration schema](engine/schemas/project-schema.json).
301
+ See [how Flisk compares to alternative dev tools](docs/comparison.md), [how Flisk CLI works alongside Helm](https://flisk.sh/docs/with-helm/), the [service schema](runtime/engine/schemas/service-schema.json), and the [project configuration schema](runtime/engine/schemas/project-schema.json).
299
302
 
300
303
  ## Terminal UI
301
304
 
@@ -352,7 +355,7 @@ Public npm is the recommended default. To install through GitHub Packages instea
352
355
  - You do not want `service.json` manifests and generated local configuration.
353
356
 
354
357
  ## Troubleshooting
355
- Set `TDK_DEBUG=1` before running `flisk up --verbose` to include Starlark debug logs in Tilt output.
358
+ Set `FLISK_DEBUG=1` before running `flisk up --verbose` to include Starlark debug logs in Tilt output.
356
359
 
357
360
  ## Docs
358
361
 
@@ -389,9 +392,9 @@ Set `TDK_DEBUG=1` before running `flisk up --verbose` to include Starlark debug
389
392
 
390
393
  ## History
391
394
 
392
- Flisk development began on 21 April 2026. The archived, read-only [flisk-sh/tdk](https://github.com/flisk-sh/tdk)
393
- repository records its [first commit](https://github.com/flisk-sh/tdk/commit/1714637637196ed54cbfa18534230a782c05ab36)
394
- ("Initial commit: Flisk specs, generators, CLI, and standards") from that day. A separate `tdk-cli` history spanning 21 April to
395
+ Flisk development began on 21 April 2026. The archived, read-only [flisk-sh/flisk](https://github.com/flisk-sh/flisk)
396
+ repository records its [first commit](https://github.com/flisk-sh/flisk/commit/1714637637196ed54cbfa18534230a782c05ab36)
397
+ ("Initial commit: Flisk specs, generators, CLI, and standards") from that day. A separate `flisk-cli` history spanning 21 April to
395
398
  18 September 2026 was [imported into this repository](https://github.com/flisk-sh/flisk/pull/670) as 306 filtered
396
399
  commits. Those commits are now ancestors of `main`; the import did not change the source tree.
397
400
 
@@ -400,7 +403,7 @@ published on 21 September 2026. Those dates describe the current repository and
400
403
 
401
404
  ## Requirements and support
402
405
 
403
- For the local runtime, install Docker (Desktop, OrbStack, or Colima; Engine 25+, Compose 2.20.2+) and [Tilt](https://docs.tilt.dev/install.html). Bun 1.2+ is used by the default generated services. Flisk selects host ports from bounded fallback ranges for HTTP, HTTPS, and Postgres; set `TDK_HTTP_PORT`, `TDK_HTTPS_PORT`, or `TDK_POSTGRES_PORT` to override them. Dev ports listen on `127.0.0.1` only, so other machines on your network cannot reach them. Set `TDK_BIND_ADDRESS` (for example `0.0.0.0`, to test from a phone) to change that; `flisk doctor` warns when it is a wildcard address. Flisk supports macOS, Linux, and Windows through WSL2 Ubuntu; native Windows supports CLI inspection only. Run `flisk doctor` to check local readiness (supports `--no-ping` to skip service health checks and `--ping-timeout <ms>`). See [WSL2 setup](docs/wsl2.md).
406
+ For the local runtime, install Docker (Desktop, OrbStack, or Colima; Engine 25+, Compose 2.20.2+) and [Tilt](https://docs.tilt.dev/install.html). Bun 1.2+ is used by the default generated services. Flisk selects host ports from bounded fallback ranges for HTTP, HTTPS, and Postgres; set `FLISK_HTTP_PORT`, `FLISK_HTTPS_PORT`, or `FLISK_POSTGRES_PORT` to override them. Dev ports listen on `127.0.0.1` only, so other machines on your network cannot reach them. Set `FLISK_BIND_ADDRESS` (for example `0.0.0.0`, to test from a phone) to change that; `flisk doctor` warns when it is a wildcard address. Flisk supports macOS, Linux, and Windows through WSL2 Ubuntu; native Windows supports CLI inspection only. Run `flisk doctor` to check local readiness (supports `--no-ping` to skip service health checks and `--ping-timeout <ms>`). See [WSL2 setup](docs/wsl2.md).
404
407
 
405
408
  On native Windows, `flisk --version`, `flisk doctor`, and `flisk up --dry-run` are inspect-only commands. `flisk up` exits 1 with “Landscape startup needs Ubuntu on WSL2. Native Windows is inspect-only.”
406
409
 
@@ -474,8 +477,8 @@ Then run `flisk doctor` and retry the same task. If the problem persists, [open
474
477
 
475
478
  ## Contributing and license
476
479
 
477
- Contributions are welcome. Start with [CONTRIBUTING.md](CONTRIBUTING.md) and the [contributor guide](docs/contributing/README.md). For the project structure, see the [architecture and repository map](docs/project-overview.md). To review pull requests, see [Review a pull request](docs/contributing/04-review-a-pr.md). Report security issues using [SECURITY.md](SECURITY.md).
480
+ Contributions are welcome. Start with [CONTRIBUTING.md](.github/CONTRIBUTING.md) and the [contributor guide](docs/contributing/README.md). For the project structure, see the [architecture and repository map](docs/project-overview.md). To review pull requests, see [Review a pull request](docs/contributing/04-review-a-pr.md). Report security issues using [SECURITY.md](.github/SECURITY.md).
478
481
 
479
- Flisk is MIT-licensed; see [LICENSE](LICENSE). The [license boundary](GOVERNANCE.md#license-boundary-and-donation-scope) says which code is MIT and which is downloaded with a key.
482
+ Flisk is MIT-licensed; see [LICENSE](LICENSE). The [license boundary](docs/project/GOVERNANCE.md#license-boundary-and-donation-scope) says which code is MIT and which is downloaded with a key.
480
483
 
481
- Project governance: [GOVERNANCE.md](GOVERNANCE.md), [MAINTAINERS.md](MAINTAINERS.md), [ADOPTERS.md](ADOPTERS.md).
484
+ Project governance: [GOVERNANCE.md](docs/project/GOVERNANCE.md), [MAINTAINERS.md](docs/project/MAINTAINERS.md), [ADOPTERS.md](docs/project/ADOPTERS.md).
@@ -33,7 +33,7 @@ async function getClient(): Promise<Client> {
33
33
  await c.connect();
34
34
  if (!initialized) {
35
35
  await c.query(\`
36
- CREATE TABLE IF NOT EXISTS tdk_agent_sessions (
36
+ CREATE TABLE IF NOT EXISTS flisk_agent_sessions (
37
37
  session_id VARCHAR(128) PRIMARY KEY,
38
38
  messages JSONB NOT NULL DEFAULT '[]'::jsonb,
39
39
  updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
@@ -59,7 +59,7 @@ const store = {
59
59
  async load(sessionId: string): Promise<Checkpoint> {
60
60
  try {
61
61
  const c = await getClient();
62
- const res = await c.query('SELECT messages FROM tdk_agent_sessions WHERE session_id = $1', [sessionId]);
62
+ const res = await c.query('SELECT messages FROM flisk_agent_sessions WHERE session_id = $1', [sessionId]);
63
63
  if (res.rows.length > 0 && res.rows[0].messages) {
64
64
  return { sessionId, messages: res.rows[0].messages };
65
65
  }
@@ -72,7 +72,7 @@ const store = {
72
72
  async save(checkpoint: Checkpoint): Promise<void> {
73
73
  const c = await getClient();
74
74
  await c.query(
75
- \`INSERT INTO tdk_agent_sessions (session_id, messages, updated_at)
75
+ \`INSERT INTO flisk_agent_sessions (session_id, messages, updated_at)
76
76
  VALUES ($1, $2, NOW())
77
77
  ON CONFLICT (session_id) DO UPDATE
78
78
  SET messages = EXCLUDED.messages, updated_at = NOW()\`,
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) 2026 Flisk Landscape contributors
2
2
  // SPDX-License-Identifier: MIT
3
- import { TdkError } from "../utils/errors.js";
3
+ import { FliskError } from "../utils/errors.js";
4
4
  import { customAgentRuntime } from "./custom.js";
5
5
  /**
6
6
  * Agent runtimes an `agent` resource can be scaffolded with. No runtime is privileged: each is a scaffold plus the
@@ -16,7 +16,7 @@ export function resolveAgentRuntime(runtimeId) {
16
16
  const provider = AGENT_RUNTIMES[id];
17
17
  if (!provider) {
18
18
  const supported = Object.keys(AGENT_RUNTIMES).join(", ");
19
- throw new TdkError(`Unknown agent runtime "${id}". Supported runtimes: ${supported}.`, [
19
+ throw new FliskError(`Unknown agent runtime "${id}". Supported runtimes: ${supported}.`, [
20
20
  `Use one of: ${supported}`,
21
21
  `Omit --runtime to use ${DEFAULT_AGENT_RUNTIME}`,
22
22
  ]);
@@ -26,7 +26,7 @@ export function resolveAgentRuntime(runtimeId) {
26
26
  export function resolveAgentDurability(value) {
27
27
  const durability = value ?? "files";
28
28
  if (!AGENT_DURABILITY_OPTIONS.includes(durability)) {
29
- throw new TdkError(`Unknown --durability "${durability}".`, [
29
+ throw new FliskError(`Unknown --durability "${durability}".`, [
30
30
  `Use one of: ${AGENT_DURABILITY_OPTIONS.join(", ")}`,
31
31
  ]);
32
32
  }
@@ -3,7 +3,7 @@
3
3
  import { resolveAgentRuntime } from "../agent-runtimes/registry.js";
4
4
  import { getBackendIndexTemplate } from "../backend-languages/bun.js";
5
5
  import { BACKEND_LANGUAGES, getBackendLanguage } from "../backend-languages/registry.js";
6
- import { TdkError } from "../utils/errors.js";
6
+ import { FliskError } from "../utils/errors.js";
7
7
  import { elysiaBackendProvider } from "./elysia.js";
8
8
  import { expressBackendProvider } from "./express.js";
9
9
  import { fastifyBackendProvider } from "./fastify.js";
@@ -43,7 +43,7 @@ function compatibleLanguages(frameworkId) {
43
43
  // Only the "a language that owns its runtime cannot be combined with a framework" rule is
44
44
  // expected here. Any other error is a bug and must surface instead of silently shrinking
45
45
  // the language column.
46
- if (error instanceof TdkError)
46
+ if (error instanceof FliskError)
47
47
  return false;
48
48
  throw error;
49
49
  }
@@ -83,7 +83,7 @@ export function getBackendFramework(frameworkId) {
83
83
  const provider = Object.hasOwn(BACKEND_FRAMEWORKS, id) ? BACKEND_FRAMEWORKS[id] : undefined;
84
84
  if (!provider) {
85
85
  const supportedIds = Object.keys(BACKEND_FRAMEWORKS).join(", ");
86
- throw new TdkError(`Unknown backend framework "${frameworkId}". Supported frameworks: ${supportedIds}.`, [`Use one of: ${supportedIds}`, `Omit --framework to use ${DEFAULT_BACKEND_FRAMEWORK}`]);
86
+ throw new FliskError(`Unknown backend framework "${frameworkId}". Supported frameworks: ${supportedIds}.`, [`Use one of: ${supportedIds}`, `Omit --framework to use ${DEFAULT_BACKEND_FRAMEWORK}`]);
87
87
  }
88
88
  return provider;
89
89
  }
@@ -95,13 +95,13 @@ export function resolveBackendFramework(resourceType, frameworkId, language) {
95
95
  // `mcp` is a resource type with one fixed scaffold, so a framework choice does not apply to it.
96
96
  if (resourceType === "mcp") {
97
97
  if (frameworkId !== undefined) {
98
- throw new TdkError("--framework cannot be combined with --type mcp.", [
98
+ throw new FliskError("--framework cannot be combined with --type mcp.", [
99
99
  "An mcp resource always scaffolds a Model Context Protocol server",
100
100
  "Drop --framework, or use --type backend --framework <id>",
101
101
  ]);
102
102
  }
103
103
  if (language?.createFiles) {
104
- throw new TdkError(`--language ${language.id} cannot be combined with --type mcp.`, [
104
+ throw new FliskError(`--language ${language.id} cannot be combined with --type mcp.`, [
105
105
  "An mcp resource is a Bun service; drop --language",
106
106
  ]);
107
107
  }
@@ -111,12 +111,12 @@ export function resolveBackendFramework(resourceType, frameworkId, language) {
111
111
  // `flisk resource` validates --runtime before it scaffolds, so the package.json and tsconfig always match the chosen runtime.
112
112
  if (resourceType === "agent") {
113
113
  if (frameworkId !== undefined && frameworkId !== "custom") {
114
- throw new TdkError("--framework cannot be combined with --type agent.", [
114
+ throw new FliskError("--framework cannot be combined with --type agent.", [
115
115
  "An agent resource is scaffolded by an agent runtime; use --runtime <id> instead",
116
116
  ]);
117
117
  }
118
118
  if (language?.createFiles) {
119
- throw new TdkError(`--language ${language.id} cannot be combined with --type agent.`, [
119
+ throw new FliskError(`--language ${language.id} cannot be combined with --type agent.`, [
120
120
  "An agent resource is a Bun service; drop --language",
121
121
  ]);
122
122
  }
@@ -125,7 +125,7 @@ export function resolveBackendFramework(resourceType, frameworkId, language) {
125
125
  if (resourceType !== "backend" || frameworkId === undefined)
126
126
  return undefined;
127
127
  if (language?.createFiles) {
128
- throw new TdkError(`--framework cannot be combined with --language ${language.id}.`, [
128
+ throw new FliskError(`--framework cannot be combined with --language ${language.id}.`, [
129
129
  `The ${language.id} provider owns its runtime and framework`,
130
130
  "Drop --framework, or use --language bun",
131
131
  ]);
@@ -1,4 +1,7 @@
1
- export const PYTHON_DEV_COMMAND = "uvicorn main:app --app-dir src --host 0.0.0.0 --port ${PORT:-4000} --reload --reload-dir src";
1
+ // ${PORT:-4000} is shell parameter expansion. Split so Biome does not read it
2
+ // as a JS template placeholder and the shell still receives the literal form.
3
+ export const PYTHON_DEV_COMMAND = "uvicorn main:app --app-dir src --host 0.0.0.0 --port $" +
4
+ "{PORT:-4000} --reload --reload-dir src";
2
5
  export const pythonBackendProvider = {
3
6
  id: "python",
4
7
  label: "Python 3.12 + FastAPI",
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) 2026 Flisk Landscape contributors
2
2
  // SPDX-License-Identifier: MIT
3
- import { TdkError } from "../utils/errors.js";
3
+ import { FliskError } from "../utils/errors.js";
4
4
  import { bunBackendProvider } from "./bun.js";
5
5
  import { goBackendProvider } from "./go.js";
6
6
  import { nodeBackendProvider } from "./node.js";
@@ -19,7 +19,7 @@ export function getBackendLanguage(languageId) {
19
19
  const provider = Object.hasOwn(BACKEND_LANGUAGES, id) ? BACKEND_LANGUAGES[id] : undefined;
20
20
  if (!provider) {
21
21
  const supportedIds = Object.keys(BACKEND_LANGUAGES).join(", ");
22
- throw new TdkError(`Unknown backend language "${languageId}". Supported languages: ${supportedIds}.`, [`Use one of: ${supportedIds}`, `Omit --language to use ${DEFAULT_BACKEND_LANGUAGE}`]);
22
+ throw new FliskError(`Unknown backend language "${languageId}". Supported languages: ${supportedIds}.`, [`Use one of: ${supportedIds}`, `Omit --language to use ${DEFAULT_BACKEND_LANGUAGE}`]);
23
23
  }
24
24
  return provider;
25
25
  }
@@ -27,7 +27,7 @@ export function getBackendLanguage(languageId) {
27
27
  export function resolveBackendLanguage(resourceType, languageId) {
28
28
  if (resourceType !== "backend") {
29
29
  if (languageId !== undefined) {
30
- throw new TdkError("--language can only be used with --type backend.", [
30
+ throw new FliskError("--language can only be used with --type backend.", [
31
31
  "Add --type backend, or drop --language for this resource type",
32
32
  ]);
33
33
  }
package/cli/dist/cli.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  // Copyright (c) 2026 Flisk Landscape contributors
3
3
  // SPDX-License-Identifier: MIT
4
+ import "./utils/env-compat-init.js";
4
5
  import { existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from "node:fs";
5
6
  import { homedir } from "node:os";
6
7
  import { isAbsolute, join, resolve } from "node:path";
@@ -32,7 +33,7 @@ if (templateArg) {
32
33
  // Native Windows cannot boot a stack, so the one-command flow refuses before it clones a
33
34
  // template, installs the CLI globally or writes into the home directory.
34
35
  const { nativeWindowsStackRefusal } = await import("./utils/native-windows.js");
35
- const platformRefusal = nativeWindowsStackRefusal(process.platform, process.env.TDK_ALLOW_NATIVE_WINDOWS);
36
+ const platformRefusal = nativeWindowsStackRefusal(process.platform, process.env.FLISK_ALLOW_NATIVE_WINDOWS);
36
37
  if (platformRefusal) {
37
38
  console.error(chalk.red(`❌ ${platformRefusal}`));
38
39
  console.error(chalk.gray(" Run it from Ubuntu in WSL2. Guide: docs/wsl2.md"));
@@ -71,7 +72,7 @@ if (templateArg) {
71
72
  // dependency install are skipped, so the recording starts on the interesting part.
72
73
  let reused = false;
73
74
  if (fixedDir && existsSync(destination)) {
74
- if (!existsSync(join(destination, ".tdk", "project.json"))) {
75
+ if (!existsSync(join(destination, ".flisk", "project.json"))) {
75
76
  console.log(chalk.yellow(`${destination} already exists and is not a Flisk project.`));
76
77
  console.log(chalk.gray(" Remove it, or use --project <dir> to put the demo somewhere else."));
77
78
  process.exit(1);
@@ -230,7 +231,7 @@ if (templateArg) {
230
231
  const first = await pickReadyFrontend(targets, 30_000);
231
232
  if (first)
232
233
  await openUrl(first.url);
233
- const generated = countFiles(join(destination, ".tdk"));
234
+ const generated = countFiles(join(destination, ".flisk"));
234
235
  const wired = countFiles(destination, ["node_modules", ".git"]);
235
236
  stage.update({ subtitle: `${templateArg} starter \u00b7 ${countLabel(wired, "file")} wired` });
236
237
  stage.finish({
@@ -8,24 +8,24 @@ import { fileURLToPath } from "node:url";
8
8
  import { expect } from "vitest";
9
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
10
10
  export const repoRoot = resolve(__dirname, "../../../..");
11
- export const cliBin = join(repoRoot, "cli", "bin", "tdk.js");
12
- export function runTdk(args, cwd, input) {
11
+ export const cliBin = join(repoRoot, "cli", "bin", "flisk.js");
12
+ export function runFlisk(args, cwd, input) {
13
13
  return execFileSync(process.execPath, [cliBin, ...args], {
14
14
  cwd,
15
15
  encoding: "utf-8",
16
16
  input,
17
17
  env: {
18
18
  ...process.env,
19
- TDK_EXTENSION_SOURCE: repoRoot,
19
+ FLISK_EXTENSION_SOURCE: repoRoot,
20
20
  },
21
21
  });
22
22
  }
23
23
  /** `flisk doctor` exits non-zero on machines without Docker, so read its output either way. */
24
- export function runTdkAllowFailure(args, cwd) {
24
+ export function runFliskAllowFailure(args, cwd) {
25
25
  const result = spawnSync(process.execPath, [cliBin, ...args], {
26
26
  cwd,
27
27
  encoding: "utf-8",
28
- env: { ...process.env, TDK_EXTENSION_SOURCE: repoRoot },
28
+ env: { ...process.env, FLISK_EXTENSION_SOURCE: repoRoot },
29
29
  });
30
30
  return `${result.stdout}${result.stderr}`;
31
31
  }
@@ -36,7 +36,7 @@ export function runTdkAllowFailure(args, cwd) {
36
36
  * generate its own.
37
37
  */
38
38
  export function copyProject(source) {
39
- const target = mkdtempSync(join(tmpdir(), "tdk-project-copy-"));
39
+ const target = mkdtempSync(join(tmpdir(), "flisk-project-copy-"));
40
40
  cpSync(source, target, { recursive: true });
41
41
  return target;
42
42
  }