https://github.com/infino-ai/infino-cli
Command-line interface for infino: SQL, full-text, and vector search over object storage
https://github.com/infino-ai/infino-cli
bm25 cli command-line embedded-database full-text-search infino object-storage parquet rag retrieval rust search-engine sql vector-search
Last synced: about 9 hours ago
JSON representation
Command-line interface for infino: SQL, full-text, and vector search over object storage
- Host: GitHub
- URL: https://github.com/infino-ai/infino-cli
- Owner: infino-ai
- Created: 2026-06-30T11:39:55.000Z (2 days ago)
- Default Branch: main
- Last Pushed: 2026-07-01T06:23:51.000Z (1 day ago)
- Last Synced: 2026-07-01T08:15:52.331Z (1 day ago)
- Topics: bm25, cli, command-line, embedded-database, full-text-search, infino, object-storage, parquet, rag, retrieval, rust, search-engine, sql, vector-search
- Language: Rust
- Size: 56.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# infino CLI
`infino` is the command-line interface to the
[infino](https://github.com/infino-ai/infino) retrieval engine — **SQL,
full-text (BM25), and vector search over a single copy of your data on object
storage**, from your terminal or a coding agent. No server, no daemon.
## Install
```sh
# Homebrew (macOS / Linux)
brew install infino-ai/tap/infino-cli
# npm
npm install -g @infino-ai/infino-cli # or: npx @infino-ai/infino-cli
# shell installer
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/infino-ai/infino-cli/releases/latest/download/infino-cli-installer.sh | sh
# cargo
cargo install infino-cli
```
All install the `infino` binary. (Or build from source: `cargo build --release`.)
## Quickstart
Every command targets a storage location with `--uri` (or the `INFINO_URI`
environment variable): `memory://`, `file://`, `s3:///`,
or `az:///`.
```sh
# Create a table and load its first rows (schema from YAML, body full-text indexed)
infino create-table docs --uri file://./data --schema schema.yaml --fts body --file seed.ndjson
# Add more rows
infino ingest docs --uri file://./data --file more.ndjson --format ndjson
# Search
infino bm25-search docs body "object storage" -k 10 --uri file://./data
infino query "SELECT id, body FROM docs LIMIT 10" --uri file://./data --output json
```
## Commands
| Command | What it does |
|---|---|
| `create-table` | Create a table and load initial rows (`--from-parquet`, or `--schema` + `--file`; `--fts` / `--vector` indexes) |
| `ingest` | Append rows from Parquet or NDJSON (file or stdin) |
| `bm25-search` | Ranked keyword (BM25) search |
| `vector-search` | Vector similarity (kNN) search — bring your own query vector |
| `hybrid-search` | Hybrid BM25 + vector search, fused with reciprocal-rank fusion |
| `token-match` / `exact-match` | Unranked token / exact-value match |
| `count` | Count rows matching a keyword query, without fetching them |
| `query` | Run SQL (incl. the `bm25_search()` / `vector_search()` table functions) |
| `tables` / `describe` | List tables / show a table's schema |
| `update` / `delete` | Change rows matching a `--where` SQL predicate |
| `optimize` | Compact a table |
| `gc` | Reclaim orphaned storage objects (maintenance; requires durable storage) |
| `skills install` | Install the bundled agent skills for Claude Code / Cursor |
Run `infino --help` for full flags. Output format is `--output
table` (default), `json`, or `csv`.
## Vectors
The CLI does **not** embed text — embed your query with your own model, then pass
the vector as a JSON array:
```sh
infino vector-search docs embedding --vector-file query.json -k 10 --uri file://./data
```
## Agent skills
`infino skills install` writes skill files into `~/.claude/skills` so agents
(Claude Code, Cursor) can drive the CLI in natural language:
```sh
infino skills install
infino skills status
```
## License
Apache-2.0. Part of the [infino](https://github.com/infino-ai/infino) project.