Skip to content
Security
Skill

/register-on-dashclaw

Register any agent (including this one) as a governed agent on a DashClaw instance

BOOST
From plugin
dashclaw
30820 skills3 agents4 commands7 hooks
+1
Install
$ npx -y skills add ucsandman/DashClaw --skill register-on-dashclaw --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/register-on-dashclaw

Context preview

The summary Claude sees to decide when to auto-load this skill.

Register any agent (including this one) as a governed agent on a DashClaw instance

SKILL.md

register-on-dashclaw.SKILL.md
name: register-on-dashclaw
description: Register any agent (including this one) as a governed agent on a DashClaw instance
license: MIT
metadata:
  author: ucsandman
  version: "1.0.0"
  category: meta

Register on DashClaw

Register any AI agent as a governed entity on a DashClaw instance. This includes the meta act of registering this very agent on DashClaw.

Register an Agent

Via API

curl -X POST "$DASHCLAW_BASE_URL/api/agents" \
  -H "x-api-key: $DASHCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "my-agent",
    "agent_name": "My Agent",
    "description": "What this agent does",
    "capabilities": ["deploy", "api_call", "file_write"]
  }'

Via SDK

import { DashClaw } from 'dashclaw';

const claw = new DashClaw({
  baseUrl: process.env.DASHCLAW_BASE_URL,
  apiKey: process.env.DASHCLAW_API_KEY,
  agentId: 'my-agent'
});

// Agent is auto-registered on first guard call or action creation
// Explicit registration is optional but recommended for metadata

Set Up Heartbeat

Heartbeats let DashClaw know your agent is alive. Missing heartbeats trigger the "Agent Silent" signal (>10 min).

// Single heartbeat
await claw.heartbeat({ status: 'online', metadata: { version: '1.0.0' } });

// Auto-heartbeat (v1 SDK)
import { DashClaw } from 'dashclaw/legacy';
const claw = new DashClaw({ baseUrl, apiKey, agentId: 'my-agent' });
claw.startHeartbeat({ interval: 60000 }); // Every 60 seconds

// Stop when shutting down
claw.stopHeartbeat();
# Python
claw.heartbeat(status="online", metadata={"version": "1.0.0"})

Configure Agent-Specific Policies

Scope guard policies to a specific agent:

curl -X POST "$DASHCLAW_BASE_URL/api/policies" \
  -H "x-api-key: $DASHCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-agent-deploy-gate",
    "agent_id": "my-agent",
    "type": "approval_gate",
    "mode": "enforce",
    "conditions": {
      "action_types": ["deploy"],
      "risk_score_min": 50
    },
    "action": "require_approval",
    "reason": "All deploys by my-agent require approval"
  }'

Agent Identity & Signatures

For production, register your agent's public key for action signing:

// V1 SDK — register identity
import { DashClaw } from 'dashclaw/legacy';
const claw = new DashClaw({ baseUrl, apiKey, agentId: 'my-agent' });

await claw.registerIdentity({
  publicKeyPem: myPublicKey,
  algorithm: 'Ed25519',
  agentName: 'My Agent'
});

// Revoke an identity when agent is decommissioned
await claw.revokeIdentity('my-agent');

Signature enforcement is runtime-toggleable from `/settings?tab=identity`. When enabled, all actions must be signed with the registered key.

Closed Enrollment Mode

If the DashClaw instance has `DASHCLAW_CLOSED_ENROLLMENT=true`, agents must be pre-registered before they can call guard or create actions. Register first, then instrument.

---

The Meta Moment: Register This Agent on DashClaw

This agent — dashclaw-agent — can be registered on DashClaw as a governed agent. Here's how:

1. Set Up Environment

export DASHCLAW_BASE_URL=http://localhost:3000
export DASHCLAW_API_KEY=your-api-key
export DASHCLAW_AGENT_ID=dashclaw-agent

2. Register

curl -X POST "$DASHCLAW_BASE_URL/api/agents" \
  -H "x-api-key: $DASHCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "dashclaw-agent",
    "agent_name": "DashClaw Agent",
    "description": "The definitive DashClaw expert. Helps developers integrate, configure, troubleshoot, and build DashClaw. Governs itself on DashClaw.",
    "capabilities": ["sdk-integration", "policy-creation", "troubleshooting", "codebase-contribution", "compliance", "drift-detection"]
  }'

3. Create Self-Governance Policies

# The agent that governs agents should govern itself
curl -X POST "$DASHCLAW_BASE_URL/api/policies" \
  -H "x-api-key: $DASHCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "dashclaw-agent-self-governance",
    "agent_id": "dashclaw-agent",
    "type": "risk_threshold",
    "mode": "enforce",
    "conditions": { "risk_score_min": 70 },
    "action": "require_approval",
    "reason": "DashClaw agent practices what it preaches — high-risk actions require approval"
  }'

4. Install Claude Code Hooks

If running this agent in Claude Code, install the pretool/posttool hooks (see `setup-dashclaw` skill) so every tool call is governed by DashClaw.

5. Start Heartbeat

const claw = new DashClaw({
  baseUrl: process.env.DASHCLAW_BASE_URL,
  apiKey: process.env.DASHCLAW_API_KEY,
  agentId: 'dashclaw-agent'
});

// Report presence
await claw.heartbeat({ status: 'online', metadata: {
  version: '1.0.0',
  type: 'gitagent',
  skills: 8,
  meta: 'I govern myself on the platform I help build'
}});

An agent that governs agents, governed by the platform it represents. That's DashClaw.

Read more
Ships withdashclaw

Remote approvals, policy checks, and execution evidence for unattended AI agents.

Get the whole plugin

Other skills on dashclaw.