CLI Reference
Global options
Section titled “Global options”These flags are available on every command:
| Flag | Short | Default | Description |
|------|-------|---------|-------------|
| --output | -o | table | Output format: table, json, or yaml |
| --debug | | false | Show HTTP request/response details |
| --api-key | | | API key (overrides env and config file) |
| --base-url | | https://api.chronary.ai | API base URL |
| --no-color | | false | Disable colored output |
Environment variables
Section titled “Environment variables”| Variable | Description |
|----------|-------------|
| CHRONARY_API_KEY | API key (used if --api-key not set and no config profile) |
| CHRONARY_BASE_URL | API base URL override |
Config file
Section titled “Config file”The CLI stores credentials in ~/.config/chronary/config.json (or the platform-specific user config directory). Managed via chronary auth commands.
chronary auth
Section titled “chronary auth”Manage authentication profiles.
auth login
Section titled “auth login”Interactive login — prompts for your API key, validates it, and saves to a profile.
| Flag | Default | Description |
|------|---------|-------------|
| --profile | default | Profile name to save credentials under |
chronary auth loginchronary auth login --profile stagingauth status
Section titled “auth status”Show the active profile’s key (masked), mode (test/live), and base URL.
chronary auth statusauth list
Section titled “auth list”List all configured profiles with their mode and masked key.
chronary auth listauth switch <profile>
Section titled “auth switch <profile>”Switch the active profile.
chronary auth switch productionauth remove <profile>
Section titled “auth remove <profile>”Delete a saved profile.
chronary auth remove stagingchronary keys
Section titled “chronary keys”Manage agent-scoped API keys. Aliases: key.
These commands require an org-level API key.
keys list
Section titled “keys list”List all agent-scoped keys for the authenticated organization.
chronary keys listchronary keys list -o jsonkeys create [@file]
Section titled “keys create [@file]”| Flag | Default | Description |
|------|---------|-------------|
| --agent | | Agent ID (required unless using @file) |
| --label | | Optional label shown in later listings |
The raw key is printed once on successful creation.
chronary keys create --agent agt_a1b2c3d4 --label "Sales agent"chronary keys create @key.jsonkeys delete <id>
Section titled “keys delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --force | -f | Skip confirmation prompt |
| --yes | -y | Skip confirmation prompt (alias) |
chronary keys delete key_abc123chronary keys delete key_abc123 --yeschronary agents
Section titled “chronary agents”Manage agents. Aliases: agent.
agents list
Section titled “agents list”| Flag | Default | Description |
|------|---------|-------------|
| --type | | Filter by type: ai, human, resource |
| --status | | Filter by status: active, paused, decommissioned |
| --limit | 50 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages automatically |
chronary agents listchronary agents list --type ai --status active --allagents create [@file]
Section titled “agents create [@file]”| Flag | Default | Description |
|------|---------|-------------|
| --name | | Agent name (required unless using @file) |
| --type | ai | Agent type: ai, human, or resource |
| --description | | Agent description |
| --metadata | | Metadata as a JSON string |
chronary agents create --name "Sales Bot" --type aichronary agents create @agent.jsonagents get <id>
Section titled “agents get <id>”Retrieve an agent by ID.
chronary agents get agt_a1b2c3d4agents update <id>
Section titled “agents update <id>”| Flag | Description |
|------|-------------|
| --name | New name |
| --status | New status: active or paused |
| --description | New description |
| --metadata | New metadata as JSON string |
At least one flag is required.
chronary agents update agt_a1b2c3d4 --name "Sales Bot v2" --status pausedagents delete <id>
Section titled “agents delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --force | -f | Skip confirmation prompt |
| --yes | -y | Skip confirmation prompt (alias) |
chronary agents delete agt_a1b2c3d4chronary agents delete agt_a1b2c3d4 --yeschronary calendars
Section titled “chronary calendars”Manage calendars. Aliases: calendar, cal.
calendars list
Section titled “calendars list”| Flag | Default | Description |
|------|---------|-------------|
| --agent | | Filter by agent ID |
| --limit | 50 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages automatically |
chronary calendars listchronary calendars list --agent agt_a1b2c3d4calendars create [@file]
Section titled “calendars create [@file]”| Flag | Default | Description |
|------|---------|-------------|
| --name | | Calendar name (required unless using @file) |
| --timezone | UTC | IANA timezone (e.g., America/New_York) |
| --agent | | Agent ID to own the calendar |
| --metadata | | Metadata as JSON string |
chronary calendars create --name "Sales Meetings" --timezone "America/New_York" --agent agt_a1b2c3d4chronary calendars create @calendar.jsoncalendars get <id>
Section titled “calendars get <id>”chronary calendars get cal_x1y2z3calendars update <id>
Section titled “calendars update <id>”| Flag | Description |
|------|-------------|
| --name | New name |
| --timezone | New timezone |
| --metadata | New metadata as JSON string |
chronary calendars update cal_x1y2z3 --name "Updated Name"calendars delete <id>
Section titled “calendars delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --force | -f | Skip confirmation |
| --yes | -y | Skip confirmation (alias) |
chronary calendars delete cal_x1y2z3 --yescalendars context <id>
Section titled “calendars context <id>”Return the temporal context (current event, next event, recent, upcoming) for a calendar.
chronary calendars context cal_x1y2z3calendars availability-rules
Section titled “calendars availability-rules”Manage buffer-time and working-hours rules for a calendar. Aliases: rules.
chronary calendars availability-rules get cal_x1y2z3chronary calendars availability-rules set cal_x1y2z3 @rules.jsonchronary calendars availability-rules delete cal_x1y2z3 --yeschronary events
Section titled “chronary events”Manage events. Aliases: event.
events list
Section titled “events list”| Flag | Default | Description |
|------|---------|-------------|
| --calendar | | Calendar ID (required if --agent not set) |
| --agent | | Agent ID (lists all events across agent’s calendars) |
| --start-after | | Filter: start time after (ISO 8601) |
| --start-before | | Filter: start time before (ISO 8601) |
| --status | | Filter: confirmed, tentative, or cancelled |
| --limit | 50 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages automatically |
chronary events list --calendar cal_x1y2z3chronary events list --agent agt_a1b2c3d4 --status confirmed --allevents create [@file]
Section titled “events create [@file]”| Flag | Default | Description |
|------|---------|-------------|
| --calendar | | Calendar ID (required) |
| --title | | Event title (required unless using @file) |
| --start | | Start time, ISO 8601 (required unless using @file) |
| --end | | End time, ISO 8601 (required unless using @file) |
| --description | | Event description |
| --all-day | false | All-day event |
| --status | | Status: confirmed, tentative, cancelled, or hold |
| --metadata | | Metadata as JSON string |
| --hold-expires-at | | Required when --status=hold. ISO 8601 timestamp 30s–15min in the future. |
| --hold-priority | 0 | Priority for hold conflict resolution (0–100) |
chronary events create \ --calendar cal_x1y2z3 \ --title "Team standup" \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T09:15:00Z"
# Place a 5-minute hold at priority 10chronary events create \ --calendar cal_x1y2z3 \ --title "[hold] Candidate slot" \ --start "2026-04-07T14:00:00Z" \ --end "2026-04-07T14:30:00Z" \ --status hold \ --hold-expires-at "2026-04-07T13:05:00Z" \ --hold-priority 10events get <id>
Section titled “events get <id>”| Flag | Description |
|------|-------------|
| --calendar | Calendar ID (required) |
chronary events get evt_m1n2o3 --calendar cal_x1y2z3events update <id>
Section titled “events update <id>”| Flag | Description |
|------|-------------|
| --calendar | Calendar ID (required) |
| --title | New title |
| --start | New start time (ISO 8601) |
| --end | New end time (ISO 8601) |
| --description | New description |
| --status | New status |
| --metadata | New metadata as JSON string |
chronary events update evt_m1n2o3 --calendar cal_x1y2z3 --status cancelledevents delete <id>
Section titled “events delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --calendar | | Calendar ID (required) |
| --force | -f | Skip confirmation |
| --yes | -y | Skip confirmation (alias) |
chronary events delete evt_m1n2o3 --calendar cal_x1y2z3 --yesevents confirm <id>
Section titled “events confirm <id>”Promote a hold (status=hold) to a confirmed event. The hold must still be active.
chronary events confirm evt_m1n2o3events release <id>
Section titled “events release <id>”Manually release a hold before its TTL, freeing the slot for other agents.
chronary events release evt_m1n2o3chronary availability
Section titled “chronary availability”Query free/busy time slots. Aliases: avail.
Shared flags
Section titled “Shared flags”All availability subcommands accept:
| Flag | Default | Description |
|------|---------|-------------|
| --start | | Start of window, ISO 8601 (required) |
| --end | | End of window, ISO 8601 (required) |
| --slot-duration | 30m | Slot size: 15m, 30m, 45m, 1h, 2h |
| --include-busy | false | Include busy blocks in response |
availability agent <id>
Section titled “availability agent <id>”chronary availability agent agt_a1b2c3d4 \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z"availability calendar <id>
Section titled “availability calendar <id>”chronary availability calendar cal_x1y2z3 \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z"availability cross
Section titled “availability cross”| Flag | Description |
|------|-------------|
| --agents | Comma-separated agent IDs (required) |
| --calendars | Comma-separated calendar IDs (optional filter) |
chronary availability cross \ --agents "agt_a1b2c3d4,agt_e5f6g7h8" \ --start "2026-04-07T09:00:00Z" \ --end "2026-04-07T17:00:00Z" \ --slot-duration 1hchronary webhooks
Section titled “chronary webhooks”Manage webhook subscriptions. Aliases: webhook, wh.
webhooks list
Section titled “webhooks list”| Flag | Default | Description |
|------|---------|-------------|
| --limit | 20 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages |
webhooks create [@file]
Section titled “webhooks create [@file]”| Flag | Description |
|------|-------------|
| --url | Webhook endpoint URL (required unless using @file) |
| --events | Comma-separated event types (required unless using @file) |
Valid events: agent.created, agent.updated, event.created, event.updated, event.deleted.
chronary webhooks create \ --url "https://example.com/hook" \ --events "event.created, event.updated"webhooks get <id>
Section titled “webhooks get <id>”chronary webhooks get wh_a1b2c3d4webhooks update <id>
Section titled “webhooks update <id>”| Flag | Description |
|------|-------------|
| --url | New endpoint URL |
| --events | New comma-separated event types |
| --active | Enable (true) or disable (false) the webhook |
chronary webhooks update wh_a1b2c3d4 --active=falsewebhooks delete <id>
Section titled “webhooks delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --force | -f | Skip confirmation |
| --yes | -y | Skip confirmation (alias) |
chronary ical
Section titled “chronary ical”Manage iCal feed subscriptions. Aliases: ical-subscriptions.
ical list
Section titled “ical list”| Flag | Default | Description |
|------|---------|-------------|
| --agent | | Agent ID (required) |
| --status | | Filter: active, error, paused |
| --limit | 50 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages |
chronary ical list --agent agt_a1b2c3d4ical create
Section titled “ical create”| Flag | Description |
|------|-------------|
| --agent | Agent ID (required) |
| --calendar | Calendar ID to sync into (required) |
| --url | iCal feed URL, must be HTTPS (required) |
| --label | Label for this subscription |
chronary ical create \ --agent agt_a1b2c3d4 \ --calendar cal_x1y2z3 \ --url "https://calendar.google.com/calendar/ical/example/basic.ics" \ --label "Google Calendar"ical get <id>
Section titled “ical get <id>”chronary ical get isub_a1b2c3d4ical update <id>
Section titled “ical update <id>”| Flag | Description |
|------|-------------|
| --label | New label |
| --url | New iCal feed URL (HTTPS) |
chronary ical update isub_a1b2c3d4 --label "Work Calendar"ical delete <id>
Section titled “ical delete <id>”| Flag | Short | Description |
|------|-------|-------------|
| --force | -f | Skip confirmation |
| --yes | -y | Skip confirmation (alias) |
ical sync <id>
Section titled “ical sync <id>”Trigger an immediate sync (normally runs approximately every 5 minutes via cron).
chronary ical sync isub_a1b2c3d4chronary scheduling
Section titled “chronary scheduling”Manage multi-agent scheduling proposals. Aliases: schedule, proposals.
scheduling create @file
Section titled “scheduling create @file”Requires a @file payload with title, organizer_agent_id, participant_agent_ids, calendar_id, and slots.
chronary scheduling create @proposal.jsonscheduling list
Section titled “scheduling list”| Flag | Default | Description |
|------|---------|-------------|
| --status | | Filter: pending, confirmed, expired, cancelled |
| --organizer | | Filter by organizer agent ID |
| --limit | 50 | Max results per page |
| --offset | 0 | Pagination offset |
| --all | false | Fetch all pages automatically |
scheduling get <id>
Section titled “scheduling get <id>”Returns the full proposal (slots + responses).
scheduling respond <id> @file
Section titled “scheduling respond <id> @file”Submit an agent response. @file body: { agent_id, response, selected_slot_id?, counter_slots?, message? }.
chronary scheduling respond spr_a1b2c3 @respond.jsonscheduling resolve <id>
Section titled “scheduling resolve <id>”Pick the winning slot and create the event.
chronary scheduling resolve spr_a1b2c3scheduling cancel <id>
Section titled “scheduling cancel <id>”Cancel a pending proposal.
chronary scheduling cancel spr_a1b2c3chronary usage
Section titled “chronary usage”Show current plan usage and quota limits. No flags beyond global options.
chronary usagechronary usage -o jsonchronary health
Section titled “chronary health”Check API connectivity and latency. No authentication required.
chronary healthchronary health -o jsonchronary version
Section titled “chronary version”Print the CLI version.
chronary version