CLI
Manage your Vendo data pipelines from the terminal with the Vendo CLI.
Last reviewed July 13, 2026
Command-line interface — Manage apps, sources, integrations, jobs, and models directly from your terminal.
Installation
curl -fsSL https://app2.vendodata.com/install.sh | bashThe installer downloads the latest standalone Vendo CLI binary for your platform, verifies its SHA-256 checksum, installs vendo to ~/.local/bin, and enables shell completions when possible.
The CLI source code, releases, and issue tracker live at github.com/vendo-analytics/vendo-cli .
Quickstart
vendo init
vendo doctor
vendo whoami
vendo statusAuthentication
The CLI stores credentials in a profile at ~/.config/vendo/config.json. Log in once and every subsequent command works with no flags.
Browser login (recommended)
vendo init # first-run setup (prompts + login + sanity checks)
# or, after the first run:
vendo loginOpens a browser window where you confirm the Vendo account. The CLI saves the resulting account-scoped API key as a profile keyed by the account slug, then closes the browser tab.
If you have access to multiple Vendo accounts, the browser flow lets you pick which one to authenticate against.
Headless login (CI, scripts, automation)
For environments without a browser, mint an account-scoped API key from Workspace Settings → API Keys in the Vendo dashboard and pass both the key and the account id:
vendo login --api-key vendo_sk_… --account <account-id>This validates the credentials against /api/v1/me and writes the same profile the browser flow would, so future commands need no flags.
Inspecting and managing the session
vendo whoami # which account you're authenticated as
vendo profile current # active profile + where each effective value comes from
vendo doctor # full health check (config, PATH, completions, API auth)
vendo logout # remove stored credentialsIf a browser callback fails for any reason, you can also save credentials manually:
vendo config set --api-key <key> --account <account-id>Multiple Accounts
The CLI supports multiple account profiles. Each vendo login saves a named profile (keyed by account slug). Inspect and switch between them with:
vendo profile list # See all saved profiles
vendo profile current # Show active profile and env overrides
vendo profile switch # Search and switch interactively
vendo config use <profile> # Switch directly by profile name
vendo status --profile <name> # Use a profile for one commandWhen an active profile exists, vendo config set ... updates that profile. If no profile is selected, the CLI falls back to the legacy flat config values.
If browser callback setup fails, save the key manually with:
vendo config set --api-key <key> --account <account-id>Commands
Account Health
vendo statusShows a summary of your account: active apps, sources, integrations, recent job failures, and sync health.
Identity
vendo whoamiShows the current authenticated account name, slug, and API key ID.
Apps
vendo apps list # List all app connections
vendo apps get <appId> # Get app details
vendo apps pause <appId> # Pause an app
vendo apps resume <appId> # Resume a paused app
vendo apps delete <appId> # Delete an app (confirms first)Sources
vendo sources list # List all data sources
vendo sources get <sourceId> # Get source details
vendo sources sync <sourceId> # Trigger a manual sync
vendo sources sync <id> --watch # Sync and wait for completion
vendo sources pause <sourceId> # Pause a source
vendo sources resume <sourceId> # Resume a paused source
vendo sources delete <sourceId> # Delete a source (confirms first)Integrations
vendo integrations list # List all integrations
vendo int get <integrationId> # Get details (short alias)
vendo int sync <integrationId> # Trigger a manual sync
vendo int sync <id> --watch # Sync and wait for completion
vendo int pause <integrationId> # Pause an integration
vendo int resume <integrationId> # Resume an integration
vendo int delete <integrationId> # Delete an integration (confirms first)Jobs
vendo jobs list # List sync jobs
vendo jobs list --status running # Filter by status
vendo jobs get <jobId> # Get job details
vendo jobs tail <jobId> # Tail one job live
vendo jobs tail --source <id> # Tail the latest job for a source
vendo jobs tail --integration <id> # Tail the latest job for an integration
vendo jobs tail --source <id> --next # Wait for the next new job, then tail it
vendo jobs cancel <jobId> # Cancel a running/pending job (confirms first)
vendo jobs watch # Live polling dashboardjobs tail --next
When combined with --source or --integration, the --next flag changes the behavior of jobs tail. Instead of tailing the latest existing job, it waits for the next new matching job to appear and then starts tailing it. This is useful when you are about to trigger a sync (manually or on schedule) and want to watch it from the very beginning.
# Wait for the next job for this source, then tail it
vendo jobs tail --source abc123 --next
# Wait for the next integration job
vendo jobs tail --integration def456 --nextThe command polls until a new job is detected, then switches to live tailing automatically.
jobs tail is the best workflow when you want to follow one specific sync. jobs watch remains available as a broader polling dashboard:
vendo jobs watch --interval 10 # Refresh every 10 seconds
vendo jobs watch --source <id> # Filter by sourceCatalog
vendo catalog list # Browse available integration types
vendo catalog get <appType> # Get details for a specific typeCatalog commands are global discovery commands, so they do not require an account ID to be configured.
Models
vendo models list # List data models
vendo models get <modelId> # Get model detailsmodels list shows all data models configured for your account, including their type, status, and last run time. models get displays full details for a specific model including its configuration, schedule, and recent run history.
Configuration
vendo config show # Show current settings and profiles
vendo config set --api-key <key> --account <account-id> # Save credentials manually
vendo config set --base-url <url> # Override API base URL
vendo profile current # Show effective profile and overrides
vendo profile switch # Search and switch profiles
vendo profile list # List saved profiles
vendo config use <profile> # Switch active account profile directly
vendo config list # List all account profiles (legacy path)
vendo config reset # Delete all CLI configurationIf a profile is active, vendo config set writes into that profile so manual fixes do not get shadowed by an older selected profile.
config show
vendo config show is a low-level diagnostic command for inspecting the effective configuration. It displays:
- Effective values — The API key, account ID, and base URL currently in effect, with labels showing where each value comes from (env var, active profile, or legacy config).
- Legacy fallback fields — Any flat
apiKey/baseUrl/accountIdvalues in the config file that would be used if no profile is selected. - Config path — The location of the config file (
~/.config/vendo/config.json). - Saved profiles — All named profiles with their account IDs and whether they are the active profile.
Example output:
Config path: /Users/you/.config/vendo/config.json
Effective values:
API Key: vendo_sk_...abc (from profile: acme-corp)
Account ID: 7f3a...d2e1 (from profile: acme-corp)
Base URL: https://app2.vendodata.com (default)
Saved profiles:
* acme-corp 7f3a...d2e1 (active)
sandbox 9b1c...f4a3This is useful for debugging authentication issues, especially when environment variables might be overriding profile values.
Options
Global Flags
| Flag | Description |
|---|---|
--profile <name> | Use a specific account profile for this command |
--debug | Show verbose request diagnostics and request IDs |
--help | Show help for any command |
-V, --version | Show CLI version |
--debug Flag
The --debug flag (or VENDO_DEBUG=1 environment variable) enables verbose request/response diagnostics for any command. This is invaluable for troubleshooting API issues.
When enabled, each HTTP request logs:
- Request — Method, URL, and headers sent.
- Response — Status code, request ID (
X-Request-Id), and response duration in milliseconds. - Failures — Structured error details from the API, including error codes and validation messages.
# Enable via flag
vendo sources list --debug
# Enable via environment variable
VENDO_DEBUG=1 vendo jobs list --status failedThe debug output goes to stderr so it does not interfere with --json output piped to other tools.
Common Command Flags
| Flag | Description |
|---|---|
--json | Output raw JSON (useful for scripting and piping) |
--limit <n> | Number of results (default: 20) |
--offset <n> | Pagination offset |
-y, --yes | Skip confirmation prompts (for delete/cancel commands) |
--watch | Wait for job completion after triggering a sync |
Examples
Scripting with JSON output
# Get all failed jobs as JSON
vendo jobs list --status failed --json | jq '.data[].id'
# Count active sources
vendo sources list --json | jq '.data | length'Monitoring
# Follow the next source sync live
vendo jobs tail --source abc123 --next
# Quick health check
vendo doctor
# Check identity
vendo whoamiTrigger a sync and wait
# Sync and watch until complete
vendo sources sync abc123 --watch
# Or trigger and monitor separately
vendo sources sync abc123
vendo jobs list --source abc123CI/CD Usage
For non-interactive environments (CI, automation, scripts), mint an account-scoped API key from Workspace Settings → API Keys in the Vendo dashboard, then run a headless login once at the start of the job:
vendo login --api-key vendo_sk_... --account <account-id>
vendo sources sync abc123 --watch --json
vendo apps delete old-app-id --yesThe headless login writes the same profile that the browser flow would, so every subsequent command in the same runner needs no flags.
Shell Completions
The installer enables shell completions automatically for bash, zsh, and fish when possible. You can also generate them manually:
# Bash — add to ~/.bashrc
eval "$(vendo completions bash)"
# Zsh — add to ~/.zshrc
eval "$(vendo completions zsh)"
# Fish — save to completions directory
vendo completions fish > ~/.config/fish/completions/vendo.fishUpdating
The CLI checks for updates automatically and notifies you when a new version is available.
vendo self-updateTo pin to a specific version instead of updating to the latest:
vendo self-update --version 1.2.0The --version flag downloads and installs the exact specified release. This is useful for rolling back to a known-good version or for locking CI environments to a specific CLI version.
Related
- Authentication — Learn about API key management
- API Overview — Use the REST API directly
- MCP Server — Connect AI tools to Vendo