embcli
is a command-line interface with a collection of plugins that provide access to various embedding models and vector stores, allowing users to test and compare their performance from the terminal easily. It provides a unified interface for various embedding models, making it easy to generate embeddings, calculate similarity scores, perform document indexing and search, and more!
embcli is designed to be extensible (in a similar way to llm utility), so you can add your own plugins for any embedding model or API you want to use.
Alpha. embcli is in active development, and new features and plugins are being added regularly.
embcli supports a variety of embedding models, both proprietary and open source. Each model is provided as a plugin, which can be installed separately. The emb
command provides a unified interface for all plugins.
See Model Plugins and Multimodal Model Plugins for the full list of supported models.
- Python 3.10 or higher
- uv
git clone https://github.com/mocobeta/embcli.git
cd embcli
uv venv
See the README of each package.
uv run ruff check --fix
uv run ruff format
If you want to run the ruff linter and formatter in pre-commit hooks, you need to set up the pre-commit hook manually.
uv run pre-commit install
vim .git/hooks/pre-commit
# Edit the pre-commit hook to use 'uv run' instead of directly running pre-commit
# exec pre-commit "${ARGS[@]}"
exec uv run pre-commit "${ARGS[@]}"
See pre-commit for more information.
See the README of each package.
uv build --all-packages
uv run mkdocs build -f docs/mkdocs.yml
This tool is greatly influenced by llm, but its purpose is slightly different. While the llm command can handle embeddings, its main focus may not on embeddings (representation models) but on large language models. My motivation for creating this tool is to provide a feature-rich command-line utility for embeddings, for building semantic search, RAG applications, and other downstream tasks.
https://embcli.mocobeta.dev/#release_notes/
Apache License 2.0