agent-secrets AGENTS.md

Project instructions for agent-secrets, a Go command-line tool that gives AI agents temporary access to encrypted credentials. The instructions describe its codebase, commands, and security features.

In plain words
What is it for?
Understanding, developing, and operating the agent-secrets codebase, including encrypted storage, expiring access, credential rotation, revocation, and audit logs.
Why use it?
They give an agent the project context needed to work safely in the repository without exposing stored secrets.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/joelhooks/agent-secrets/agents-md
Clone the repo
git clone --depth 1 https://github.com/joelhooks/agent-secrets

Made for: Codex, OpenCode.

Per session 1,825 This file is loaded in full into every session.
When invoked 1,825 The same file — it is already loaded in full.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01825 $0.01825
Opus 5 $0.00912 $0.00912
Sonnet 5 $0.00365 $0.00365
Haiku 4.5 $0.00183 $0.00183

Measured 2d ago against content hash aa921e6cb4b0, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

agent-secrets AGENTS.md scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

- **Routine restart is RPC-driven** — `secrets daemon restart` exits cleanly so launchd/systemd can replace the process without broad sudo access
AGENTS.md · 227 lines

How it starts

The opening of the file, as written. The whole thing — 227 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Agent Instructions for agent-secrets

This file provides context for AI agents working on this codebase.

Project Overview

agent-secrets is a Go CLI for portable credential management for AI agents. It provides secure, time-bounded access to API keys and tokens without exposing plaintext secrets.

Core features:

  • Age encryption for secrets at rest
  • Session-scoped leases with TTL (auto-expiration)
  • Auto-rotation hooks for dynamic credentials
  • Multi-factor killswitch for emergency revocation
  • Append-only audit logging

Repository Structure

agent-secrets/
├── cmd/secrets/          # CLI entry point (Cobra commands)
│   ├── main.go
│   ├── root.go
│   ├── init.go
│   ├── add.go
│   ├── lease.go
│   ├── revoke.go
│   ├── audit.go
│   └── status.go
├── internal/
│   ├── types/            # Shared types and errors
│   ├── config/           # Configuration management
│   ├── store/            # Age-encrypted secret storage
│   ├── audit/            # Append-only audit log
│   ├── lease/            # TTL-based lease manager
│   ├── rotation/         # Auto-rotation hook executor
│   ├── killswitch/       # Emergency revocation + heartbeat
│   └── daemon/           # Unix socket daemon (JSON-RPC)
├── skills/               # Agent Skills (Claude Code, OpenCode)
│   └── secret-management/
│       └── SKILL.md
├── .openclaw/            # OpenClaw plugin
│   └── extensions/
│       └── secrets.ts
├── .github/workflows/    # CI/CD
│   ├── ci.yml            # Tests, lint, goreleaser check
│   └── release.yml       # Automated releases on v* tags
├── .goreleaser.yml       # Multi-platform binary builds
└── install.sh            # Cross-platform installer

Tech Stack

  • Language: Go 1.22+
  • Encryption: filippo.io/age (X25519)
  • CLI: Cobra
  • IPC: Unix socket with JSON-RPC
  • CI: GitHub Actions + GoReleaser

CLI Commands

Command Description
secrets Show self-documenting command tree with next actions
secrets init Initialize encrypted store (~/.agent-secrets/)
secrets add <name> Add a secret (interactive, stdin, or with rotation hook)
secrets list List stored secret names for discovery
secrets lease <name> Get time-bounded lease (returns raw secret value by default)
secrets revoke <id> Revoke specific lease
secrets revoke --all KILLSWITCH: revoke all leases
secrets status Show daemon status and active leases
secrets daemon restart Ask a supervised daemon to exit and wait for its replacement
secrets audit View append-only audit log
secrets env Generate .env file from .secrets.json config
secrets exec -- <cmd> Run command with secrets loaded, auto-cleanup
secrets cleanup Remove expired lease environment files

Read the full file on GitHub · 227 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 227 lines · 1,825 tokens per session scan B aa921e6cb4b0

Subscribe to this mod's changes

agent-secrets AGENTS.md is an instructions file published in the GitHub repository joelhooks/agent-secrets (105 stars, last pushed 14d ago), licensed MIT. It adds 1,825 tokens to every session, about $0.0091 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.