Skip to main content

seekdb-cli

Command-line client for seekdb / OceanBase, built for AI agents. Default JSON output, stateless invocations, and a consistent error format make it easy for agents to run SQL, inspect schema, manage vector collections, and use in-database AI models reliably.

Why seekdb-cli

  • Agent-friendly: Any agent that can run shell commands can use seekdb-cli via the seekdb command (the seekdb-cli command is the same entry point, useful for which seekdb-cli–style checks); output is JSON by default, and the seekdb ai-guide command provides a self-description of seekdb-cli usage for agents.
  • Safety: Row limits, write guards, and masking reduce risk when agents or scripts operate on live data.
  • Unified interface: One CLI for remote and embedded, SQL and vector collections, plus in-database AI, without interactive prompts or session state.

Features

  • JSON by default: All commands emit structured JSON; use --format table|csv|jsonl for human-readable output.
  • Row limits: LIMIT required when result exceeds 100 rows.
  • Write safeguards: Writes require --write; DELETE/UPDATE without WHERE are disallowed.
  • Sensitive-field masking: Columns such as phone, email, password, id_card are auto-masked in query results.
  • Operation history: All commands are logged to ~/.seekdb/sql-history.jsonl; for SQL execution, the SQL text is logged with sensitive literals redacted.
  • Database AI: Manage models and endpoints via DBMS_AI_SERVICE; use AI_COMPLETE for completion.

Requirements

  • Python 3.11+
  • seekdb / OceanBase (or any MySQL-protocol–compatible server)

Installation

pip install seekdb-cli

After installation, the seekdb command is available. The same program is also installed as seekdb-cli (e.g. for tooling that probes the binary name matching the PyPI package).

Connection

Works out of the box — with no configuration, seekdb-cli uses a default embedded database at ~/.seekdb/seekdb.db.

To connect to a remote server or use a different database path, create a global config file:

mkdir -p ~/.seekdb
# Remote
echo 'SEEKDB_DSN="seekdb://user:pass@host:port/database"' > ~/.seekdb/config.env

# Or embedded with a custom path
echo 'SEEKDB_DSN="embedded:/path/to/data"' > ~/.seekdb/config.env

Also supports --dsn CLI flag, SEEKDB_DSN environment variable, and project .env files, in decreasing priority.

TLS (remote DSN only): set it in the URL query string — for example seekdb://user:pass@host:2881/db?tls=skip-verify (encrypted, no cert verification — typical for self-signed) or ?tls=required (encrypted with default CA verification). PEM paths: ssl_ca, ssl_cert, ssl_key. That is enough to define the connection; no separate TLS env vars are required.

Common commands

Command Description
seekdb status Connection status and version
seekdb schema tables List all tables
seekdb schema describe <table> Table structure (columns, types, indexes)
seekdb schema dump Output DDL for all tables (to stdout)
seekdb table profile <table> Table data profile (row count, nulls, distinct, min/max, candidate JOIN keys and time columns)
seekdb sql "<stmt>" Execute SQL (read-only by default; use --write for writes; --with-schema adds table schema; --no-truncate keeps large fields intact)
seekdb relations infer [--table <t>] Infer JOIN relationships between tables
seekdb collection list | create | delete | info Vector collection management
seekdb query <coll> --text "<query>" [--mode semantic|fulltext|hybrid] Search a collection (default: hybrid)
seekdb get <coll> [--ids ...] [--limit n] Get documents by ID or condition
seekdb add <coll> (--file | --stdin | --data) Add data to a collection
seekdb export <coll> --output <path> Export collection data
seekdb ai model list | create | delete AI model management (DBMS_AI_SERVICE)
seekdb ai model endpoint create | delete Create or delete AI model endpoints
seekdb ai complete "<prompt>" --model <name> In-database AI completion (AI_COMPLETE)
seekdb ai-guide Print structured guide for AI agents (JSON)

Option order

--dsn and --format are global options and must appear before the subcommand:

seekdb --format table sql "SELECT * FROM t LIMIT 5"
seekdb --dsn "seekdb://root:@127.0.0.1:2881/test" schema tables

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seekdb_cli-0.1.7.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seekdb_cli-0.1.7-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file seekdb_cli-0.1.7.tar.gz.

File metadata

  • Download URL: seekdb_cli-0.1.7.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for seekdb_cli-0.1.7.tar.gz
Algorithm Hash digest
SHA256 4c938cad52d197fdf69f74a697637b3a4f3e048c248df588a42929cff8896f4a
MD5 ccf7d61701ceb633f19f09b6ec2a907c
BLAKE2b-256 40fe7ad94b21f7db3c6cd9517ee9d896465e2ead81d9ed662d35fdd763fcc1a6

See more details on using hashes here.

File details

Details for the file seekdb_cli-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: seekdb_cli-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for seekdb_cli-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 973a55d63cdc9ea7aa5dff7921450b93772293ff5280f0074fae0450c919d867
MD5 5cc0af6b1b17fa59e849baf39e2033ee
BLAKE2b-256 776685475f02960a15d9badad835c0260ba7d2e6ffbc7d0673bd0a8d77f0aab7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page