Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.codezero.io/llms.txt

Use this file to discover all available pages before exploring further.

Manage the routes that tell cordon which hosts to intercept and what credentials to inject. Prefer these commands over editing cordon.toml directly. They validate the route shape, preserve existing config, and are intended to make route configuration safer and less error-prone. All cordon route subcommands accept --scope project|user to select which config file they target, matching cordon start and cordon setup. --config and --scope are mutually exclusive — passing both is an error. Resolution:
  1. --config <path> — explicit path.
  2. --scope <scope> — resolves to the scope’s default config path (project → $CWD/cordon.toml, user → ~/.config/cordon/cordon.toml).
  3. Neither flag — defaults to project scope ($CWD/cordon.toml).

cordon route add

Add a new route. With no flags, launches an interactive wizard that prompts for host, route name, auth type, secret source, and source-specific fields.
cordon route add

Non-interactive mode

Pass flags to skip the wizard. Requires --host, --auth-type, --source, and the fields required by the selected auth type and secret source:
cordon route add --host api.stripe.com --auth-type header --header-name Authorization --scheme Bearer --source keyring --account stripe-key
FlagDescription
--hostHostname to match (e.g. api.stripe.com)
--nameRoute name (defaults to derived from host)
--auth-typeheader or basic
--source1password or keyring
--vault1Password vault name (requires --source 1password)
--item1Password item name (requires --source 1password)
--field1Password field name (requires --source 1password)
--accountKeyring account name (requires --source keyring)
--usernameUsername (requires --auth-type basic)
--header-nameHeader name (requires --auth-type header)
--schemeOptional header auth scheme (requires --auth-type header; required with --header-name Authorization)
--configPath to cordon.toml (mutually exclusive with --scope)
--scopeproject (default) or user — selects which config file to edit

Examples

# Interactive — wizard prompts for everything
cordon route add

# Bearer-style Authorization header with keyring
cordon route add --host api.openai.com --auth-type header --header-name Authorization --scheme Bearer --source keyring --account openai

# Raw API-key header with 1Password
cordon route add --host api.anthropic.com --auth-type header --header-name x-api-key \
  --source 1password --vault Engineering --item "Anthropic API Key" --field credential

# Basic auth with keyring
cordon route add --host db.example.com --auth-type basic --username admin \
  --source keyring --account db-password

# Custom route name
cordon route add --host api.stripe.com --name stripe-live \
  --auth-type header --header-name Authorization --scheme Bearer --source keyring --account stripe-live-key

# Add to the user-scope config (~/.config/cordon/cordon.toml)
cordon route add --scope user --host api.openai.com \
  --auth-type header --header-name Authorization --scheme Bearer --source keyring --account openai
After adding a keyring-backed route, store the secret with cordon secret set ACCOUNT. Use cordon route show NAME to find the keyring account for a route. 1Password routes don’t need this step — credentials are fetched from 1Password directly.

cordon route edit

Edit an existing route. With no flags (other than --scope or --config), launches an interactive editor that pre-fills current values — press Enter to keep a value, or type a new one.
cordon route edit NAME

Non-interactive mode

Pass flags to change only specific fields without prompting:
cordon route edit stripe --host api2.stripe.com
Argument / FlagDescription
NAMERoute name to edit (positional, required)
--new-nameRename the route
--hostNew hostname
--auth-typeheader or basic
--source1password or keyring
--vault1Password vault name (requires --source 1password or existing 1password source)
--item1Password item name (requires --source 1password or existing 1password source)
--field1Password field name (requires --source 1password or existing 1password source)
--accountKeyring account name (requires --source keyring or existing keyring source)
--usernameUsername (requires --auth-type basic)
--header-nameHeader name (requires --auth-type header)
--schemeOptional header auth scheme (requires --auth-type header; required with --header-name Authorization)
--configPath to cordon.toml (mutually exclusive with --scope)
--scopeproject (default) or user — selects which config file to edit

Partial updates

Non-interactive edit changes only the fields you specify. Unspecified fields keep their current values. For 1Password sources, you can update individual sub-fields without repeating the others:
# Change only the vault — item and field stay the same
cordon route edit stripe --vault NewVault

Switching secret sources

When switching from one source to another with --source:
  • 1password to keyring: --account defaults to the route name if omitted
  • keyring to 1password: requires --vault, --item, and --field
# Switch from 1password to keyring (account defaults to "stripe")
cordon route edit stripe --source keyring

# Switch from keyring to 1password
cordon route edit stripe --source 1password --vault Eng --item "Stripe" --field token

Examples

# Interactive — pre-fills current values, press Enter to keep
cordon route edit stripe

# Change just the host
cordon route edit stripe --host api2.stripe.com

# Rename a route
cordon route edit stripe --new-name stripe-live

# Switch auth type (basic requires --username)
cordon route edit stripe --auth-type basic --username admin

# Update keyring account
cordon route edit stripe --account new-stripe-key

# Edit a route in the user-scope config
cordon route edit stripe --scope user

cordon route list

List all configured routes.
cordon route list [--scope project|user] [--config path/to/cordon.toml]
OptionDescription
--configPath to cordon.toml (mutually exclusive with --scope)
--scopeproject (default) or user — selects which config file to read
# List routes in the user-scope config
cordon route list --scope user

cordon route show

Show details of a single route.
cordon route show NAME [--scope project|user] [--config path/to/cordon.toml]
Argument / OptionDescription
NAMERoute name to show
--configPath to cordon.toml (mutually exclusive with --scope)
--scopeproject (default) or user — selects which config file to read

cordon route remove

Remove a route by name.
cordon route remove NAME [--yes] [--scope project|user] [--config path/to/cordon.toml]
Argument / OptionDescription
NAMERoute name to remove
--yes, -ySkip confirmation prompt
--configPath to cordon.toml (mutually exclusive with --scope)
--scopeproject (default) or user — selects which config file to edit