TDK CLI (from the tdk-landscape organization) is a relatively new, MIT-licensed command-line tool that converts simple service.json manifests into a local Docker + Tilt stack.
The pitch is straightforward: describe services once, run tdk up, and get generated Dockerfiles (with “golden” L1–L4 layering), Traefik routing, Tilt live-update config, health checks, shared infrastructure wiring (Postgres, NATS, etc.), and hot reload—without maintaining Compose files or running local Kubernetes.
Production remains on Helm, Argo CD, or Kustomize. Core functionality is free; premium features (Verdaccio, certain scaffolding, Sablier idle stop, some generators) require a license key at roughly $19/dev/month.
The project is young (core repo activity largely from September 2026 onward), with modest GitHub traction (~23 stars, 30 forks on tdk-cli-core as of recent checks) and a handful of listed early adopters. It is actively developed, ships frequent releases (1.3.x series), includes tdk doctor, drift verification (tdk config verify), an interactive terminal UI (tdk ui), MCP server support for coding agents, and example landscapes. Native full runtime is macOS/Linux/WSL2 Ubuntu; native Windows is inspection-only.
Here is a critical, point-by-point assessment across concept, implementation, usability, limitations, and suitability. These are analytical observations based on public documentation, GitHub activity, and stated claims—not personal runtime testing.
Concept, Positioning, and Philosophy
- Single-source-of-truth manifests (
service.json) meaningfully reduce config sprawl compared with hand-maintained Compose + Dockerfiles + reverse-proxy rules + Tiltfiles. - Explicitly not a deploy tool and not a Compose replacement—honest positioning that avoids over-claiming.
- Production stays on Helm/Argo/Kustomize creates a deliberate local/prod divergence; this can amplify “works on my machine” problems for teams that care about parity.
- “Replace the setup wiki with
tdk doctor+tdk up” is a strong goal, but onboarding time savings are unmeasured on real hiring cohorts (explicitly noted in docs). - Opinionated Project → Stack → Resource (PSR) hierarchy is useful for larger systems but adds learning overhead for small or simple services.
- Auto-discovery of services in directory structures is convenient yet couples you to their conventions.
- Built with agents in mind (MCP server, skills, AGENTS.md generation) is forward-looking, though still niche for most teams.
Generation, Configuration, and Maintainability
- Generated files are treated as a contract;
tdk config verifyand regenerate help catch drift—good discipline. - Risk remains that teams will hand-edit generated files and then fight regeneration; the system assumes discipline.
- Golden-layer Dockerfiles optimize cache layers in an opinionated way; beneficial if you stay inside their model, less so if you need heavy customization.
- Deterministic generation and port planning reduce surprise, but automated port selection (80 or 8080–8180 range) can still collide with host services.
- Drift detection and regeneration have had bugs (e.g., certain generated files not fully restored); ongoing fixes indicate the machinery is still maturing.
- Scaffolding (
tdk resource,tdk project) accelerates greenfield work; advanced scaffolding (DDD, certain generators) is premium-gated. - Shared infrastructure (Postgres, Traefik, optional monitoring/ELK/Debezium) is auto-wired, cutting boilerplate, but couples you to their platform feature flags.
Performance and Runtime Behavior
- Warm-start claims (e.g., 14 tiny services healthy in ~4.6 s on a 16 GB M1 after images exist) are impressive under idealized conditions.
- Cold starts and real services with dependencies are slower and more memory-heavy; the docs correctly flag that benchmarks are not cold boots or production-like workloads.
- Scale fixture of ~100 small generated services booting in roughly 8 minutes on a clean CI runner is notable, yet resource consumption for realistic services is less quantified.
- Tilt live update provides proven hot-reload; performance inherits Tilt’s strengths and limitations.
- Health-check improvements (moving away from simplistic
bun --version/node --versionprobes toward actual HTTP checks) fixed a real correctness issue. - Selective stack startup (
tdk up <stack>) and dry-run mode are practical for large systems.
Dependencies, Platform, and Operations
- Hard dependency on Docker (or compatible runtime) and Tilt means TDK inherits every operational quirk of both.
- Full runtime requires macOS, Linux, or Ubuntu under WSL2; native Windows is limited to inspection commands—an important constraint for many organizations.
- Node.js 22.12+ is required only for the npm install path; prebuilt binaries avoid that, which is helpful.
- Localhost binding by default is a sensible security choice; external binding requires explicit configuration with the expected warnings.
- No telemetry is a clear privacy positive.
-
tdk doctoris a useful preflight that surfaces missing prerequisites before you waste time. - Interactive
tdk uidashboard exists but has had layout and mouse-handling issues that required fixes.
Licensing, Community, and Maturity
- MIT core with no key required for basic
tdk upis developer-friendly. - Premium features behind a key introduce friction and a commercial layer; whether the extras justify $19/dev/month depends on team needs (Verdaccio, certain generators, priority support).
- Small GitHub footprint (~23 stars, limited listed adopters) and young age imply higher bus-factor and support risk compared with mature tools.
- High issue volume and rapid commit activity show active maintenance, but also indicate the project is still finding edge cases.
- Contributions are welcomed (including Hacktoberfest-style issues), and governance/docs exist—positive for an early project.
- Self-reported benchmarks and performance numbers need independent verification by teams before relying on them.
- Explicit “when not to use” guidance (existing Compose/Tilt already works, pure Helm workflow, aversion to manifests) is refreshingly honest.
Comparisons, Suitability, and Risks
- Versus pure Docker Compose: TDK eliminates more boilerplate and adds live reload + health-ordered startup, at the cost of an extra abstraction and generation step.
- Versus local Kubernetes tooling (Skaffold, DevSpace, Garden, etc.): avoids cluster overhead and YAML volume, but loses closer production parity.
- Versus cloud dev environments (Codespaces, Gitpod, etc.): zero extra compute cost on hardware you already own, but you manage the local machine resources and Docker/Tilt yourself.
- For greenfield multi-service systems that want local iteration without K8s, the approach is compelling; for teams with stable existing local workflows, the switching cost may not pay off.
- Potential for generated-config lock-in exists if you heavily customize outside the generators or rely on premium-only paths.
- Overall maturity is early-stage: promising architecture and pragmatic local-dev focus, but limited real-world adoption data, incomplete Windows story, and ongoing bug fixes mean it is best evaluated as a pilot rather than a drop-in standard for large organizations.
Bottom Line
TDK CLI addresses a genuine pain point—config sprawl and slow local onboarding for multi-service systems—by leaning on manifests + generation + Tilt. The free core is usable, the docs are relatively clear about limitations, and the agent-oriented features show awareness of current tooling trends. At the same time, it is young, lightly starred, platform-constrained, and still resolving correctness and regeneration issues. Teams should start with the official example (tdk project example then tdk up), measure warm/cold behavior on their actual services and hardware, and compare directly against a well-tuned Compose or Tilt setup before committing. For pure greenfield local development of several services, it is worth a serious look; for everyone else, the existing tools may already be sufficient.
Top comments (1)
Concept, Positioning, and Philosophy
Single-source-of-truth manifests (service.json) meaningfully reduce config sprawl compared with hand-maintained Compose + Dockerfiles + reverse-proxy rules + Tiltfiles.
Explicitly not a deploy tool and not a Compose replacement—honest positioning that avoids over-claiming.
Production stays on Helm/Argo/Kustomize creates a deliberate local/prod divergence; this can amplify “works on my machine” problems for teams that care about parity.
“Replace the setup wiki with tdk doctor + tdk up” is a strong goal, but onboarding time savings are unmeasured on real hiring cohorts (explicitly noted in docs).
Opinionated Project → Stack → Resource (PSR) hierarchy is useful for larger systems but adds learning overhead for small or simple services.
Auto-discovery of services in directory structures is convenient yet couples you to their conventions.
Built with agents in mind (MCP server, skills, AGENTS.md generation) is forward-looking, though still niche for most teams.