Skip to main content
The vectorshift CLI is a thin wrapper over the SDK for connecting and managing integrations from the terminal. Every command maps directly to an Integration method.

Install

The CLI ships with the SDK — no extra needed:
pip install vectorshift
This installs the vectorshift command alongside the Python library.

Authentication

Run login once to store a key, or set VECTORSHIFT_API_KEY in your environment. Every command resolves the key in this order (first match wins):
  1. --api-key flag on the command
  2. VECTORSHIFT_API_KEY environment variable
  3. ~/.vectorshift/config.toml (written by vectorshift login)
  4. vectorshift.api_key set in Python
If none resolve, the command exits with No API key found. Run 'vectorshift login' or set VECTORSHIFT_API_KEY. The config file is minimal:
[auth]
api_key = "sk_..."

Commands

login

Store an API key in ~/.vectorshift/config.toml.
vectorshift login [--api-key <key>] [--no-browser]
With no --api-key, it opens https://app.vectorshift.ai/settings/keys in your browser and prompts you to paste the key (input hidden).
--api-key
str
Store this key directly, without opening the browser or prompting.
--no-browser
flag
Don’t open the browser; just print the keys URL and prompt for the paste.
# Interactive: opens the browser, then prompts for the key
vectorshift login

# Non-interactive (CI): pass the key directly
vectorshift login --api-key sk_xxxxxxxx
Output: ✓ Saved API key to /Users/you/.vectorshift/config.toml

connect

Connect an integration. Without --cred, opens a hosted page to enter credentials / consent (works for form, OAuth, and hybrid types) and blocks until it completes; with --cred, does an instant form-based create from the CLI.
vectorshift connect <type> [--name <name>] [--scopes <scopes>] \
  [--cred key=value ...] [--no-browser] [--share] \
  [--link-expires-in <seconds>] [--api-key <key>]
type
str
required
Integration type. Accepts the route name (lowercase, e.g. slack, postgres, google-drive) or the display name (e.g. Slack). See Integration.types() for the catalogue.
--name
str
A custom name for this integration instance.
--scopes
str
Space-separated OAuth scopes to request (OAuth types only).
--cred
key=value (repeatable)
A form credential. Repeat for multiple fields. When present, the integration is created instantly from the CLI with no browser. Omit to enter credentials / consent in the hosted page instead.
--no-browser
flag
Print the connect URL instead of opening it, then wait for completion.
--share
flag
Generate a long-lived shareable connect link and return immediately (does not wait for completion). Prints the link and session_id.
Link time-to-live in seconds (use with --share).
--api-key
str
Override the resolved API key for this command.
# OAuth — opens the browser, streams status, waits for consent
vectorshift connect slack

# OAuth with custom scopes
vectorshift connect google-drive --scopes "https://www.googleapis.com/auth/drive.readonly"

# Form — created instantly from the CLI
vectorshift connect postgres \
  --cred host=db.example.com --cred database=app \
  --cred username=reader --cred password=secret --name prod-db

# Headless — print the URL to open elsewhere, then wait
vectorshift connect notion --no-browser

# Delegate the connection — long-lived link, don't wait
vectorshift connect slack --share --link-expires-in 86400
Output while waiting streams each status change, e.g. [pending], then on success: ✓ connected slack (integ_abc123). With --share: Shareable link: <url> and session_id: <id>.
--cred values are visible in your shell history and process list. For sensitive credentials, omit --cred and enter them in the hosted page instead.

integrations list

List your integrations, optionally filtered by type.
vectorshift integrations list [--type <type>] [--api-key <key>]
--type
str
Filter by integration type (e.g. slack, postgres).
--api-key
str
Override the resolved API key.
vectorshift integrations list
vectorshift integrations list --type slack
Output is tab-separated — object_id, type, status, name — one per line, or No integrations found.:
integ_abc123    slack       done        Acme workspace
integ_def456    postgres    done        prod-db

status

Show a single integration’s health status.
vectorshift status <id> [--api-key <key>]
id
str
required
The integration’s object_id.
--api-key
str
Override the resolved API key.
vectorshift status integ_abc123
Output: the status string — done, loading, or unhealthy.

sync

Trigger a metadata resync (refresh available tables, files, etc.). Supported for revamped integration types. Fire-and-forget.
vectorshift sync <id> [--api-key <key>]
id
str
required
The integration’s object_id.
--api-key
str
Override the resolved API key.
vectorshift sync integ_abc123
Output: ✓ sync requested

reauth

Reconnect an existing integration in place to refresh expired or revoked auth. Keeps the same object_id.
vectorshift reauth <id> [--no-browser] [--api-key <key>]
id
str
required
The integration’s object_id.
--no-browser
flag
Print the reconnect URL instead of opening it, then wait.
--api-key
str
Override the resolved API key.
vectorshift reauth integ_abc123
Output streams status changes, then: ✓ reconnected slack (integ_abc123).

disconnect

Delete an integration.
vectorshift disconnect <id> [--api-key <key>]
id
str
required
The integration’s object_id.
--api-key
str
Override the resolved API key.
vectorshift disconnect integ_abc123
Output: ✓ disconnected

What’s next

Python reference

The Integration API each command wraps.

Overview

Mental model and where integrations plug in.