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

Commands

login

Store an API key in ~/.vectorshift/config.toml.
With no --api-key, it opens https://app.vectorshift.ai/settings/keys in your browser and prompts you to paste the key (input hidden).
str
Store this key directly, without opening the browser or prompting.
flag
Don’t open the browser; just print the keys URL and prompt for the paste.
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.
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.
str
A custom name for this integration instance.
str
Space-separated OAuth scopes to request (OAuth types only).
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.
flag
Print the connect URL instead of opening it, then wait for completion.
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).
str
Override the resolved API key for this command.
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.
str
Filter by integration type (e.g. slack, postgres).
str
Override the resolved API key.
Output is tab-separated — object_id, type, status, name — one per line, or No integrations found.:

status

Show a single integration’s health status.
str
required
The integration’s object_id.
str
Override the resolved API key.
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.
str
required
The integration’s object_id.
str
Override the resolved API key.
Output: ✓ sync requested

reauth

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

disconnect

Delete an integration.
str
required
The integration’s object_id.
str
Override the resolved API key.
Output: ✓ disconnected

What’s next

Python reference

The Integration API each command wraps.

Overview

Mental model and where integrations plug in.