tridentctl provides five subcommands covering environment scanning, security evaluations, and agent certificate verification. All commands support --base <url> to override the API endpoint and --json to emit machine-readable output.
Global flags
| Flag | Description |
|---|---|
--base <url> | Override the base URL. Defaults to $VOUCH_BASE_URL or http://localhost:3000 |
--json | Output raw JSON instead of the human-readable format |
--version | Print the CLI version and exit |
--help, -h | Print the usage summary and exit |
tridentctl init
Scan your local environment and print a table of everything Trident can wire up. Run this once at the start of a new project or when onboarding an existing codebase to Trident.What it scans
init performs a read-only survey across all of these sources:
Environment variables
Detects
OPENAI_API_KEY, ANTHROPIC_API_KEY, AWS_*, GOOGLE_*,
AZURE_*, MISTRAL_*, GROQ_*, and a dozen other provider prefixes from
both the current process environment and .env / .env.local files.Cloud credentials
Reads
~/.aws/credentials and ~/.aws/config for AWS profiles,
~/.config/gcloud/active_config for the active gcloud account, and checks
for a signed-in Azure CLI session at ~/.azure/.1Password
If the
op CLI is installed, lists API credential items and reports how
many are AI-related (OpenAI, Anthropic, AWS, Google, etc.).LLM SDK usage
Reads
package.json dependencies to detect installed SDKs — OpenAI,
Anthropic, AWS Bedrock, Google Generative AI, Vertex AI, Azure OpenAI,
Cohere, Mistral, Groq, Hugging Face, LangChain, Vercel AI SDK, and more.
Also greps src/, app/, lib/, server/, and api/ for SDK client
instantiations.Usage
Example output
tridentctl init is completely read-only. It never modifies your
environment, writes any files, or sends your credentials to Trident.
The --apply flag for automatic wiring is reserved for a future release.tridentctl evals [args…]
Run promptfoo security evaluations against your agents, optionally in watch mode that reruns on file change. This is a thin wrapper aroundpromptfoo eval that adds a debounced filesystem watcher and run-tagging so your results appear grouped in the Trident experiments page.
Usage
Flags
| Flag | Description |
|---|---|
--watch | Run once, then re-run after a 750 ms debounce whenever a watched path changes |
--paths <a> <b> ... | Paths to watch. Defaults to ./evals/, ./promptfooconfig.yaml, and ./promptfooconfig.yml |
-- | Everything after -- is forwarded verbatim to promptfoo eval |
How to create an eval config
Create apromptfooconfig.yaml at the root of your project (or inside an evals/ directory). Trident wraps promptfoo’s standard config format:
CI usage
In CI, run without--watch and treat a non-zero exit code as a failure:
--watch in a second terminal pane while you edit your agent code:
tridentctl cert <hash>
Fetch and pretty-print the public Trident certificate for an agent, identified by its public certificate hash.Usage
Example output
tridentctl verify <hash>
Fetch a certificate and cryptographically verify its signed JWT against your Trident project’s JWKS endpoint. Use this to confirm that a certificate is authentic and was issued by Trident, not forged.How verification works
Fetch the certificate
Retrieves the certificate from
/api/public/cert/<hash> and extracts the
signedJwt field.Verify the signature
Decodes the JWT, checks the algorithm is RS256, matches the JWT’s
kid
header to a key in the JWKS, and verifies the RSA-SHA256 signature using
Node.js’s built-in crypto module.Usage
Example output (success)
Example output (failure)
tridentctl jwks
Print the JWKS (JSON Web Key Set) from the Trident service. Useful for debugging certificate verification issues or auditing which signing keys are currently active.Usage
Example output
kty/n/e fields. Use the fingerprint to confirm which key signed a specific certificate when debugging a verification failure.
This command requires no authentication — it reads from the public /.well-known/jwks.json endpoint.