sealvera-claude
v0.2.2
Published
Automatic SealVera audit logging for Claude Code sessions — intercept tool calls, decisions, and reasoning with one command.
Maintainers
Readme
sealvera-claude
Automatic SealVera audit logging for Claude Code sessions.
Every tool call, file edit, and shell command your Claude Code agent makes is automatically captured in a tamper-evident audit trail — with one command.
Quick Start
npm install -g sealvera-claude
sealvera-claude initThat's it. init asks for your API key and automatically installs a Claude Code hook into ~/.claude/settings.json. From that point, just use claude as you normally would — every tool call, bash command, and file write is logged to your SealVera dashboard automatically. No wrapping, no aliases, nothing else to configure.
What Gets Logged
For each Claude Code session, sealvera-claude intercepts and logs:
| Event | What's captured | |---|---| | Session start/end | Command, session ID, exit code | | Tool calls | Tool name, input parameters | | Bash commands | Full command string | | File edits | File path, operation type | | Errors / failures | Error message, context |
Each event is stored as a structured, cryptographically-sealed decision record in SealVera — searchable, exportable, and tamper-evident.
Installation
npm install -g sealvera-claudeRequires Node.js ≥16 and the Claude Code CLI.
Setup
Option 1: Interactive setup (recommended)
sealvera-claude initPrompts for your API key, saves config to ~/.sealvera-claude, and automatically installs the Claude Code hook into ~/.claude/settings.json. After that, just use claude normally.
Option 2: Environment variables
export SEALVERA_API_KEY=sv_your_key_here
export SEALVERA_ENDPOINT=https://app.sealvera.com # default
export SEALVERA_AGENT=claude-code # defaultGet your API key at app.sealvera.com.
Usage
sealvera-claude init
Interactive setup — saves config to ~/.sealvera-claude.
🔐 SealVera × Claude Code — Setup
API Key [none]: sv_your_key_here
SealVera Endpoint [https://app.sealvera.com]:
Agent name [claude-code]: my-project
✅ Config saved to ~/.sealvera-claudesealvera-claude wrap [claude args]
Wraps any claude command and logs all decisions to SealVera.
# Simple prompt
sealvera-claude wrap "write unit tests for auth.js"
# With flags
sealvera-claude wrap --model claude-opus-4-5 "migrate this database schema"
# Pipe into it
sealvera-claude wrap "explain this codebase" < README.mdsealvera-claude status
Shows current configuration and verifies connectivity.
📊 sealvera-claude status
Config file : ~/.sealvera-claude ✅
API Key : sv_5e4735..cafd
Endpoint : https://app.sealvera.com
Agent : claude-code
Debug : false
Checking connectivity... ✅ OK (200)
Ready! Use:
sealvera-claude wrap "your claude prompt"What the Audit Trail Looks Like
Each event in SealVera looks like this:
{
"agent": "claude-code",
"action": "Bash",
"decision": "COMPLETED",
"input": {
"tool": "Bash",
"command": "npm install express",
"session_id": "claude-1748000000000"
},
"output": {},
"reasoning": [
{
"factor": "tool_call",
"value": "Bash",
"signal": "safe",
"explanation": "Claude Code invoked tool: Bash"
}
],
"timestamp": "2026-03-04T04:51:00.000Z",
"hash": "sha256:abc123..."
}Self-Hosted SealVera
If you're running SealVera on-prem:
SEALVERA_ENDPOINT=http://your-server:3000 sealvera-claude wrap "prompt"Or set in ~/.sealvera-claude:
SEALVERA_ENDPOINT=http://your-server:3000Integration Guide
Full integration docs: app.sealvera.com/integrations/claude-code
SDK Usage (Programmatic)
You can also use the logger directly in your own scripts:
const { logDecision } = require('sealvera-claude');
await logDecision({
action: 'my_custom_action',
decision: 'COMPLETED',
input: { task: 'something my agent did' },
output: { result: 'it worked' },
reasoning: [{ factor: 'outcome', value: 'success', signal: 'safe', explanation: 'Task completed without errors' }],
});Links
- Dashboard — app.sealvera.com
- SealVera SDK — npmjs.com/package/sealvera
- Integration guide — app.sealvera.com/integrations/claude-code
- Support — [email protected]
License
MIT
