Command line interface to interact with weaviate
Project description
Weaviate CLI
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 or import data
- delete: Remove collections, tenants or data
- update: Modify collection settings, tenant states or data
- get: Retrieve collection info, tenant details 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",
"grpc_port": "your-grpc-port",
"grpc_host": "your-grpc-host",
"auth": {
"type": "api_key",
"api_key": "your-api-key"
}
}
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 notgrpc_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
- Slack Community - Join our active community
- Stack Overflow - Search using the
weaviate
tag - GitHub Issues - Report bugs or request features
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
License
BSD-3-Clause License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file weaviate_cli-3.2.1.tar.gz
.
File metadata
- Download URL: weaviate_cli-3.2.1.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9982c6b80ee2695618df97b1e69f54739c82ca92c9de90c395da8c3c4bb8c573
|
|
MD5 |
1c5f17233da978e07fd0daa47e65a52c
|
|
BLAKE2b-256 |
944a0c9aff0b93bd5efe0a48954d41245f982af2d2ae96e195c965b21216d7dd
|
File details
Details for the file weaviate_cli-3.2.1-py3-none-any.whl
.
File metadata
- Download URL: weaviate_cli-3.2.1-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.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5699d6d3dddd0fcf3a696f835523199263d5bb90d4f15e96a915dc59ad9e76e2
|
|
MD5 |
556c88c22e91e06b295705de0f8fc793
|
|
BLAKE2b-256 |
77845a2dca8c9e67a78ab98ca715309c7d1e73f28730e97644bcb40c0dc19fc1
|