
agent-secrets
github.com/joelhooks/agent-secrets- Category
- AI Agents
- Rank
- No. 658Tools index
- Pricing
- Open Source
- Platform
- cli
- Type
- TOOL
- Builder
- @joelhooks
- GitHub
- 108 stars
- Latest release
- v0.5.5
- Date
About
A credential management system specifically designed for AI agents, providing secure secret storage with age encryption, session-scoped leases, auto-rotation, and emergency killswitch functionality. Prevents agents from accessing raw credentials while maintaining security through time-bounded access and comprehensive audit logging.
What it does
Agent-secrets is a local command-line broker for project credentials. A background daemon answers requests over a Unix socket, while agents lease named values for limited periods. It can inject those values into commands or project environment files, record operations, run credential refresh commands, and revoke active leases.
Why it's ranked here
The design is practical for shell-driven agents because it combines encrypted local storage, expiring grants, structured responses, and command execution in one small Go program. The security boundary is narrower than the pitch suggests, however: leasing normally reveals the raw value, so this controls when an agent receives credentials rather than preventing agents from seeing them.
What's good
The command surface supports both humans and automation. Most operations return structured envelopes with suggested next actions, while leases can emit plain values for shell exports. Lease limits are configurable, active grants survive daemon restarts, duplicate grants for one client and secret are replaced, and audit writes are synchronized immediately.
Tradeoffs
Most operations require a continuously running local daemon. Native Windows support is not documented, only Windows through WSL. Environment generation writes decrypted values to disk with restrictive permissions, and direct leasing exposes them to the calling process. The audit log uses append mode but the supplied implementation shows no cryptographic chaining or tamper detection. Rotation hooks execute configured commands, so their safety depends on operator configuration.
How to use it well
Use it for individual developers or local automation that already launches tools from a shell and needs short-lived access to a limited credential set. Prefer command execution with automatic cleanup over persistent environment files, assign distinct client identities, keep lease periods short, and configure rotation carefully. It does not replace a shared organizational vault, native Windows credential service, or policy system that keeps secret values hidden from workloads.
Technical notes+
The module in go.mod targets Go 1.24 and depends directly on age, Cobra, UUID, and terminal support packages. internal/store/store.go keeps secret values in an in-memory map, serializes them as JSON, encrypts the complete store with an age X25519 recipient, and writes ciphertext with mode 0600. internal/daemon/daemon.go exposes JSON-RPC 2.0 over a Unix socket set to 0600. internal/lease/manager.go persists only active leases, replaces an existing grant for the same client and secret, and runs periodic expiry cleanup. internal/audit/audit.go writes JSONL with O_APPEND, mode 0600, a mutex, and an immediate Sync, but contains no hash chain or signature. internal/otel/otel.go optionally sends fire-and-forget events to a local observability endpoint and disables emission after connection failure. The Makefile provides race-enabled tests, short tests, coverage, integration tests, formatting, vetting, linting, and binary builds.
Observed
- License
- MIT
- Primary language
- Go
- Packaging and installation
- Single secrets binary; install script, source build, and Go install command are documented
- Interface
- Command-line interface backed by a local daemon
- Transport
- JSON-RPC 2.0 over a Unix domain socket
- Platform support
- macOS, Linux, and Windows through WSL are documented
Read from README.md, go.mod, Makefile, internal/otel/otel.go, internal/output/raw.go, internal/audit/audit.go, internal/audit/entry.go, internal/lease/lease.go, internal/output/json.go, internal/store/store.go, internal/types/types.go, internal/types/errors.go, internal/config/config.go, internal/daemon/daemon.go, internal/lease/manager.go.
What it can do
Store encrypted credentials securely
Raw credentials and secrets → Age-encrypted credential storage
Issue time-bounded access leases
Agent authentication and credential request → Session-scoped credential lease with TTL
Auto-rotate stored credentials
Rotation configuration and hooks → Updated credentials with new values
Emergency revoke all agent access
Multi-factor killswitch activation → Immediate termination of all active leases
Generate comprehensive audit logs
Agent credential access activities → Detailed access and usage audit trail
Manage session-scoped credential access
Agent session context and permissions → Time-limited credential access without raw exposure
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.