AI-Agent-friendly database CLI for seekdb / OceanBase
Project description
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
seekdbcommand (theseekdb-clicommand is the same entry point, useful forwhich seekdb-cli–style checks); output is JSON by default, and theseekdb ai-guidecommand 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|jsonlfor 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c938cad52d197fdf69f74a697637b3a4f3e048c248df588a42929cff8896f4a
|
|
| MD5 |
ccf7d61701ceb633f19f09b6ec2a907c
|
|
| BLAKE2b-256 |
40fe7ad94b21f7db3c6cd9517ee9d896465e2ead81d9ed662d35fdd763fcc1a6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
973a55d63cdc9ea7aa5dff7921450b93772293ff5280f0074fae0450c919d867
|
|
| MD5 |
5cc0af6b1b17fa59e849baf39e2033ee
|
|
| BLAKE2b-256 |
776685475f02960a15d9badad835c0260ba7d2e6ffbc7d0673bd0a8d77f0aab7
|