veld start
That's the replacement.
From zero to running in five steps
Everything you need to go from a fresh machine to a fully orchestrated local stack.
Install veld
Downloads the correct binary for your OS and architecture.
No sudo required. Commands auto-bootstrap on first use. For clean URLs without port numbers, run veld setup privileged (one-time sudo).
Teach your agent
Install agent skills so your coding agent knows how to configure, use, and collaborate through veld. Works with Claude Code, Cursor, Codex, Windsurf, and 40+ more.
Initialize your project
Creates a veld.json in your project root.
Configure your services
Define your stack: services, dependencies, health checks, and URL templates.
Start it up
Veld resolves the dependency graph, allocates ports, starts processes, runs health checks, and gives you HTTPS URLs.
Agent-first by design
AI agents can generate veld.json configurations using skills and tool integrations. veld's structured output (--json) makes it fully scriptable for agent workflows.
Automatic dependency resolution
Declare what depends on what. Veld starts services in the correct order, waits for health checks, and wires URLs together.
Everything you need, nothing you don't
A single tool that replaces your pile of scripts, port spreadsheets, and certificate hacks.
No port numbers
Clean HTTPS URLs for every service. No more localhost:3000.
Custom domains
Use any domain pattern: {service}.{branch}.acme.com or your own apex. Requires veld setup privileged.
Standardized schema
JSON Schema-backed veld.json with editor autocompletion and validation.
Agent-first
Every command supports --json. Built-in feedback overlay for human-agent collaboration. Agent skills teach your coding agent how to use veld: npx skills add prosperity-solutions/veld
Worktree compatible
{worktree} and {branch} variables in URL templates for git-worktree workflows.
Variant support
Same service, multiple ways to run it: local, Docker, remote URL. Switch with one flag.
Presets
Named shortcuts like fullstack or api-only for common service combinations.
Framework agnostic
Starts any process: Node, Rust, Python, Go, Ruby, Docker, shell scripts. If it binds a port, veld orchestrates it.
Dependency graphs
Declare dependencies, veld resolves startup order and parallelizes where possible.
Health checks
Two-phase verification (TCP + HTTP) before routing traffic. No more "is it ready yet?"
Named runs
Multiple environments coexist. --name feature-auth and --name feature-pay run side by side.
Auto-trusted TLS
Caddy provisions certificates. Your browser trusts them. No warnings, ever.
Talk to your AI agent while it works
When an AI agent is building your app, you can give it feedback directly through the browser. No context-switching. No copy-pasting screenshots.
Feedback sent to agent
This is what it feels like to talk to your AI agent while it works.
Common scenarios, solved
Expand each to see the exact config and commands.
Collaborating with Claude Code on a full-stack app
You're building a SaaS app with PostgreSQL, a Rust API, and a Next.js frontend. Claude Code reads your codebase, generates the veld.json, and starts iterating. You give feedback through the browser overlay while the agent works.
Your full stack runs at:
https://database.dev.myapp.localhost
https://api.dev.myapp.localhost
https://web.dev.myapp.localhost
The --json flag on every command makes veld fully scriptable. The agent parses structured output, checks health status, and reacts to errors programmatically.
Collaborating with Cursor on frontend styling
Your backend is stable but you're iterating fast on the UI. Cursor is making styling changes while you preview them live with trusted HTTPS -- so OAuth redirects, secure cookies, and WebSocket connections all work exactly like production.
Because veld gives you real HTTPS with trusted certificates, you can test service workers, push notifications, and secure cookie flows without any browser warnings.
Running parallel feature branches with isolated environments
Two features in flight at the same time? No problem. Each --name creates a fully isolated environment with its own ports, DNS entries, and HTTPS certificates.
Each environment gets unique URLs -- no port conflicts, no crossed wires:
https://frontend.feature-auth.acme.com
https://frontend.feature-payments.acme.com
Use {branch} in your URL template for automatic branch-based naming:
Setting up a complex microservices stack
You have 6 services: a gateway, two APIs, a worker, Redis, and Postgres. Some run in Docker, some run locally. veld resolves the dependency graph and starts everything in the right order.
Then:
Every service gets its own HTTPS URL. The gateway sees the real URLs of each upstream service through environment variable interpolation. No hardcoded ports anywhere.
veld.json
Your project's configuration lives in a single veld.json file. Here are the key concepts.
Nodes & Variants
Each service is a node with one or more variants (e.g., database:docker vs database:local). Variants define how to start the service: the command, health check, environment variables, and outputs.
Dependencies
Variants declare their dependencies as depends_on pairs. veld resolves the full graph, starts services in topological order, waits for health checks, and wires URLs together via variable interpolation.
Step Types
start_server runs a long-lived process with port allocation, DNS routing, and health monitoring. command runs a one-shot script (migrations, setup tasks) with optional output capture.
Presets & URLs
Presets are named shortcuts for common service selections. URL templates like {service}.{run}.{project}.localhost give each service a clean, predictable HTTPS address.
The full configuration schema is available as a JSON Schema -- use it for editor autocompletion and validation.
View JSON SchemaAdd "$schema": "https://veld.oss.life.li/schema/v1/veld.schema.json" to your veld.json for IDE support.