Where do AI agents store their secrets? API keys scattered in environment variables. Tokens in plain text files. No audit trail. No rotation tracking. No security.
AgentVault solves this. It's a secure, encrypted vault designed specifically for AI agents β with hardware-accelerated encryption, audit logging, and seamless OpenClaw integration.
"Finally, a proper secrets manager for my AI agent that doesn't require enterprise infrastructure."
Native desktop app β No terminal, no setup, just works.
| Intel Macs | Apple Silicon (M1/M2/M3) |
|---|---|
| AgentVault-1.2.0.dmg (94 MB) | AgentVault-1.2.0-arm64.dmg (89 MB) |
Install:
- Download the DMG for your Mac
- Double-click to open
- Drag AgentVault to Applications
- Launch!
β οΈ First launch only: macOS will warn about unsigned app. Right-click β Open, or go to System Settings β Privacy & Security β "Open Anyway".
Security: v1.3.0 Security Audit (Score: 8.5/10 β )
AgentVault stores everything locally. If you lose the vault.db file, your keys are gone forever.
# macOS/Linux - Add to your backup script:
cp ~/.openclaw/workspace/projects/AgentVault/vault.db ~/backups/vault-$(date +%Y%m%d).db
# Windows - Copy this file regularly:
# C:\Users\[username]\.openclaw\workspace\projects\AgentVault\vault.db- No cloud sync β Your data stays on YOUR machine only
- No password recovery β Forget your master password = vault is unrecoverable
- No automatic backups β You are responsible for backing up
vault.db - Single user only β Don't share vault files between users
- File corruption risk β Hard drive failure, accidental deletion, etc.
- Daily: Automated backup of
vault.dbto external drive/cloud - Weekly: Verify backup file works by testing unlock
- Before major changes: Manual export/copy of vault.db
AgentVault is designed for LOCAL-ONLY, PERSONAL USE:
- β Your credentials never leave your machine
β οΈ No cloud backup β you must backupvault.dband remember your master passwordβ οΈ Encryption keys derived from your master password β don't forget it!β οΈ Not for enterprise multi-user deployments (single-user only)β οΈ WebSocket connection is localhost-only by design
| Without AgentVault | With AgentVault |
|---|---|
| β API keys in .env files | β Encrypted vault with master password |
| β No audit trail | β Complete log of who accessed what |
| β Manual key sharing | β One-click share with OpenClaw agent |
| β Forgotten rotations | β Automatic rotation reminders |
| β Keys scattered everywhere | β Centralized, organized secrets |
| β No security controls | β Rate limiting, input validation, CORS |
- π Hardware-Accelerated Encryption β AES-256-GCM via Node native crypto
- π Audit Logging β Full trail of vault access and key operations
- π€ OpenClaw Integration β Share keys securely with your AI agent
- π Key Rotation Reminders β Track when keys need rotation
- π Web UI β Manage secrets through browser interface
- πΎ Local Storage β Your data never leaves your machine
- Node.js 16+
- macOS, Linux, or Windows
# Clone the repository
git clone https://github.com/nKOxxx/AgentVault.git
cd AgentVault
# Install dependencies
npm install
# Start the server
npm start
# Or use the launcher
./start.sh start- Open http://localhost:8765
- Create a master password (min 8 characters)
- Add your first API key
- Connect OpenClaw agent to receive keys
βββββββββββββββββββ WebSocket βββββββββββββββββββ
β AgentVault β ββββββββββββββββββΊ β OpenClaw β
β localhost:8765β β OpenClaw Agentβ
ββββββββββ¬βββββββββ βββββββββββββββββββ
β
ββββββΌβββββ
β vault.dbβ β SQLite (encrypted values)
ββββββ¬βββββ
ββββββΌβββββ
βaudit.logβ β Security audit trail
βββββββββββ
All endpoints require vault to be unlocked (except /api/init and /api/unlock).
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/init |
Initialize vault with master password |
| POST | /api/unlock |
Unlock vault |
| POST | /api/logout |
Lock vault (clear key from memory) |
| GET | /api/status |
Get vault status |
| GET | /api/keys |
List all keys |
| POST | /api/keys |
Add new key |
| DELETE | /api/keys/:id |
Delete key |
| POST | /api/keys/:id/share |
Share key with OpenClaw |
| POST | /api/keys/share-all |
Share all unshared keys |
| GET | /api/audit |
Get audit log |
| POST | /api/reset |
Delete all data (DANGER) |
AgentVault connects to OpenClaw via WebSocket on port 8766.
From AgentVault to OpenClaw:
{
"type": "shared_secret",
"keyId": "abc123",
"timestamp": "2026-02-24T10:00:00Z",
"data": {
"name": "Supabase Production",
"service": "supabase",
"url": "https://...",
"value": "sb_..."
}
}From OpenClaw to AgentVault (confirmation):
{
"type": "key_received",
"keyId": "abc123",
"keyName": "Supabase Production",
"agentName": "OpenClaw Agent"
}# 1. Start AgentVault
cd /path/to/AgentVault
./start.sh start
# 2. Initialize vault (first run only)
curl -X POST http://localhost:8765/api/init \
-H "Content-Type: application/json" \
-d '{"password": "testpassword123"}'
# 3. Unlock vault
curl -X POST http://localhost:8765/api/unlock \
-H "Content-Type: application/json" \
-d '{"password": "testpassword123"}'
# 4. Add a test key
curl -X POST http://localhost:8765/api/keys \
-H "Content-Type: application/json" \
-d '{
"name": "Test API Key",
"service": "test-service",
"url": "https://api.test.com",
"value": "sk_test_12345_secret",
"autoShare": false
}'
# 5. List keys
curl http://localhost:8765/api/keys
# 6. Check audit log
curl http://localhost:8765/api/audit
# 7. Open Web UI
open http://localhost:8765
# Verify the test key appears in the listβ Basic functionality:
- Vault initializes and unlocks correctly
- Keys add and list properly
- Web UI displays keys with correct metadata
- Unlock with wrong password fails (rate limited)
β Encryption:
# Verify data is encrypted in database
sqlite3 vault.db "SELECT encrypted_value FROM keys LIMIT 1;"
# Should see hex gibberish, not "sk_test_12345_secret"β Audit logging:
# Check audit trail
cat audit.log | tail -5
# Should see vault_unlocked, key_added eventsβ WebSocket (with OpenClaw running):
- Start OpenClaw agent
- Check connection status:
curl http://localhost:8765/api/status - Add key with
"autoShare": trueβ should auto-share - Check key shows "β Shared" badge in Web UI
β Reset (cleanup):
# WARNING: This deletes all vault data
curl -X POST http://localhost:8765/api/resetEach credential shows a visual indicator of its sharing status with your OpenClaw agent:
| Badge | Status | Meaning |
|---|---|---|
| β | Green | Successfully shared with agent |
| β³ | Orange | Sharing in progress (pending confirmation) |
| β | Red | Share failed (agent not connected or error) |
| (none) | None | Not shared yet |
- Click π€ Share β Badge turns orange (β³ pending)
- Agent receives β Badge turns green (β shared)
- If failed β Badge turns red (β error)
The status is persistent across vault locks/unlocks.
- Algorithm: AES-256-GCM (authenticated encryption)
- Key Derivation: PBKDF2 with 100,000 iterations
- IV: Random 16 bytes per encryption
- Auth Tag: 16 bytes (tamper detection)
All security events are logged to audit.log:
- Vault initialization/unlock/lock
- Key addition, sharing, deletion
- Failed unlock attempts
- Connection events
- 5 attempts per 15 minutes for unlock
- Prevents brute-force attacks
- No cloud services
- No external APIs
- Your data stays on your machine
PORT=8765 # HTTP server port
WS_PORT=8766 # WebSocket port
MAX_KEYS=20 # Maximum keys per vault~/.openclaw/workspace/projects/AgentVault/
βββ vault.db # Encrypted database
βββ audit.log # Security audit trail
βββ server.js # Main server
AgentVault stores all data locally in vault.db. If this file is lost, corrupted, or deleted, your keys are gone forever. There is no cloud backup, no recovery service, and no password reset.
Option 1: Manual backup (easiest)
# macOS/Linux
# Copy vault.db to your backup location
cp ~/.openclaw/workspace/projects/AgentVault/vault.db ~/Documents/agentvault-backup-$(date +%Y%m%d).db
# Windows (PowerShell)
# Copy vault.db to your backup location
Copy-Item "$env:USERPROFILE\.openclaw\workspace\projects\AgentVault\vault.db" "$env:USERPROFILE\Documents\agentvault-backup-$(Get-Date -Format yyyyMMdd).db"Option 2: Automated daily backup (macOS/Linux)
# Add to crontab (runs daily at 2am)
0 2 * * * cp ~/.openclaw/workspace/projects/AgentVault/vault.db ~/backups/vault-$(date +\%Y\%m\%d).dbOption 3: Cloud backup (encrypted)
Upload vault.db to your preferred cloud storage (Dropbox, Google Drive, etc.). The file is already encrypted, so it's safe to store in the cloud.
- Stop AgentVault if running
- Replace vault.db with your backup:
cp ~/backups/vault-20260226.db ~/.openclaw/workspace/projects/AgentVault/vault.db
- Restart AgentVault
- Unlock with your master password (the one from when backup was made)
| File | Importance | Description |
|---|---|---|
vault.db |
CRITICAL | Contains all encrypted keys. Without this, keys are lost. |
audit.log |
Optional | Security audit trail. Can be regenerated. |
You only need vault.db for a complete restore.
- β Backup daily if you add/modify keys frequently
- β Test restore process monthly with a test vault
- β Store backups in multiple locations (local + cloud)
- β
Never commit
vault.dbto Git (it's in.gitignore) - β Don't rename backup files β keep date in filename
- β Don't edit
vault.dbdirectly β will corrupt it
AgentVault is designed to work with OpenClaw agents. The WebSocket protocol allows secure key sharing:
- AgentVault detects OpenClaw connection on port 8766
- Keys marked for sharing are sent via WebSocket
- OpenClaw confirms receipt
- AgentVault marks key as "shared" in database
# Install dependencies
npm install
# Run in development mode
npm start
# View audit log
tail -f audit.logIMPORTANT: AgentVault is designed for local use. For production deployments:
- Use strong master passwords (16+ characters)
- Enable full-disk encryption on your machine
- Backup your vault.db file securely
- Review audit logs regularly
MIT β See LICENSE file
Built for the agent economy. Your keys, your control. π