Skip to content

Quick Start

DuraGraph ships as a single binary with embedded PostgreSQL and NATS — no infrastructure to provision, no docker compose up.

Pick whichever fits your environment:

Terminal window
# Homebrew (macOS, Linux)
brew install Duragraph/tap/duragraph
# One-line install script
curl -fsSL https://duragraph.ai/install.sh | sh
# From Go
go install github.com/Duragraph/duragraph/cmd/duragraph@latest

Or download a prebuilt binary from the releases page.

Terminal window
duragraph dev

That’s it. The binary boots an embedded PostgreSQL + NATS, starts the engine, and serves the dashboard from the same port:

  • APIhttp://localhost:8081
  • Dashboardhttp://localhost:8081 (same origin; SPA routing)
  • Bootstrap admin — the binary ships with no default credentials. With AUTH_PASSWORD_ENABLED=true, visit /register (or POST to /api/auth/register) and create the first user — they’re auto-promoted to admin. Subsequent users register as pending until an admin approves them.

Open http://localhost:8081, sign in, and head to Playground. Pick a registered assistant, send a message, and watch the workflow execute live: each node lighting up as it runs, the full graph topology, and a replayable event log under Traces.

For richer examples — RAG, tool-using agents, document processing, evals — browse the examples/ directory. Each example runs against duragraph dev out of the box.

If you’d rather drive DuraGraph from your own code, the headline REST endpoints are:

Terminal window
# Create an assistant
curl -X POST http://localhost:8081/api/v1/assistants \
-H "Content-Type: application/json" \
-d '{"name": "hello-assistant", "graph_id": "hello_world"}'
# Create a thread
curl -X POST http://localhost:8081/api/v1/threads \
-H "Content-Type: application/json" \
-d '{}'
# Kick off a run on the thread
curl -X POST http://localhost:8081/api/v1/threads/<thread_id>/runs \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "<assistant_id>",
"input": {"message": "Hello!"}
}'
# Stream execution events live (SSE)
curl -N http://localhost:8081/api/v1/threads/<thread_id>/runs/<run_id>/stream

Full API reference: API docs.

Port already in use? duragraph dev defaults to :8081. Override with --port 9000 (or whatever).

Terminal window
duragraph dev --port 9000

Need to wipe the embedded data plane? It lives under a data directory (defaults to a per-user XDG path). Pass --data-dir /tmp/duragraph for a throwaway run, then rm -rf /tmp/duragraph to reset.

Running on a remote host? Bind to 0.0.0.0 and add SSH port forwarding from your laptop:

Terminal window
duragraph dev --host 0.0.0.0
# On your laptop:
ssh -L 8081:localhost:8081 vps-host

Need help? Join the discussions or open an issue.