Skip to main content
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

All install the 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).
Add --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, so table 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.
The schema is a list of {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.
Run infino <command> --help for the full flags. Every row-returning command takes --output table (default), json, or csv. The CLI does not embed text — embed your query with your own model and pass the vector as a JSON array (or - for stdin):
Declare the column as 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:
This complements the MCP server: skills are for shell-native agents, MCP is for tool-calling agents.

Learn more

Last modified on August 27, 2026