User Guide: AgentVault CLI (agentvault_cli
)¶
The agentvault_cli
is your command-line tool for interacting with the AgentVault ecosystem. It allows you to manage credentials for accessing agents, discover agents registered in the central registry, and execute tasks on remote A2A-compliant agents.
Installation¶
Please refer to the main Installation Guide for instructions on installing the CLI using pip
.
Core Commands¶
The CLI is structured around several main commands. Get an overview by running:
config
¶
Manage local API keys and OAuth credentials required to authenticate with different agents or services. Credentials can be stored securely in the OS keyring or referenced via environment variables or files.
Usage:
This command group helps you configure how the agentvault_cli run
command (and underlying library) finds the necessary secrets to talk to different agents.
Key Subcommands:
-
set <service_id> [OPTIONS]
:- Purpose: Configure how credentials for a specific service (identified by
<service_id>
) are sourced or stored. The<service_id>
is a name you choose locally (e.g.,openai
,my-custom-agent-key
,google-oauth-agent
) that theKeyManager
uses to find the right secret. It often corresponds to theservice_identifier
in an Agent Card'sauthSchemes
, but can be different. - Options:
--env
: Guidance Only. Prints instructions on how to set environment variables (AGENTVAULT_KEY_<SERVICE_ID_UPPER>
,AGENTVAULT_OAUTH_<SERVICE_ID_UPPER>_CLIENT_ID
,AGENTVAULT_OAUTH_<SERVICE_ID_UPPER>_CLIENT_SECRET
). It does not store anything itself.--file <path>
: Guidance Only. Prints instructions on how to format a.env
or.json
file to store credentials that theKeyManager
could potentially load (if configured during library initialization, which the CLI doesn't do by default).--keyring
: Stores API Key. Securely prompts for an API key and stores it in your operating system's default keyring, associated with the<service_id>
. This is the recommended secure method for storing API keys via the CLI.--oauth-configure
: Stores OAuth Credentials. Securely prompts for an OAuth 2.0 Client ID and Client Secret and stores them in the OS keyring, associated with the<service_id>
. Required for agents using theoauth2
authentication scheme.
Example (Store OpenAI API Key securely):
Example (Configure OAuth for a Google agent):# Use 'openai' as the local service_id agentvault_cli config set openai --keyring # --> Enter API key: ************ # --> Confirm API key: ************ # SUCCESS: API key for 'openai' stored successfully in keyring.
Example (Guidance for Environment Variables):# Use 'google-agent-oauth' as the local service_id agentvault_cli config set google-agent-oauth --oauth-configure # --> Enter OAuth Client ID for 'google-agent-oauth': <paste_client_id> # --> Enter OAuth Client Secret for 'google-agent-oauth': ************ # --> Confirm OAuth Client Secret for 'google-agent-oauth': ************ # SUCCESS: OAuth credentials for 'google-agent-oauth' stored successfully in keyring.
- Purpose: Configure how credentials for a specific service (identified by
-
get <service_id> [OPTIONS]
:- Purpose: Checks how credentials for a given
<service_id>
are currently being sourced by theKeyManager
(Environment, File, Keyring). It checks the cache first, then attempts to load from the keyring if enabled. - Options:
--show-key
: Displays the first few characters of the found API key (use with caution).--show-oauth-id
: Displays the configured OAuth Client ID if found. Example:agentvault_cli config get openai # --> Credential status for service 'openai': # --> API Key: Found (Source: KEYRING) # --> (Use --show-key to display a masked version) # --> OAuth Credentials: Not Configured agentvault_cli config get google-agent-oauth --show-oauth-id # --> Credential status for service 'google-agent-oauth': # --> API Key: Not Found # --> OAuth Credentials: Configured (Source: KEYRING) # --> Client ID: 12345-abcde.apps.googleusercontent.com
- Purpose: Checks how credentials for a given
-
list
:- Purpose: Shows a summary of services for which credentials have been detected during initialization from environment variables or specified key files (if the underlying library was configured with a key file path, which the default CLI is not).
- Note: This command does not actively scan the OS keyring. Keys stored only in the keyring will typically not appear in this list unless they were accessed previously by a
get
command in the same CLI invocation.
discover
¶
Search for agents registered in the central AgentVault Registry.
Usage:
[SEARCH_QUERY]
(Optional): Text to search for (case-insensitive) in agent names or descriptions.--registry <url>
: Specify the URL of the AgentVault Registry API.- Defaults to the value of the
AGENTVAULT_REGISTRY_URL
environment variable if set. - If the environment variable is not set, it defaults to the public registry:
https://agentvault-registry-api.onrender.com
. - (Note: The public registry runs on a free tier and may take up to 60 seconds to wake up on the first request.)
- Defaults to the value of the
--limit <n>
: Maximum results per page (default: 25, max: 250).--offset <n>
: Number of results to skip (for pagination, default: 0).--tags <tag>
(Repeatable): Filter by tags. Only agents possessing all specified tags will be returned (e.g.,--tags weather --tags forecast
).--has-tee [true|false]
(Optional): Filter agents based on whether they declare TEE support in their Agent Card.--tee-type <type>
(Optional): Filter agents by the specific TEE type declared (e.g.,AWS Nitro Enclaves
,Intel SGX
).
Example:
# List first 10 agents containing "weather" from the public registry
agentvault_cli discover weather --limit 10
# List agents tagged with "nlp" from a local registry
agentvault_cli discover --tags nlp --registry http://localhost:8000
# Find agents declaring TEE support on the public registry
agentvault_cli discover --has-tee true
The output is displayed in a table format.
run
¶
Execute a task on a specific remote agent using the A2A protocol.
Usage:
--agent <agent_ref>
/-a <agent_ref>
(Required): Identifies the target agent. This is crucial. It can be:- An Agent ID from the registry (e.g.,
examples/simple-agent
,my-org/my-agent
). The CLI will use the--registry
URL to fetch the corresponding Agent Card. - A direct URL to the agent's
agent-card.json
(e.g.,http://localhost:8001/agent-card.json
). - A local file path to the agent's
agent-card.json
(e.g.,../examples/basic_a2a_server/agent-card.json
).
- An Agent ID from the registry (e.g.,
--input <input_data>
/-i <input_data>
(Required): The input text for the agent's task.- To read input from a file, prefix the path with
@
. Example:--input @./prompts/my_request.txt
.
- To read input from a file, prefix the path with
--context-file <path>
: Path to a local JSON file containing MCP context data to send with the initial message.--registry <url>
: Registry URL (only used if<agent_ref>
is an Agent ID). Defaults toAGENTVAULT_REGISTRY_URL
env var or the public registryhttps://agentvault-registry-api.onrender.com
. (Note the cold start delay for the public instance).--key-service <service_id>
: Important for Authentication. If the agent requires authentication (e.g.,apiKey
oroauth2
) and its Agent Card doesn't specify aservice_identifier
, or if you want to use credentials stored under a different local name, use this flag to tell theKeyManager
which local service ID to use for lookup. Example:--key-service openai
.--auth-key <key>
: INSECURE - FOR TESTING ONLY. Directly provide the API key on the command line. This bypasses theKeyManager
lookup for agents using theapiKey
scheme. Avoid using this for sensitive keys.--output-artifacts <directory>
: If provided, artifact content larger than 1KB received via SSE will be saved to files in this directory (named using artifact ID and inferred extension) instead of being printed (truncated) to the console.
Example (Running the basic SDK example agent locally):
# Assumes the basic_a2a_server example is running on port 8000
agentvault_cli run --agent http://localhost:8000/agent-card.json --input "Hello Agent!"
Example (Running an agent from the public registry requiring an OpenAI key):
# First, ensure the key is configured:
# agentvault config set openai --keyring (and enter key)
# Then run the task (assuming agent 'some-org/openai-agent' uses 'openai' service ID)
# The --registry flag is omitted, so it uses the default public registry
agentvault_cli run --agent some-org/openai-agent --input "Summarize the concept of AI agents."
# Or, if the agent card didn't specify 'openai' as service_identifier:
agentvault_cli run --agent some-org/openai-agent --input "Summarize..." --key-service openai
The run
command connects to the agent and streams Server-Sent Events (SSE) back to your terminal, showing status updates, messages from the agent/tools, and artifact information using rich
formatting for better readability.
Usage Tips¶
(Same as before - Shell History, fzf + awk)
Re-running run
Commands¶
The agentvault_cli run
command can sometimes involve long agent identifiers or input strings. To easily recall and reuse previous commands:
- Shell History Search (Ctrl+R): Most shells allow you to search your command history interactively. Press
Ctrl+R
and start typing parts of the command you want to find (e.g.,run
, the agent ID, part of the input). history
Command: Usehistory | grep agentvault_cli run
(or similar filter) to list previous run commands. You can then execute a specific command number (e.g.,!123
).fzf
(Fuzzy Finder): If you havefzf
installed, you can pipe your history to it for interactive fuzzy searching:history | fzf
. Select the desired command and press Enter to execute it. This is very powerful for quickly finding complex commands.
Interactive Agent Selection (discover
+ fzf
)¶
If you have command-line tools like fzf
(fuzzy finder) and awk
installed, you can create powerful interactive workflows. For example, to discover agents, select one interactively, and then immediately run a task on it:
# Example: Discover agents matching "weather", select one, run with input
# Assumes default public registry or AGENTVAULT_REGISTRY_URL is set
agentvault_cli discover weather | fzf --height 40% --border --header "Select Agent:" | awk '{print $1}' | xargs -I {} agentvault_cli run --agent {} --input "What is the forecast for London?"
Explanation:
agentvault_cli discover weather
: Lists agents matching "weather" from the configured registry.| fzf ...
: Pipes the list tofzf
for interactive selection.| awk '{print $1}'
: Extracts the first column (the Agent ID) from the line selected infzf
. Note: You might need to adjust$1
if the ID is in a different column based on your terminal width ordiscover
output format.| xargs -I {} ...
: Takes the extracted ID ({}
) and inserts it into theagentvault_cli run
command.
This allows you to quickly find and use agents without manually copying and pasting IDs.