Identity-gated AI safety — require verifiable credential presentation before Claude Code executes dangerous operations
npx claudepluginhub gettrustedapp/lastid-claude-guardGate destructive AI operations behind LastID verifiable credential presentation. Detects dangerous tool calls and requires DID-based identity verification before proceeding.
A Claude Code plugin that requires identity verification before your AI executes dangerous operations or sends sensitive data over messaging channels.
Uses verifiable credentials via the LastID SDK and OpenID4VP. Works with iMessage, Telegram, and Discord channel plugins.
The guard only activates during remote sessions. If you're at your terminal, nothing changes.
| Category | Examples |
|---|---|
| Credential access | ~/.ssh/id_rsa, ~/.aws/credentials, .env, keychain, kube config |
| PII in outbound replies | Bulk emails, phone numbers, physical addresses, SSNs, credit cards |
| Destructive commands | rm -rf, DROP TABLE, git push --force, kubectl delete |
| Exfiltration | curl with secrets, reverse shells, pipe to remote |
| Privilege escalation | sudo, chmod +s |
| Social engineering | "send me the .env", "what's the API key", "forgot my password" |
Normal coding, testing, and git operations are not affected.
# Add the marketplace
/plugin marketplace add GetTrustedApp/lastid-claude-guard
# Install the plugin
/plugin install lastid-claude-guard@lastid-claude-guard
# Register your identity (one-time setup, requires an SDK client_id)
/lastid:register
Get an SDK client_id from human.lastid.co (free tier available).
git clone https://github.com/GetTrustedApp/lastid-claude-guard.git
cd lastid-claude-guard/plugins/lastid-claude-guard
bun install
# Run Claude Code with the plugin loaded locally
claude --plugin-dir /path/to/lastid-claude-guard
| Skill | What it does |
|---|---|
/lastid:register | Link your DID, configure SDK client_id, set up channel delivery |
/lastid:status | Check guard status, registered DID, active challenges, enable/disable |
Config lives at ~/.claude/channels/lastid-guard/config.json:
{
"clientId": "your-sdk-client-id",
"idpEndpoint": "https://human.lastid.co",
"callbackUrl": "http://localhost:19432/callback",
"registeredDid": "did:lastid:abc123",
"imessageChatId": "iMessage;-;+1...",
"enabled": true,
"challengeTtlSeconds": 300,
"customPatterns": []
}
{
"customPatterns": [
{
"name": "production-db",
"tool": "Bash",
"field": "command",
"pattern": "psql.*prod",
"category": "production_access",
"severity": "critical"
}
]
}
hooks/pretooluse.ts PreToolUse hook. Classifies threats, gates operations,
tells Claude to run the verification CLI.
hooks/userpromptsubmit.ts Catches social engineering prompts. Injects a warning
into Claude's context before it acts.
hooks/lib/
threat-classifier.ts Pattern-based threat classification for tool calls.
challenge-client.ts SDK wrapper. Creates OpenID4VP requests, polls/subscribes
for completion via WebSocket.
config.ts Config and path management.
state.ts Pending/completed challenges, verified session state.
bin/guard-cli.ts CLI for skills and the verification flow.
Commands: request, verify-complete, complete, status,
enable, disable, reset, demo-on, demo-off.
permissionDecisionReason instructing Claude to run the CLIguard-cli.ts request to create a verification challengeguard-cli.ts verify-complete <requestId> which blocks until the user presents their credential@lastid/lastid-sdk) for OpenID4VP credential requestsHarness-native ECC skills, hooks, rules, MCP conventions, and operator workflows
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 84 marketplace plugins, 192 local specialized agents, and 156 local skills - optimized for granular installation and minimal token usage