Changelog
What's new in Launchmatic.
Release-phase pre-deploy command (auto DB migrations)
First-class release phase à la Heroku / Render / Railway. Set a `preDeployCmd` on any service ("npx prisma migrate deploy", "alembic upgrade head", "rails db:migrate", etc.) and Launchmatic runs it in a one-shot Kubernetes Job using the freshly-built image with your service's env vars, blocks rollout until success, and appends the Job's logs to the deployment's build logs. Failure aborts the deploy — no traffic shift. Skipped for preview deploys. Available in the dashboard (Service settings → Pre-deploy Command), via CLI (`lm deploy --pre-deploy-cmd "…"`), and in the API.
Build logs preserved on successful builds, viewable from the CLI
Two related fixes. (1) The builder now persists build logs on a successful build, not just on failure — previously a "build OK, deploy timed out" sequence left customers staring at an empty log. (2) The deployer appends its phase output under a `── Deploy phase ──` divider instead of overwriting the builder's logs. (3) New `lm logs --build [--service <name>] [--deployment <id>]` prints the full build log for any deployment (latest by default) with header (commit/branch/status) so it's paste-ready when reporting issues.
Monorepo overhaul: infra discovery, interactive review, multi-service deploys
`lm monorepo init` now discovers services AND infra (parses docker-compose for postgres/postgis/redis/mongodb/mysql), shows everything as numbered lists, and lets you remove or edit any entry before anything hits the platform. The manifest now carries a per-service `dockerfile` field; `lm up` PATCHes each service with manifest-level overrides (dockerfile, rootDir, buildCmd, startCmd) before deploying so editing launchmatic.json takes effect on the next run. `lm status` and `lm deploy` are both monorepo-aware: `lm status` fans out across every service, `lm deploy` auto-matches the cwd to a service's rootDir or accepts `--service <name>` from anywhere in the repo. New MCP tool `redeploy_project` lets agents one-shot deploy every service in a project (the agent equivalent of `lm up`).
User-controllable Dockerfile path
Surface the per-service `dockerfilePath` setting in the dashboard and CLI so monorepo Dockerfiles (e.g. `apps/web/Dockerfile` with build context at the repo root for shared lockfiles) can be configured without leaving your normal flow. Auto-detected by `lm monorepo init`, settable via Service settings UI, and via `lm deploy --dockerfile <path>` for one-off overrides.
Workflows surface — Stirrup workflows, dashboard tab, agent tools, CLI
Stirrup workflows running on your deployed services now have first-class platform surface. New Workflows tab on every Stirrup service (auto-detected via framework=Stirrup) lists workflow definitions, recent runs, and gives you a JSON input editor + Run button per workflow. New `lm workflows list/run/runs` CLI commands. New agent tools `list_stirrup_workflows` and `run_stirrup_workflow` so MCP clients (Claude Code, Cursor) can discover and trigger your workflows by name.
Service Insights tab — health, pods, events, activity in one view
New default tab on every service: status pill, replicas ready, restart counts, current CPU/memory, recent cluster events (OOMKilled / CrashLoopBackOff highlighted), interleaved deploy + audit timeline. Auto-refreshes every 15s. All from existing telemetry — no extra agents to install.
Explain this incident — agent button on degraded services
When the Insights tab detects a problem (down/degraded, restarts, OOM events, failed deploy) an Explain button appears on the Health card. One click hands the agent the full health snapshot + recent events; the agent uses get-logs and list-deployments to dig in and writes a 2–3 paragraph plain-English diagnosis with the smallest next action to take.
Recent agent activity on Connected Apps
New section on Settings → Connected Apps showing every tool call any MCP client (Claude Code / Cursor / Codex) or `lm agent` made on your behalf. Tool name, input preview, output, relative timestamp. Write-shaped tools (redeploy, set-env-vars, add-domain, …) are tinted yellow so state-changing actions stand out at a glance.
Security activity page
New Settings → Security view of every authentication event on your account: OAuth consents granted/denied, tokens issued/refreshed/revoked, app grants withdrawn — each with timestamp and source IP. Filter to security events only or see the full audit stream.
Remote MCP server at mcp.launchmatic.io
Plug Claude Code, Cursor, Codex, OpenCode, or any MCP client directly into your Launchmatic account over OAuth — no API key paste, no manual config. Streamable HTTP transport with stateful sessions. 11 concrete tools (whoami, list-services, redeploy, set-env-vars, add-domain, get-logs, …) plus a `launchmatic-agent` meta-tool for fuzzy multi-step requests. Setup docs at /docs/mcp.
lm agent CLI — conversational ops in your terminal
New `lm agent` command launches an interactive REPL backed by the same agent and toolchain as the MCP server. Supports one-shot mode (`-p "why is my api crashing?"`), --json for piping, --thread-id to resume sessions, and --service / --environment scoping. Streams over SSE.
Connected Apps + AI Usage dashboards
Settings → Connected Apps lists every OAuth-authorized client with its scopes and last-used timestamp, with one-click revoke. Settings → AI Usage shows tokens consumed across `lm agent`, Lightspeed, Auto-fix, and image generation — per-provider breakdown, percent-used bars, daily burn-down chart for the agent.
OAuth 2.1 Authorization Server (Launchmatic-as-provider)
Launchmatic is now an OAuth 2.1 provider. Discoverable via standard `.well-known` endpoints (RFC 8414 + RFC 9728). PKCE-only public clients, dynamic client registration (RFC 7591), refresh-token rotation with replay-detection cascade, scope-bounded write access, hourly sweep of expired auth codes and revoked tokens.
use-launchmatic Skill installer
One-line installer at app.launchmatic.io/skills.sh drops the `use-launchmatic` Anthropic Agent Skill into Claude Code, Cursor, OpenCode, or Codex. Auto-detects which agents you have installed and routes user intents to the right `lm` CLI subcommand.
TEAM-tier resources + WebSocket support
TEAM-plan services can now configure CPU and memory limits directly from the service settings UI. Native WebSocket support for real-time apps (chat, collaborative editing, live dashboards) — no extra config, sticky sessions handled automatically.
Bundled CLI on npm — @launchmatic/cli
`npm i -g @launchmatic/cli` now installs a single self-contained binary built with tsup. New commands shipped this cycle: `lm infra`, `lm usage`, `lm preview`, `lm api-key` (alias `lm token`), `lm deployments`, `lm doctor`. See the /cli reference for the full list.
Command Admin: node cordon/uncordon
Operators can now cordon a Kubernetes node directly from the Command Admin Infrastructure UI to drain it for maintenance, then uncordon when ready. Status surfaces inline next to each node.
Stirrup AI workflow detection + Claude Code skill
Quicklaunch now detects Stirrup AI workflow projects and configures them automatically. Bundled Claude Code skill makes the workflows discoverable from inside the editor.
GCP support & scale-to-zero
Deploy to Google Cloud with GKE Autopilot. Services now automatically scale to zero when idle and wake on first request — cutting costs up to 95%.
Custom domains with auto-SSL
Add your own domains to any service. DNS verification, Let's Encrypt certificates, and Ingress routing are fully automated. Just point your CNAME and we handle the rest.
Database provisioning
Spin up managed PostgreSQL and MySQL databases with one click. Connection strings are injected as environment variables automatically.
Public landing page
Launchmatic now has a proper front door. New landing page with feature overview, platform walkthrough, and launch-sequence demo.