Skip to Content
CLI
Feature guideDeveloper toolsAvailable

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 | bash

The 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 status

Authentication

The CLI stores credentials in a profile at ~/.config/vendo/config.json. Log in once and every subsequent command works with no flags.

vendo init # first-run setup (prompts + login + sanity checks) # or, after the first run: vendo login

Opens 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 credentials

If 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 command

When 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 status

Shows a summary of your account: active apps, sources, integrations, recent job failures, and sync health.

Identity

vendo whoami

Shows 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 dashboard

jobs 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 --next

The 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 source

Catalog

vendo catalog list # Browse available integration types vendo catalog get <appType> # Get details for a specific type

Catalog 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 details

models 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 configuration

If 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/accountId values 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...f4a3

This is useful for debugging authentication issues, especially when environment variables might be overriding profile values.

Options

Global Flags

FlagDescription
--profile <name>Use a specific account profile for this command
--debugShow verbose request diagnostics and request IDs
--helpShow help for any command
-V, --versionShow 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 failed

The debug output goes to stderr so it does not interfere with --json output piped to other tools.

Common Command Flags

FlagDescription
--jsonOutput raw JSON (useful for scripting and piping)
--limit <n>Number of results (default: 20)
--offset <n>Pagination offset
-y, --yesSkip confirmation prompts (for delete/cancel commands)
--watchWait 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 whoami

Trigger 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 abc123

CI/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 --yes

The 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.fish

Updating

The CLI checks for updates automatically and notifies you when a new version is available.

vendo self-update

To pin to a specific version instead of updating to the latest:

vendo self-update --version 1.2.0

The --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.

Need help?

Include your workspace, integration or job ID, and the first error message when you contact support.

support@vendodata.com
Last updated on