Skip to main content

Command line interface to interact with weaviate

Project description

Weaviate CLI

Weaviate logo

Build Status PyPI version

A powerful command-line interface for managing and interacting with Weaviate vector databases directly from your terminal.

Key Features

  • Collections: Create, update, delete and get collection configurations
  • Data Management: Import, query, update and delete data with various search types (vector, keyword, hybrid)
  • Multi-tenancy: Manage tenants and their states across collections
  • Backup & Restore: Create and restore backups with support for S3, GCS and filesystem
  • Sharding: Monitor and manage collection shards
  • Flexible Configuration: Configure vector indexes, replication, consistency levels and more
  • Role Management: Assign and revoke roles and permissions to users

Quick Start

Install using pip:

pip install weaviate-cli

On Mac, install using Homebrew:

brew install weaviate-cli

Basic Usage

# Show available commands
weaviate-cli --help

# Create a collection
weaviate-cli create collection --collection movies --vectorizer transformers

# Import test data
weaviate-cli create data --collection movies --limit 1000

# Query data
weaviate-cli query data --collection movies --search-type hybrid --query "action movies"

Core Commands

  • create: Create collections, tenants, backups, replications or import data
  • delete: Remove collections, tenants, replications or data
  • update: Modify collection settings, tenant states or data
  • get: Retrieve collection info, tenant details, replication operations or shard status
  • query: Search data using various methods
  • restore: Restore backups from supported backends
  • assign: Assign roles and permissions to users
  • revoke: Revoke roles and permissions from users

Configuration

Weaviate CLI allows you to configure your cluster endpoints and parameters through a configuration file. By default, the CLI looks for a configuration file at ~/.config/weaviate/config.json. If this file does not exist, it will be created with the following default values:

{
    "host": "localhost",
    "http_port": "8080",
    "grpc_port": "50051"
}

You can also specify your own configuration file using the --config-file option:

weaviate-cli --config-file /path/to/your/config.json

The configuration file should be a JSON file with the following structure:

{
    "host": "your-weaviate-host",
    "http_port": your-http-port, # note, this should be a number, NOT a string
    "grpc_port": your-grpc-port, # note, this should be a number, NOT a string
    "grpc_host": "your-grpc-host",
    "auth": {
        "type": "api_key",
        "api_key": "your-api-key"
    }
}

You can pass host without protocol and port or with protocol AND port.

E.g. this is also correct.

{
    "host": "https://your-weaviate-host:443",
    "grpc_host": "https://your-grpc-host:443",
    "auth": {
        "type": "api_key",
        "api_key": "your-api-key"
    }
}

NOTE: when you pass port, make sure to omit the protocol, otherwise it'll try to deduct it from the host string.

If you are using a remote Weaviate instance, you can use the weaviate-cli command to authenticate with your Weaviate instance. Here you can see an example on how the configuration file should look like if you are connecting to a WCD cluster:

NOTE: here host URL should be http endpoint not grpc_endpoint of the weaviate cloud. And without "https" prefix.

 {
     "host": "thisisaninventedcluster.url.s3.us-west3.prov.weaviate.cloud",
     "auth": {
         "type": "api_key",
         "api_key": "jfeRFsdfRfSasgsDoNOtTrYToUsErRQwqqdZfghasd"
     },
    "headers":{
        "X-OpenAI-Api-Key":"OPEN_AI_KEY",
        "X-Cohere-Api-Key":"Cohere_AI_KEY",
        "X-JinaAI-Api-Key":"JINA_AI_KEY"
        }
 }

If you want to allow using different users for different actions in your cluster, you can specify the different users in the configuration file and use the --user option to specify which user to use for a specific action. An example of how the configuration file should look like is the following:

{
    "host": "your-weaviate-host",
    "auth": {
        "type": "user",
        "user1": "your-api-key-for-user1",
        "user2": "your-api-key-for-user2"
    }
}

It's important to note that the "type" key must be set to "user" and the users must be specified in the auth section. When using the weaviate-cli command, you can specify the user to use for an action by using the --user option. For example:

weaviate-cli --user user1 create collection --collection movies --vectorizer transformers
weaviate-cli --user user2 get collection --collection movies

Shell Completion

Execute the following commands to enable shell completion.

Warning Warp is currently not supporting dynamic auto completion and thus can not support weaviate-cli completion.

Zsh

_WEAVIATE_CLI_COMPLETE=zsh_source weaviate-cli > ${fpath[1]}/_weaviate-cli
autoload -U compinit && compinit
echo 'autoload -U compinit && compinit' >> ~/.zshrc

Bash

echo 'eval "$(_WEAVIATE_CLI_COMPLETE=bash_source weaviate-cli)"' >> ~/.bashrc

Requirements

  • Python 3.10+
  • Weaviate instance (local or remote)

Documentation

Detailed documentation will be added soon.

Supported Model Provider

  • Weaviate Embeddings Service (WCD clusters only)
  • Contextionary
  • Transformers
  • OpenAI
  • Ollama
  • Cohere
  • JinaAI

Community & Support

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

License

BSD-3-Clause License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weaviate_cli-3.4.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weaviate_cli-3.4.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file weaviate_cli-3.4.0.tar.gz.

File metadata

  • Download URL: weaviate_cli-3.4.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for weaviate_cli-3.4.0.tar.gz
Algorithm Hash digest
SHA256 076cda1f480efb9333afa3a1aae65fd3839c04edbbc745823e52027c6be55a48
MD5 fed369dfb2e6ad00f8f58afbb8fc6478
BLAKE2b-256 1f5a32c6e5f2983f06d6d8719827305c19a79e5bdf897b346d4d59a3207c27cb

See more details on using hashes here.

File details

Details for the file weaviate_cli-3.4.0-py3-none-any.whl.

File metadata

  • Download URL: weaviate_cli-3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for weaviate_cli-3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc57a9ea8f28afd33bb69a243b0ace62900640678235c6e3f11034ea0405dbe9
MD5 39a4007cbe2bc0360ad35beef21da3e8
BLAKE2b-256 adab5cfd0e48ea28997a44d453dddc214396257871c18892411fcb6adab5757f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page