infino is the command-line interface to the retrieval engine: SQL, full-text
(BM25), and vector search over a single copy of your data on object storage, run
straight from your terminal — or driven by a coding agent. It wraps the same
engine as the Python, Node, and Rust SDKs; there’s nothing extra
to run.
Install
infino binary. Check it landed:
On npm 11 and later the install prints a warning that it blocked a
postinstall script. That is expected and the install is fine: the platform
binary is fetched on first run instead. If you would rather avoid the warning,
use Homebrew or the shell installer.Connect
Every command targets a storage location with--uri (or the INFINO_URI
environment variable):
Cloud credentials are passed explicitly with
--storage-option KEY=VALUE
(repeatable), keyed by object_store’s config strings — the same storage_options
map the SDKs take. Nothing is read from AWS_* / AZURE_*;
omit them to use ambient cloud identity (IAM role / managed identity).
--validate to any command to fail fast at connect on bad credentials or an
unreachable endpoint, instead of on the first query.
Infino Cloud
Point--uri at your https://api.platform.infino.ws/<database> URL and pass an
API key with --api-key (or the INFINO_API_KEY environment variable). Every
command is identical to local use — only the --uri changes. Provision the
database once with database create:
--fields names the columns to return, and it is worth passing on every search:
without it a search returns _id and score only, never your text. On Infino
Cloud vector-search requires it; everywhere else it is optional but usually
what you want. See the hosted Quickstart and
Authentication.Quickstart
A table becomes durable on its first commit, sotable create loads initial
rows too: either from a Parquet file (--from-parquet, which also infers the
schema) or from a YAML schema plus a data file. Taking the second path, write
the two input files first.
{name, type} columns (see column
types); a full-text index needs a large_utf8 column. Each line
of the .ndjson file is one row, keyed by column name.
Column types
Use these in a--schema YAML file. nullable: true is optional per column.
Commands
Commands are grouped by what they act on.query and the search commands stay
at the top level, since those are what a session mostly runs.
The commands were flat before 0.6.0 (
create-table, tables, ingest, and so
on). The old names still parse and report their replacement, so an existing
script tells you what to change rather than failing with a generic error. They
will be removed in a later release.infino <command> --help for the full flags. Every row-returning command
takes --output table (default), json, or csv.
Vector search
The CLI does not embed text — embed your query with your own model and pass the vector as a JSON array (or- for stdin):
fixed_size_list<float32,384> in the schema and index it
when you create the table: --vector embedding:384:cosine
(column:dim:metric). Pass --fields here too, or results come back as _id
and score alone.
Agent skills
infino skills install writes skill files into ~/.claude/skills so coding
agents (Claude Code, Cursor) can drive the CLI in natural language:
Learn more
- Source, issues, and releases: github.com/infino-ai/infino-cli
- Packages: crates.io · npm
