CLI¶
The Tether CLI lets you set up your agent, verify your agent's identity, and debug the challenge-response flow — all from the terminal.
Install¶
Or use without installing:
Commands¶
tether init¶
Interactive setup wizard. Walks you through configuring your agent ID, private key path, and optionally generates a new RSA-2048 key pair.
This saves your configuration to ~/.tether/config.json.
If you choose to generate keys, it creates files in ~/.tether/keys/ (outside your current working directory) to reduce accidental git commits:
~/.tether/keys/<agent>.private.pem(private key,chmod 600)~/.tether/keys/<agent>.public.pem(public key, for registering with Tether)
If you manually set a key path inside a git repository, tether init prints a safety warning.
tether verify¶
Perform a full identity verification — requests a challenge, signs it, submits proof, and displays the result.
tether status¶
Show your current configuration — agent ID (masked) and key file path.
tether challenge¶
Request a new challenge code from the Tether API and print it.
tether sign <challenge>¶
Sign a challenge string with your private key and print the proof.
tether check <code>¶
Check the status of a challenge by its code.
tether agent create <name>¶
Create a new agent. Requires a bearer token (JWT or API key).
Assign a verified domain to the agent:
Returns the agent's ID, name, and a registration token (save it — it can't be retrieved later).
tether agent list¶
List all agents associated with your bearer token.
tether agent delete <id>¶
Delete an agent by its agent ID.
tether agent update <id>¶
Update which identity appears when that agent is verified.
# Show a verified domain
tether agent update "agent-id-here" --domain-id "domain-id"
# Revert to account email
tether agent update "agent-id-here" --show-email
tether agent keys <agentId>¶
List key lifecycle entries (active, grace, revoked) for an agent.
Requires bearer auth (JWT or API key).
tether agent rotate-key <agentId>¶
Rotate an agent key. Requires bearer auth (JWT or API key) plus step-up verification via either:
- --step-up-code, or
- --challenge + --proof
tether agent rotate-key "agent-id" \
--public-key "BASE64_SPKI_PUBLIC_KEY" \
--grace-hours 24 \
--step-up-code 123456
tether agent revoke-key <agentId> <keyId>¶
Revoke a specific key. Requires bearer auth (JWT or API key) plus step-up verification via either:
- --step-up-code, or
- --challenge + --proof
Tip
The CLI flag/env name is still --api-key / TETHER_API_KEY. For key lifecycle endpoints in automation, prefer --challenge + --proof step-up with your API key.
tether domain list¶
List all domains registered to your account. Requires a bearer token (JWT or API key).
Shows each domain's name, verification status, and ID. Use the domain ID with tether agent create --domain-id to assign a domain to an agent.
Configuration¶
The CLI resolves configuration in this order (first wins):
- CLI flags —
--agent-id,--key-path,--api-key - Environment variables —
TETHER_AGENT_ID,TETHER_PRIVATE_KEY_PATH,TETHER_API_KEY - Config file —
~/.tether/config.json(created bytether init)
Global Flags¶
| Flag | Description |
|---|---|
--agent-id <id> |
Override agent ID |
--key-path <path> |
Override private key file path |
--api-key <key> |
Bearer token for management operations (API key or JWT) |
--verbose |
Enable debug output |
--json |
Machine-readable JSON output (on supported commands) |
Example Workflows¶
Verification¶
# 1. Set up your agent
tether init
# 2. Check your config
tether status
# 3. Verify your identity
tether verify
# 4. Debug: manually request and sign a challenge
tether challenge
tether sign "the-challenge-code"
tether check "the-challenge-code"
Agent Management¶
# Create an agent
tether agent create "my-bot" --description "My helpful assistant"
# Create an agent with a verified domain
tether domain list # find the domain ID
tether agent create "my-bot" --domain-id "abc123"
# Update identity display
tether agent update "agent-id" --show-email
tether agent update "agent-id" --domain-id "abc123"
# List all agents
tether agent list
# Key lifecycle
tether agent keys "agent-id"
tether agent rotate-key "agent-id" --public-key "BASE64_SPKI_PUBLIC_KEY" --step-up-code 123456
tether agent revoke-key "agent-id" "key-id" --reason "compromised" --step-up-code 123456
# Delete an agent
tether agent delete "agent-id"
# List domains
tether domain list
Agent and domain management commands require a bearer token. API keys work for standard CRUD and key lifecycle endpoints; key lifecycle mutations (rotate-key, revoke-key) also require step-up verification. Set your bearer token via --api-key, the TETHER_API_KEY environment variable, or in your config file.