qql-cli 0.1.5

Command-line interface, REPL, converter, and migration tools for QQL
qql-cli-0.1.5 is not a library.

qql-cli

CLI + REPL for QQL: remote Qdrant (REST/gRPC), convert, dump, doctor, optional edge.

Install

# Default: rest + grpc
cargo build --release -p qql-cli

# REST only (smaller)
cargo build --release -p qql-cli --no-default-features --features rest

# Edge + FastEmbed (opt-in; heavier)
cargo build --release -p qql-cli --features edge

Binary: target/release/qql.

Commands

Command Role
qql exec "…" One statement (--json, --quiet)
qql execute file.qql Script
qql explain "…" Plan without Qdrant
qql connect REPL
qql convert [file.json] REST JSON → QQL
qql dump <coll> out.qql Export collection as QQL
qql doctor Health + embed host snapshot
qql --edge … Use configured local edge backend
qql version Version
qql exec "SHOW COLLECTIONS"
qql exec --json "QUERY TEXT 'ml' FROM docs USING dense LIMIT 5"
qql explain "QUERY TEXT 'ml' FROM docs USING HYBRID LIMIT 5"
qql doctor --json

Configuration

Variable Default Role
QDRANT_URL http://localhost:6333 REST/gRPC URL (:6334 tends to select gRPC when enabled)
QDRANT_API_KEY — Auth
EMBED_URL — OpenAI-compatible embeddings
EMBED_MODEL all-minilm:l6-v2 Model id
EMBED_DIM 384 Dimension

Global: qql --url http://host:6333 exec "…".

Edge

qql config edge \
  --data-dir ./qql-data \
  --embedder http \
  --embed-url http://localhost:11434/v1/embeddings \
  --embed-model all-minilm:l6-v2 \
  --embed-dim 384

qql --edge exec "QUERY TEXT 'search' FROM docs USING dense LIMIT 5"
qql --edge doctor

Config: ~/.qql/edge.json. Edge does not support custom SHARD / CREATE SHARD KEY or GROUP BY — use remote Qdrant for those.

Multitenancy examples

CREATE SHARD KEY 'acme' ON COLLECTION docs WITH (shards_number = 2);

QUERY TEXT 'risks' FROM docs USING dense
WHERE tenant_id = 'acme'
SHARD 'acme'
LIMIT 10;

Script format

Semicolon-separated statements. -- comments OK.

CREATE COLLECTION docs (dense VECTOR(384, COSINE));
UPSERT INTO docs VALUES {id: 1, text: 'first document'}
  USING DENSE MODEL 'all-minilm:l6-v2';
QUERY TEXT 'search' FROM docs USING dense LIMIT 10;

Features

Feature Default Role
rest yes REST
grpc yes gRPC
edge no In-process edge + FastEmbed

Docs