Free to deploy. You own the data. Connect your first agent in under 10 minutes.
Vercel + Neon free tiers. Zero cost, accessible from any device, auto-HTTPS. Takes ~10 minutes.
Docker + localhost. Good for development or if you want everything on your machine.
No OAuth required to get started. Use Quick Start to deploy solo in under 10 minutes. Switch to Team Setup when you're ready to invite teammates.
Neon gives you a serverless Postgres database on their free tier — no credit card required.
postgresql://user:pass@ep-xyz.neon.tech/neondbYou'll paste this as DATABASE_URL in the next step.
Fork the repo and import it into Vercel. Add the environment variables and deploy.
DASHCLAW_API_KEY is your bootstrap admin key — it authenticates agents and seeds your first organization. After you sign in, you can create and manage additional API keys from the dashboard at /api-keys.Tables are created automatically on first request.
No OAuth app required. Add one environment variable in Vercel and you can sign in immediately.
In your Vercel project → Settings → Environment Variables, add:
Then redeploy. Visit your app and sign in with your password on the login page.
Use a strong password. This grants full admin access. You can add OAuth later when you want to invite teammates.
Use Upstash Redis to bridge Vercel's serverless functions for real-time dashboard events.
The 30MB free tier at Upstash is more than enough for DashClaw's live event buffer.
Agents only need a base URL + API key. Once connected, they can record decisions, enforce policies, score outputs, define quality profiles, manage prompts, and track learning -- all through the SDK.
DASHCLAW_BASE_URL=https://your-app.vercel.app DASHCLAW_API_KEY=<your-secret-api-key> DASHCLAW_AGENT_ID=my-agent
Your Vercel app uses Vercel env vars. Your agent uses its own environment variables.
import { DashClaw } from 'dashclaw';
const dc = new DashClaw({
baseUrl: process.env.DASHCLAW_BASE_URL,
apiKey: process.env.DASHCLAW_API_KEY,
agentId: 'my-agent',
guardMode: 'warn',
});
// Record a decision
const action = await dc.createAction({
actionType: 'deploy',
declaredGoal: 'Ship auth-service v2.1',
riskScore: 40,
});
// Guard check (policy enforcement)
const decision = await dc.guard({
actionType: 'deploy',
content: 'Deploying to production',
riskScore: 40,
});
// Score the output quality
await dc.scoreOutput({
scorer_id: 'es_your_scorer',
output: deployResult,
action_id: action.action_id,
});
// Score against your custom quality profile
const profileScore = await dc.scoreWithProfile('sp_your_profile', {
duration_ms: deployResult.duration,
confidence: deployResult.confidence,
action_id: action.action_id,
});
// Update outcome
await dc.updateOutcome(action.action_id, {
status: 'completed',
outputSummary: 'Deployed successfully',
});from dashclaw import DashClaw
dc = DashClaw(
base_url=os.environ["DASHCLAW_BASE_URL"],
api_key=os.environ["DASHCLAW_API_KEY"],
agent_id="my-agent",
guard_mode="warn",
)
# Record a decision
action = dc.create_action(
action_type="deploy",
declared_goal="Ship auth-service v2.1",
risk_score=40,
)
# Guard check (policy enforcement)
decision = dc.guard(
action_type="deploy",
content="Deploying to production",
risk_score=40,
)
# Score the output quality
dc.score_output(
scorer_id="es_your_scorer",
output=deploy_result,
action_id=action["action_id"],
)
# Score against your custom quality profile
profile_score = dc.score_with_profile("sp_your_profile", {
"duration_ms": deploy_result["duration"],
"confidence": deploy_result["confidence"],
"action_id": action["action_id"],
})
# Update outcome
dc.update_outcome(action["action_id"],
status="completed",
output_summary="Deployed successfully",
)Your DashClaw instance ships with 177+ SDK methods across 29 categories. Every feature works out of the box -- no LLM API key required.
All features are free, self-hosted, and work without any external AI provider. The only optional LLM feature is the llm_judge scorer type in the Evaluation Framework.
Skills are an open standard for giving agents specialized capabilities. Any agent that supports the skill framework can load this skill and become a DashClaw platform expert -- with knowledge of 177+ SDK methods across 29 categories.
Works with Claude Code, and the growing ecosystem of skill-compatible agents.
dashclaw-platform-intelligence/
|-- SKILL.md # 13 guided workflows (v2.1)
|-- scripts/
| |-- validate-integration.mjs # End-to-end connectivity test
| |-- diagnose.mjs # 5-phase platform diagnostics
| `-- bootstrap-agent-quick.mjs # Agent workspace importer
`-- references/
|-- api-surface.md # 140+ routes, 29 categories
|-- platform-knowledge.md # Architecture, auth chain, ID prefixes
`-- troubleshooting.md # Error resolution guideThe skill includes 13 guided workflows. Your agent picks the right one from the decision tree based on what you ask:
Full SDK integration with action recording and guard checks
5 scorer types: regex, keywords, numeric range, custom, LLM judge
Template registry with mustache variables and version history
Structured ratings with auto-sentiment and auto-tagging
Multi-framework bundles with evidence packaging
Statistical baselines and z-score deviation alerts
Velocity scoring and 6-level maturity model
Weighted quality profiles and risk templates
Guard rules for cost ceilings and risk thresholds
Auto-discover and import existing agent workspace data
Full-stack scaffold guide for adding new API routes
Generate a DashClaw SDK in any language from OpenAPI
Guided error resolution for auth and rate limits
.claude/skills/ for Claude Code)The installer generates secrets, writes .env.local, installs dependencies, and prints the API key your agents should use.
./install-windows.bat
bash ./install-mac.sh
When it finishes, open http://localhost:3000.
If you want cryptographic identity binding, your agent generates a keypair and prints a one-click pairing URL. You approve once (or approve-all).
# Optional: sign actions with a private key DASHCLAW_PRIVATE_KEY_PATH=./secrets/cinder-private.jwk # Optional: server-side enforcement (set on the dashboard host) ENFORCE_AGENT_SIGNATURES=true
The goal is: no manual public key uploads. Pairing registers the matching public key automatically.