Building software is faster than deploying it.
dploycloses that gap.
Point dploy at a GitHub repo (or a local project), and it provisions an ephemeral sandbox, figures out how to run it, and hands you a live URL — without you touching a config file.
Deployment usually requires someone to inspect the repo, pick a runtime, identify install and start commands, find the right port, and wire everything together manually. AI tools have cut the time it takes to build software, but that deployment overhead remains.
dploy absorbs that step. It uses deterministic heuristics for common stacks (Node, Python, Go) and falls back to an agent-driven analysis pass for anything messier. Multi-service repos, CLI tools, and non-standard layouts are handled, not rejected.
| Layer | Tech |
|---|---|
| Frontend | React, Vite, TanStack Query, Tailwind, xterm.js |
| Backend | FastAPI, SQLAlchemy, Pydantic |
| Sandbox runtime | Modal |
| Agent runtime | OpenClaw |
| Models | Claude Haiku 4.5 (configurable) |
| Auth | GitHub OAuth |
| CLI | TypeScript, Ink |
The fastest way to get dploy on your machine:
npm install -g @ryantanen/dploy…or, without npm, fetch the prebuilt bundle from GitHub Releases:
curl -fsSL https://raw.githubusercontent.com/nathanaronson/hp-sp-26/main/install.sh | bashBoth install the same self-contained Node bundle (built by CI from
cli/). Requires Node ≥ 20. Point at a backend with
export DPLOY_API_URL=https://your-backend.
make installmake devThis starts the FastAPI backend on http://localhost:8000 and the Vite frontend dev server concurrently. Ctrl-C stops both.
make backend # FastAPI only
make frontend # Vite onlymake cli ARGS="deploy https://github.com/org/repo"Pass any dploy arguments via ARGS. See dploy --help for the full command reference.
dploy deploy [path|github-url] Deploy a local project or GitHub repo
dploy list List all deployments
dploy status <id> Check deployment status
dploy stop <id> Tear down a deployment
dploy open <id> Open the deployment URL in your browser
dploy login Authenticate via GitHub OAuth
dploy logout
dploy whoami Print the current user
make test # Run backend tests (pytest)
make lint # Lint backend (ruff) + frontend (eslint)
make fmt # Format backend with ruff
make api # Regenerate typed API client from OpenAPI schema
make build # Production build of the frontend
make clean # Remove caches, dist artifacts, and local DBEach deployment follows this pipeline:
- Provision or acquire a warm sandbox (pool kept ready to avoid cold-start latency)
- Clone the repo / receive the uploaded tarball
- Run a deterministic heuristic analysis — common stacks skip the LLM entirely
- If needed, Agent #1 inspects the codebase and produces an install/build/start plan
- CLI repos are exposed as a browser terminal via
ttyd - Web apps go through Agent #2: build, start, discover ports, verify HTTP, report live services
- Tunnels are opened for detected ports and URLs are stored
- Nathan Aronson
- Kaitlyn Kwan
- Ryan Tanenholz
- Samuel Lao