{"id":"b56b0644-cf30-48e4-81d6-f1f8da7456d4","entityType":"agent","slug":"clawhub-oceanbase-seekdb","name":"Seekdb","canonicalUrl":"https://www.xpersona.co/agent/clawhub-oceanbase-seekdb","canonicalPath":"/agent/clawhub-oceanbase-seekdb","generatedAt":"2026-10-09T14:54:49.054Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":null},"description":"Overview skill for OceanBase SeekDB. Routes to specialized skills for installing/deploying SeekDB on a target machine and for building SeekDB from source. Us...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s173xk6pandy3xb5fbbspfx6q587gcwe:seekdb","sourceUrl":"https://clawhub.ai/oceanbase/seekdb","homepage":"https://clawhub.ai/oceanbase/skills/seekdb","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/oceanbase/seekdb","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/oceanbase/skills/seekdb","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":72,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Seekdb technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":null},"stars":null,"forks":null,"downloads":3920,"packageName":null,"latestVersion":"0.3.0","tractionLabel":"3.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T06:25:05.446Z","lastCrawledAt":"2026-10-09T06:25:05.446Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T06:25:05.446Z","lastVerifiedAt":null,"highlights":[{"version":"0.3.0","createdAt":"2026-06-11T02:33:30.056Z","changelog":"Add seekdb installation feature","fileCount":17,"zipByteSize":21987},{"version":"0.2.0","createdAt":"2026-03-20T02:44:57.327Z","changelog":"- Summary: Documentation improved and hybrid/semantic query triggers clarified. - Updated the description to include \"vector/hybrid/semantic search questions\" as valid triggers for using this skill. - Clarified vector workflow documentation: default query mode is now described as \"hybrid (semantic + fulltext)\" instead of just \"semantic\". - No changes to commands or functionality; documentation enhancements only.","fileCount":4,"zipByteSize":10548},{"version":"0.1.9","createdAt":"2026-03-20T01:45:03.241Z","changelog":"seekdb v0.1.9 expands from documentation lookup to full database and vector CLI operation. - seekdb is now both a documentation lookup and a database CLI skill (not just docs). - Added documentation and instructions for running SQL commands, managing schemas, collections, and AI models using seekdb-cli. - Detailed deployment, installation, and workflow guidance for both embedded and server modes. - Old documentation-only mode reworked; users can now fetch docs and execute database operations together. - Example and reference sections updated to cover new CLI commands and workflows. - Example workflow documentation file renamed: `references/examples.md` → `references/doc-examples.md`.","fileCount":3,"zipByteSize":9163},{"version":"0.1.8","createdAt":"2026-03-10T03:02:49.245Z","changelog":"- Switched to remote-only mode: documentation is now fetched on-demand from public URLs; local doc files and update scripts are removed. - Catalog search is unchanged; still uses a single local or remote JSONL file for path and description matching. - Catalog entries now include a `branch` field, which is used to generate the correct public doc URL. - Updated documentation and examples to clarify the remote access workflow and multi-version handling. - Removed references to any code execution, credential use, or subprocess requirements.","fileCount":3,"zipByteSize":3400},{"version":"0.1.5","createdAt":"2026-02-10T03:11:34.500Z","changelog":"seekdb-docs 0.1.5 - Improved clarity in SKILL.md workflow and guidelines, especially around when to use grep versus loading the full catalog. - Updated instructions to clarify grep as the preferred method for most keyword queries. - Added concise explanation for catalog search strategies and fallback handling. - Refined examples and step ordering for better usability and quick start guidance. - Enhanced documentation navigation by specifying where to find detailed workflow examples.","fileCount":4,"zipByteSize":7310},{"version":"0.1.4","createdAt":"2026-02-10T02:48:27.470Z","changelog":"**Summary: Local-first catalog/documentation search with dynamic path resolution, remote fallback, and improved usage instructions.** - Added dynamic skill directory path resolution to reliably access local catalog and documentation regardless of working directory. - Switched to a local-first strategy: use local catalog/docs (if present) with remote GitHub fallback for both catalog and documents. - Catalog is now a single JSONL file (1015 entries) optimized for keyword (grep) and semantic search. - New scripts/update_docs.sh added for optional local doc sync; full example workflows provided in references/examples.md. - Usage guidance updated: always resolve path via reading SKILL.md, prefer grep-based queries, load full catalog only for broad/complex queries, handle both local and remote sources.","fileCount":4,"zipByteSize":7173},{"version":"0.0.6","createdAt":"2026-02-03T06:58:54.203Z","changelog":"- Updated example documentation URLs to reflect new paths in the \"Develop\" section (e.g., vector and hybrid search examples). - No changes to core logic or features; documentation and usage instructions remain consistent. - Ensured alignment of example file paths with current remote documentation structure.","fileCount":2,"zipByteSize":2143},{"version":"0.0.5","createdAt":"2026-02-03T03:06:43.130Z","changelog":"- Removed all local documentation files and local fallback support (952 files deleted). - Switched documentation access to remote-only; all docs are now fetched from GitHub. - Updated skill description and usage instructions to reflect remote-only operation. - Added guidance for error handling when the remote documentation is unavailable.","fileCount":2,"zipByteSize":2146}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173xk6pandy3xb5fbbspfx6q587gcwe:seekdb","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s173xk6pandy3xb5fbbspfx6q587gcwe:seekdb` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/oceanbase/seekdb before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T14:54:49.049Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oceanbase-seekdb/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":null},"readme":"Skill: Seekdb\n\nOwner: oceanbase\n\nSummary: Overview skill for OceanBase SeekDB. Routes to specialized skills for installing/deploying SeekDB on a target machine and for building SeekDB from source. Us...\n\nTags: latest:0.3.0\n\nVersion history:\n\nv0.3.0 | 2026-06-11T02:33:30.056Z | user\n\nAdd seekdb installation feature\n\nv0.2.0 | 2026-03-20T02:44:57.327Z | auto\n\n- Summary: Documentation improved and hybrid/semantic query triggers clarified.\n- Updated the description to include \"vector/hybrid/semantic search questions\" as valid triggers for using this skill.\n- Clarified vector workflow documentation: default query mode is now described as \"hybrid (semantic + fulltext)\" instead of just \"semantic\".\n- No changes to commands or functionality; documentation enhancements only.\n\nv0.1.9 | 2026-03-20T01:45:03.241Z | auto\n\nseekdb v0.1.9 expands from documentation lookup to full database and vector CLI operation.\n\n- seekdb is now both a documentation lookup and a database CLI skill (not just docs).\n- Added documentation and instructions for running SQL commands, managing schemas, collections, and AI models using seekdb-cli.\n- Detailed deployment, installation, and workflow guidance for both embedded and server modes.\n- Old documentation-only mode reworked; users can now fetch docs and execute database operations together.\n- Example and reference sections updated to cover new CLI commands and workflows.\n- Example workflow documentation file renamed: `references/examples.md` → `references/doc-examples.md`.\n\nv0.1.8 | 2026-03-10T03:02:49.245Z | auto\n\n- Switched to remote-only mode: documentation is now fetched on-demand from public URLs; local doc files and update scripts are removed.\n- Catalog search is unchanged; still uses a single local or remote JSONL file for path and description matching.\n- Catalog entries now include a `branch` field, which is used to generate the correct public doc URL.\n- Updated documentation and examples to clarify the remote access workflow and multi-version handling.\n- Removed references to any code execution, credential use, or subprocess requirements.\n\nv0.1.5 | 2026-02-10T03:11:34.500Z | auto\n\nseekdb-docs 0.1.5\n\n- Improved clarity in SKILL.md workflow and guidelines, especially around when to use grep versus loading the full catalog.\n- Updated instructions to clarify grep as the preferred method for most keyword queries.\n- Added concise explanation for catalog search strategies and fallback handling.\n- Refined examples and step ordering for better usability and quick start guidance.\n- Enhanced documentation navigation by specifying where to find detailed workflow examples.\n\nv0.1.4 | 2026-02-10T02:48:27.470Z | auto\n\n**Summary: Local-first catalog/documentation search with dynamic path resolution, remote fallback, and improved usage instructions.**\n\n- Added dynamic skill directory path resolution to reliably access local catalog and documentation regardless of working directory.\n- Switched to a local-first strategy: use local catalog/docs (if present) with remote GitHub fallback for both catalog and documents.\n- Catalog is now a single JSONL file (1015 entries) optimized for keyword (grep) and semantic search.\n- New scripts/update_docs.sh added for optional local doc sync; full example workflows provided in references/examples.md.\n- Usage guidance updated: always resolve path via reading SKILL.md, prefer grep-based queries, load full catalog only for broad/complex queries, handle both local and remote sources.\n\nv0.0.6 | 2026-02-03T06:58:54.203Z | user\n\n- Updated example documentation URLs to reflect new paths in the \"Develop\" section (e.g., vector and hybrid search examples).\n- No changes to core logic or features; documentation and usage instructions remain consistent.\n- Ensured alignment of example file paths with current remote documentation structure.\n\nv0.0.5 | 2026-02-03T03:06:43.130Z | user\n\n- Removed all local documentation files and local fallback support (952 files deleted).\n- Switched documentation access to remote-only; all docs are now fetched from GitHub.\n- Updated skill description and usage instructions to reflect remote-only operation.\n- Added guidance for error handling when the remote documentation is unavailable.\n\nv0.0.4 | 2026-02-02T07:10:00.781Z | user\n\n- Improved documentation access with a remote-first, local-fallback strategy for seeking seekdb documentation.\n- Clearly described catalog-driven matching: match user queries semantically to catalog descriptions and categories.\n- Outlined structured processes for remote and local documentation lookup, with consistent behavior within conversations.\n- Added sample usage scenarios and guidance for querying, integration, and fallback handling.\n- Provided directory structure details and quick reference for local and remote documentation paths.\n\nArchive index:\n\nArchive v0.3.0: 17 files, 21987 bytes\n\nFiles: build/references/build-android.md (2903b), build/references/build-linux.md (1314b), build/references/build-macos.md (1336b), build/references/build-python-wheel.md (565b), build/references/build-windows.md (714b), build/SKILL.md (6782b), install/references/docker.md (1676b), install/references/linux-apt.md (2307b), install/references/linux-yum.md (2720b), install/references/macos-homebrew.md (1873b), install/references/pip-embedded.md (1473b), install/references/windows-msi.md (8660b), install/SKILL.md (4495b), package.json (511b), skill-card.md (3530b), SKILL.md (2129b), _meta.json (125b)\n\nFile v0.3.0:build/SKILL.md\n\n---\nname: seekdb-build\ndescription: Build SeekDB binaries and installation packages from source for one or more target platforms (macOS, Linux, Android cross-compile, Windows native, Python wheel). Handles argument parsing, target-aware dependency initialization (MD5 marker check), and dispatches to platform-specific build scripts. Use when the user says \"build seekdb\", \"compile seekdb\", \"make a release rpm/deb/tgz/apk/installer\", \"/build-seekdb\", or asks how to produce a SeekDB binary or package.\ncompatibility: macOS arm64 (≥13), Linux x86_64 (el8/el9), Android arm64-v8a (cross-compile on macOS/Linux), Windows x86_64 (native only).\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# Build SeekDB\n\nBuild SeekDB binaries and/or installation packages for one or more target platforms.\n\n## Usage\n\n```\n/build-seekdb [platform] [action] [options]\n```\n\n**platform** (default: auto-detect current OS):\n- `mac`     — macOS arm64/x86_64\n- `linux`   — Linux x86_64\n- `android` — Android arm64-v8a (cross-compile on macOS/Linux host)\n- `windows` — Windows x86_64 (native PowerShell environment only)\n\n**action** — what to do (default: `compile release`):\n\n| Platform | Compile actions | Package actions |\n|----------|----------------|-----------------|\n| `mac`    | `release` `debug` `perf` | `tgz` |\n| `linux`  | `release` `debug` `perf` | `rpm` `deb` |\n| `android`| `release` `debug` | `apk` |\n| `windows`| `release` `debug` | `installer` |\n\n- Compile actions build the seekdb binary + `libseekdb_embed_c`.\n- Package actions build an installable artifact (implies a release compile first if needed).\n- Multiple actions can be requested in one invocation, e.g. `release tgz` or `debug rpm`.\n\n**options**:\n- `--init`        — Force re-initialize dependencies before building\n- `--jobs N`      — Parallel jobs (default: all CPU cores)\n- `--version V`   — Version string for package naming (e.g. `4.3.5`, default: `beta`)\n- `--release R`   — Release/date string for package naming (e.g. `20260407`, default: today's date)\n- `--with-jni`    — (Android only) Also build `libseekdb_embed.so` JNI library\n- `--install`     — (Android only) `adb install` the APK after building\n\n---\n\n## Instructions\n\nWhen the user runs `/build-seekdb`, follow these steps.\n\n### Step 1 — Parse arguments\n\n- Extract platform, action(s), and options from `$ARGUMENTS`.\n- If no platform given, detect via `uname -s`: Darwin → mac, Linux → linux.\n- If no action given, default to `release` (compile only).\n- Default version: `beta`. Default release: today's date as `YYYYMMDD`.\n- Default jobs: detect with `sysctl -n hw.ncpu` (mac/android) or `nproc` (linux).\n- Reject invalid combinations (e.g. `deb` on mac, `tgz` on linux, `perf` on android/windows)\n  and tell the user which package/compile types are supported for their platform.\n\n---\n\n### Step 2 — Determine repo root\n\n```bash\nREPO_ROOT=$(pwd)\n```\nUse `$REPO_ROOT` for all subsequent commands. Do NOT hardcode any absolute path.\n\n**Key rule — package actions vs compile-only actions:**\n\n- **Package actions** (`apk`, `rpm`, `deb`, `tgz`, `installer`): call the dedicated packaging\n  script directly. These scripts already handle clean + init + make internally.\n  **Do NOT run a separate init step before them.**\n\n- **Compile-only actions** (`release`, `debug`, `perf`): no packaging script is involved.\n  Run the dep check below first, then call `build.sh --make`.\n\n#### Dependency check (compile-only actions only)\n\n`dep_create.sh` writes two marker files on successful init:\n- `deps/3rd/DONE` — generic completion flag\n- `deps/3rd/<MD5>` — MD5 of the platform-specific `.deps` file\n\n**Checking only `DONE` is insufficient.** The MD5 marker must match the *current* `.deps`\nfile for the *target* platform. A missing MD5 marker means:\n- the `.deps` file was updated (new or changed packages), OR\n- the last init was for a different platform (e.g. macOS deps present, but Android marker absent).\n\n```bash\n# 1. Determine the .deps file for the target platform\n#    Android:          $REPO_ROOT/deps/init/oceanbase.android.arm64.deps\n#    macOS arm64 ≥15:  $REPO_ROOT/deps/init/oceanbase.macos15.arm64.deps\n#    macOS arm64 13-14:$REPO_ROOT/deps/init/oceanbase.macos13.arm64.deps\n#    Linux el8 x86_64: $REPO_ROOT/deps/init/oceanbase.el8.x86_64.deps\n#    Linux el9 x86_64: $REPO_ROOT/deps/init/oceanbase.el9.x86_64.deps\n#\n# 2. Compute its MD5\n#    macOS: MD5=$(md5 -r <DEPS_FILE> | cut -d' ' -f1)\n#    Linux: MD5=$(md5sum <DEPS_FILE>  | cut -d' ' -f1)\n#\n# 3. Check the marker\nDEPS_MARKER=\"$REPO_ROOT/deps/3rd/$MD5\"\n```\n\n**OS_TAG reference table:**\n\n| Target | OS_TAG |\n|--------|--------|\n| Android cross-compile | `android.arm64` |\n| macOS arm64, macOS ≥ 15 | `macos15.arm64` |\n| macOS arm64, macOS 13–14 | `macos13.arm64` |\n| macOS x86_64, macOS ≥ 15 | `macos15.x86_64` |\n| Linux x86_64, RHEL/CentOS 8 | `el8.x86_64` |\n| Linux x86_64, RHEL/CentOS 9 | `el9.x86_64` |\n\nOn macOS: detect version with `sw_vers -productVersion`; detect arch with\n`sysctl -n hw.optional.arm64` (returns `1` for arm64, correct even under Rosetta).\n\n**Decision logic (compile-only):**\n\n| Condition | Action |\n|-----------|--------|\n| `--init` explicitly passed | Always run init: `./build.sh release [--android] --init` |\n| `$DEPS_MARKER` missing | Auto-run init, print `[build-seekdb] deps marker not found — running --init for <PLATFORM> ...` |\n| `$DEPS_MARKER` exists | Skip init, print `[build-seekdb] deps OK — skipping init.` |\n\n> `dep_create.sh` is idempotent — if the MD5 marker already matches it exits immediately.\n\n---\n\n### Step 3 — Execute builds\n\nPick the matching platform reference and follow it end-to-end. Each reference covers\ncompile modes, build directories, artifact paths, and the relevant packaging script.\n\n| Target | Reference |\n|--------|-----------|\n| macOS (compile + tgz) | [references/build-macos.md](references/build-macos.md) |\n| Linux (compile + rpm/deb) | [references/build-linux.md](references/build-linux.md) |\n| Android (cross-compile + apk) | [references/build-android.md](references/build-android.md) |\n| Windows (native compile + installer) | [references/build-windows.md](references/build-windows.md) |\n| Python wheel (manylinux only) | [references/build-python-wheel.md](references/build-python-wheel.md) |\n\n---\n\n### Step 4 — Report results\n\nAfter each action:\n- Print success or failure (exit code).\n- Print artifact path(s) and file sizes (`ls -lh`).\n- If init failed → abort, report error, do not proceed to make.\n- If make failed after successful init → suggest re-running with `--init` (marker may be stale).\n- If Android NDK missing → remind user to set `ANDROID_NDK_HOME`.\n- If `windows` requested on non-Windows → show PowerShell instructions, do not attempt build.\n\nFile v0.3.0:install/SKILL.md\n\n---\nname: seekdb-install\ndescription: Install / deploy a single SeekDB instance on the user's machine. Auto-detects OS and architecture, picks the right install method (Homebrew, Docker, yum, apt, Windows MSI, or pip embedded), and drives the install end-to-end — running commands, checking output, and diagnosing errors. Use when the user says \"install seekdb\", \"deploy seekdb\", \"set up seekdb locally\", \"try seekdb on my machine\", \"use seekdb from Python\", or asks how to get seekdb running on a specific OS.\ncompatibility: Linux x86_64/aarch64, macOS, Windows 10/11/Server 2022+. Embedded pip mode is Linux only.\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# Install SeekDB Locally\n\nYou are an **installation assistant** for OceanBase SeekDB. Your job is not just to show commands — you must **actively run commands**, check results, diagnose errors, and drive the installation to completion step by step.\n\nCore principles:\n- Run each command with the Bash tool and verify the output before proceeding.\n- If a step fails, diagnose the cause and fix it before moving on. Do not just show the fix — execute it.\n- Confirm each major milestone with the user before continuing to the next phase.\n- Keep the user informed of what you are doing and why.\n\n---\n\n## Phase 1 — Detect environment\n\nRun the following to understand the user's machine. Do this automatically without asking.\n\n```bash\nuname -s   # Darwin = macOS, Linux = Linux, MINGW64/MSYS/CYGWIN = Windows Git Bash\nuname -m   # x86_64, aarch64, arm64\n```\n\nAlso probe which package managers / runtimes are available:\n\n```bash\ncommand -v brew    # macOS Homebrew\ncommand -v docker  # Docker\ncommand -v yum     # RPM-based Linux\ncommand -v apt     # DEB-based Linux\ncommand -v pip     # Python pip\npython3 --version  # Python version\n```\n\nFrom the results, infer the best installation options and present them to the user. For example:\n- macOS detected → offer Homebrew and Docker\n- Linux x86_64 with yum → offer yum/systemd and Docker\n- Linux aarch64 with apt → offer apt/systemd and Docker\n- Python 3.8+ found → also offer embedded pip mode\n- Windows detected (MINGW64/MSYS/win32) → offer MSI installer\n\n---\n\n## Phase 2 — Confirm deployment mode\n\nAsk the user which mode they want (if not already clear from context):\n\n> \"I can see you're on [OS]. Which mode would you like?\n> - **Server mode** (Homebrew / Docker / yum / apt / Windows MSI) — runs a standalone server process\n> - **Embedded mode** (pip install) — runs inside your Python process, no server needed (Linux only)\"\n>\n> If on Windows, directly proceed to the Windows MSI flow (MSI is the only supported method).\n\n---\n\n## Phase 3 — Execute the chosen method\n\nPick the matching reference and follow it end-to-end. Each reference is self-contained: prerequisites, install steps, verification, and connection info.\n\n| Method | Reference | Platforms |\n|--------|-----------|-----------|\n| Embedded (pip) | [references/pip-embedded.md](references/pip-embedded.md) | Linux x86_64, Linux aarch64 |\n| macOS Homebrew | [references/macos-homebrew.md](references/macos-homebrew.md) | macOS 15+ |\n| Docker | [references/docker.md](references/docker.md) | Linux, macOS |\n| Linux yum (RPM) | [references/linux-yum.md](references/linux-yum.md) | Anolis 8/23, CentOS 7/9, openEuler 22/24 |\n| Linux apt (DEB) | [references/linux-apt.md](references/linux-apt.md) | Debian 11/12/13, Ubuntu 20.04/22.04/24.04 |\n| Windows MSI | [references/windows-msi.md](references/windows-msi.md) | Windows 10 (22H2+), 11, Server 2022+ |\n\n---\n\n## OS / method compatibility\n\n| Method            | Linux x86_64 | Linux aarch64 | macOS | Windows x86_64 |\n|-------------------|:---:|:---:|:---:|:---:|\n| pip (embedded)    | ✅  | ✅  | ❌  | ❌  |\n| yum / systemd     | ✅  | ✅  | ❌  | ❌  |\n| apt / systemd     | ✅  | ✅  | ❌  | ❌  |\n| Docker            | ✅  | ✅  | ✅  | ❌  |\n| Homebrew          | ❌  | ❌  | ✅  | ❌  |\n| MSI / Windows Svc | ❌  | ❌  | ❌  | ✅  |\n\n---\n\n## References\n\n- Deploy by systemd: <https://docs.seekdb.ai/seekdb/deploy-by-systemd/>\n- pyseekdb embedded install: <https://docs.seekdb.ai/seekdb/pyseekdb-sdk-get-started/#install-pyseekdb>\n- Docker image: <https://github.com/oceanbase/docker-images/blob/main/seekdb/README.md>\n- Windows MSI download: <https://mirrors.oceanbase.com/oceanbase/community/stable/windows/11/x86_64/seekdb-1.3.0.0-win64.msi>\n- Full documentation: <https://www.oceanbase.ai/docs/seekdb-overview/>\n\nFile v0.3.0:SKILL.md\n\n---\nname: seekdb\ndescription: Overview skill for OceanBase SeekDB. Routes to specialized skills for installing/deploying SeekDB on a target machine and for building SeekDB from source. Use as a starting point when the user mentions seekdb, pyseekdb, \"install seekdb\", \"build seekdb\", or wants a lightweight standalone OceanBase-compatible database. For obd-managed seekdb deployments and primary-standby HA, see the separate oceanbase-deploy/seekdb skill instead.\ncompatibility: Standalone product skill. Install and build flows have their own platform requirements — see sub-skills.\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# SeekDB\n\nSeekDB is a lightweight OceanBase-compatible database that can run as a standalone server (Homebrew / Docker / yum / apt / Windows MSI) or as an embedded Python module (`pyseekdb`).\n\nThis is the entry point. Use the specialized skills below for specific tasks.\n\n## Skill Index\n\n| Skill | Use When |\n|-------|----------|\n| [install](install/SKILL.md) | Install / deploy SeekDB on a target machine — Homebrew, Docker, yum, apt, Windows MSI, or pip embedded. |\n| [build](build/SKILL.md) | Build SeekDB binaries and packages from source — macOS, Linux, Android (cross), Windows, Python wheel. |\n\n## When to Use Which Skill\n\n- \"Install seekdb on my Mac / Linux / Windows\" → [install](install/SKILL.md)\n- \"I want to use seekdb from Python\" → [install](install/SKILL.md), pip embedded mode\n- \"Build seekdb from source\" / \"make a release rpm/deb/tgz/apk/installer\" → [build](build/SKILL.md)\n- \"Deploy seekdb primary-standby with obd, do switchover/failover\" → use the separate **`oceanbase-deploy/seekdb`** skill (lives under [`../oceanbase-deploy/seekdb/SKILL.md`](../oceanbase-deploy/seekdb/SKILL.md)). That skill is for obd-managed clusters; this skill is for the SeekDB product itself.\n\n## Default Ports\n\n| Port | Purpose |\n|------|---------|\n| 2881 | MySQL protocol |\n| 2886 | HTTP / obshell |\n\n## References\n\n- Product documentation: <https://www.oceanbase.ai/docs/seekdb-overview/>\n- Software download center: <https://mirrors.oceanbase.com/oceanbase/community/stable/>\n\nFile v0.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1781145210056\n}\n\nFile v0.3.0:build/references/build-android.md\n\n# Build SeekDB — Android (cross-compile from macOS or Linux host)\n\n**Supported targets:** Android arm64-v8a.\n\nBefore building, complete the dependency check from [build/SKILL.md → Step 2](../SKILL.md#step-2--determine-repo-root) — compile actions require the matching MD5 deps marker (`android.arm64`) to exist.\n\n---\n\n## Environment prerequisites\n\n```bash\nexport PATH=\"${ANDROID_HOME:-$HOME/Library/Android/sdk}/platform-tools:$PATH\"\nexport ANDROID_NDK_HOME=\"${ANDROID_NDK_HOME:-${ANDROID_HOME:-$HOME/Library/Android/sdk}/ndk/27.3.13750724}\"\n```\n\n---\n\n## Compile modes\n\n| Action | `build.sh` command | Build dir |\n|--------|--------------------|-----------|\n| `release` | `./build.sh release --android --make -j<N>` | `build_android_release/` |\n| `debug`   | `./build.sh debug --android --make -j<N>`   | `build_android_debug/`   |\n\nArtifacts (inside the build dir):\n- `src/observer/seekdb`\n- `src/observer/embed/libseekdb_embed_c.so`\n- `src/observer/embed/embedded_client`\n\n**Incremental make** (fastest for day-to-day iteration; skip dep check — deps already resolved):\n```bash\ncd $REPO_ROOT/build_android_release && make -j<N>\n```\n\n---\n\n## Package — `apk`\n\n`seekdb-apk-build.sh --build` runs `build.sh clean + release --android --init + make`\ninternally — skip the Step 2 init check when using `--build`:\n```bash\ncd $REPO_ROOT\n./package/apk/seekdb-apk-build.sh --build --apk [--with-jni] [--install] \\\n    seekdb <VERSION> <RELEASE>\n# Artifact: package/apk/seekdb-<VERSION>-<RELEASE>.apk\n#\n# --build    : clean + android init + make\n# --apk      : gradlew assembleDebug, rename and move APK\n# --with-jni : also build/sync libseekdb_embed.so\n# --install  : adb install -r onto connected device/emulator\n```\n\nScript requirements:\n- `ANDROID_NDK_HOME` set (default: `$HOME/Library/Android/sdk/ndk/27.3.13750724`)\n- JDK 17+ for Gradle (auto-detected from Android Studio JBR if not set)\n- `curl` or `wget` (downloads `gradle-wrapper.jar` on first run)\n\n---\n\n## Manual APK steps (alternative to `seekdb-apk-build.sh`)\n\n```bash\n# Step A: binary already built by compile step above\n\n# Step B: strip + copy into jniLibs\n_prebuilt=$(ls $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/ | head -1)\nNDK_STRIP=\"$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$_prebuilt/bin/llvm-strip\"\n$NDK_STRIP -o $REPO_ROOT/build_android_app/app/src/main/jniLibs/arm64-v8a/libseekdb_embed_c.so \\\n              $REPO_ROOT/build_android_release/src/observer/embed/libseekdb_embed_c.so\n$NDK_STRIP -o $REPO_ROOT/build_android_app/app/src/main/jniLibs/arm64-v8a/libembedded_client.so \\\n              $REPO_ROOT/build_android_release/src/observer/embed/embedded_client\n\n# Step C: build APK\necho \"sdk.dir=${ANDROID_HOME:-$HOME/Library/Android/sdk}\" > $REPO_ROOT/build_android_app/local.properties\ncd $REPO_ROOT/build_android_app && ./gradlew assembleDebug\n# Artifact: build_android_app/app/build/outputs/apk/debug/app-debug.apk\n```\n\nFile v0.3.0:build/references/build-linux.md\n\n# Build SeekDB — Linux\n\n**Supported targets:** Linux x86_64 on RHEL/CentOS 8 (el8) or 9 (el9).\n\nBefore building, complete the dependency check from [build/SKILL.md → Step 2](../SKILL.md#step-2--determine-repo-root) — compile actions require the matching MD5 deps marker to exist.\n\n---\n\n## Compile modes\n\n| Action | `build.sh` command | Build dir | Key flags |\n|--------|--------------------|-----------|-----------|\n| `release` | `./build.sh release --make -j<N>` | `build_release/` | RelWithDebInfo |\n| `debug`   | `./build.sh debug --make -j<N>`   | `build_debug/`   | Debug |\n| `perf`    | `./build.sh perf --make -j<N>`    | `build_perf/`    | RelWithDebInfo + ThinLTO + AutoFDO + BOLT |\n\nArtifact (inside the build dir):\n- `src/observer/seekdb`\n\n---\n\n## Package — `rpm`\n\nCall `rpm/seekdb-build.sh` directly — it handles clean + init + make internally:\n```bash\ncd $REPO_ROOT/rpm && bash seekdb-build.sh . seekdb <VERSION> <RELEASE>\n# Artifact: $REPO_ROOT/rpm/seekdb-<VERSION>-<RELEASE>.rpm\n```\n\n## Package — `deb` (Debian/Ubuntu hosts only)\n\nCall `package/deb/seekdb-build.sh` directly — it handles clean + init + make internally:\n```bash\ncd $REPO_ROOT/package/deb && bash seekdb-build.sh . seekdb <VERSION> <RELEASE>\n# Artifact: $REPO_ROOT/package/deb/seekdb-<VERSION>-<RELEASE>.deb + .ddeb\n```\n\nFile v0.3.0:build/references/build-macos.md\n\n# Build SeekDB — macOS\n\n**Supported targets:** macOS arm64 (≥13), macOS x86_64 (≥15).\n\nBefore building, complete the dependency check from [build/SKILL.md → Step 2](../SKILL.md#step-2--determine-repo-root) — compile actions require the matching MD5 deps marker to exist.\n\n---\n\n## Compile modes\n\n| Action | `build.sh` command | Build dir | Key flags |\n|--------|--------------------|-----------|-----------|\n| `release` | `./build.sh release --make -j<N>` | `build_release/` | RelWithDebInfo |\n| `debug`   | `./build.sh debug --make -j<N>`   | `build_debug/`   | Debug |\n| `perf`    | `./build.sh mac_perf --make -j<N>`| `build_mac_perf/`| RelWithDebInfo + ThinLTO (no FDO/BOLT — macOS limitation) |\n\nArtifact (inside the build dir):\n- `src/observer/seekdb`\n\nVerify:\n```bash\n./build_release/src/observer/seekdb --version\n```\n\n---\n\n## Package — `tgz`\n\nmacOS does **not** support Thin LTO in the package build configuration (`build.sh tgz`\nenables it by default). Call `build.sh` directly from `$REPO_ROOT` with\n`-DENABLE_THIN_LTO=OFF` — no need to `cd` into any subdirectory:\n\n```bash\n./build.sh tgz \\\n    -DOB_RELEASEID=<RELEASE> \\\n    -DBUILD_NUMBER=<RELEASE> \\\n    -DUSE_LTO_CACHE=ON       \\\n    -DENABLE_THIN_LTO=OFF    \\\n    --init --make tgz\n# Artifact: build_tgz/seekdb-<VERSION>-<RELEASE>-macos26-arm64.tar.gz\n```\n\nFile v0.3.0:build/references/build-python-wheel.md\n\n# Build SeekDB — Python Wheel\n\n**Constraint:** must be built inside a manylinux container so the resulting wheel is portable\nacross glibc-compatible Linux distros.\n\n---\n\n## Steps\n\n```bash\n# Must run inside quay.io/pypa/manylinux_2_28\nPACKAGE_VERSION=0.0.1\nfor python_home in /opt/python/cp3*/; do\n    PACKAGE_VERSION=$PACKAGE_VERSION PYTHON_HOME=$python_home bash package/wheel/build_python.sh\ndone\n# Artifacts: build_python/wheelhouse/seekdb-*.whl  seekdb_lib-*.whl\n```\n\nThe loop produces one wheel per supported CPython minor version under `/opt/python/cp3*/`.\n\nFile v0.3.0:build/references/build-windows.md\n\n# Build SeekDB — Windows (native PowerShell only)\n\n**Cannot cross-compile.** If the user requests `windows` from a macOS/Linux host, print:\n\n> Windows builds cannot be cross-compiled. Run the following natively on Windows:\n\n---\n\n## Prerequisites (one-time)\n\n```powershell\nwinget install -e --id Microsoft.DotNet.SDK.8\n# restart PowerShell, then:\ndotnet tool install --global wix\n```\n\n---\n\n## Init\n\n```powershell\n.\\build.ps1 init\n```\n\n---\n\n## Compile\n\n```powershell\n.\\build.ps1 release --ninja -j 16   # or: debug\n```\n\n---\n\n## Package — `installer` (WiX, after compile)\n\n```powershell\ncd build_release\ncmake --build . --target package\n```\n\n---\n\n## Verify\n\n```bash\nmysql -h 127.0.0.1 -uroot -P2881 -Dtest -A\n```\n\nFile v0.3.0:install/references/docker.md\n\n# Install SeekDB — Docker\n\n**Supported platforms:** Linux x86_64, Linux aarch64, macOS (with Docker Desktop). Not Windows.\n\n---\n\n## Step 1 — Check Docker\n\n```bash\ndocker --version\ndocker info 2>&1 | head -5\n```\nIf Docker is not running, tell the user to start Docker Desktop (macOS/Windows) or `systemctl start docker` (Linux), then wait.\n\n## Step 2 — Pull and run the container\n\n```bash\ndocker run -d \\\n  --name seekdb \\\n  -p 2881:2881 \\\n  -p 2886:2886 \\\n  -v \"$(pwd)/seekdb-data:/var/lib/oceanbase\" \\\n  oceanbase/seekdb:latest\n```\nIf a container named `seekdb` already exists, check its state first:\n```bash\ndocker ps -a --filter name=seekdb\n```\nIf it exists and is stopped, offer to restart it: `docker start seekdb`. If it exists and is running, skip to Step 3.\n\n## Step 3 — Wait for SeekDB to be ready\n\nSeekDB takes a few seconds to initialize. Check readiness by polling:\n```bash\nfor i in $(seq 1 12); do\n  docker exec seekdb mysql -h 127.0.0.1 -P 2881 -u root -e \"SELECT 1\" 2>/dev/null && echo \"Ready!\" && break\n  echo \"Waiting... ($i/12)\"\n  sleep 5\ndone\n```\nIf it is not ready after 60 seconds, check the logs:\n```bash\ndocker logs seekdb --tail 50\n```\nDiagnose the error and fix it.\n\n## Step 4 — Verify connectivity from host\n\n```bash\nmysql -h 127.0.0.1 -P 2881 -u root -e \"SELECT 'SeekDB is running!' AS status;\"\n```\n\n## Step 5 — Done\n\nConfirm success and show:\n- MySQL port: `127.0.0.1:2881`\n- HTTP port: `127.0.0.1:2886`\n- Data directory: `./seekdb-data`\n- Stop: `docker stop seekdb` / Start: `docker start seekdb` / Logs: `docker logs seekdb`\n\n---\n\n## References\n\n- Docker image: <https://github.com/oceanbase/docker-images/blob/main/seekdb/README.md>\n\nFile v0.3.0:install/references/linux-apt.md\n\n# Install SeekDB — Linux apt (DEB)\n\n**Supported systems:** Debian 11/12/13, Ubuntu 20.04/22.04/24.04 (kernel 4.19+)\n**Minimum requirements:** 1-core CPU, 2 GB RAM, `jq` and MySQL client installed, systemd available, sudo privileges.\n\n---\n\n## Step 1 — Check prerequisites\n\n```bash\nsystemctl --version 2>/dev/null | head -1 || echo \"systemd not available\"\ncommand -v jq || echo \"jq not installed\"\nlsb_release -a 2>/dev/null\n```\nIf `jq` is missing: `sudo apt install -y jq`\n\n## Step 2 — Install SeekDB\n\nAsk the user if they have network access to the internet:\n\n- **Online install (recommended):**\n```bash\necho \"deb [trusted=yes] http://mirrors.aliyun.com/oceanbase/community/stable/$(lsb_release -is | awk '{print tolower($0)}')/$(lsb_release -cs)/$(dpkg --print-architecture)/ ./\" \\\n  | sudo tee /etc/apt/sources.list.d/oceanbase.list\nsudo apt update\nsudo apt install seekdb\n```\n\n- **Offline install** (if user has downloaded the DEB package):\n```bash\nsudo dpkg -i seekdb-*.deb\n```\nIf the user needs to download the DEB first, direct them to the seekdb software download center to pick their version, OS, and CPU architecture.\n\n## Step 3 — (Optional) Edit configuration\n\nBefore first start, the user can edit:\n```bash\nsudo vim /etc/seekdb/seekdb.cnf\n```\nKey options with defaults:\n```\nport=2881\ndata-dir=/var/lib/oceanbase/store   # requires >15G free disk\nredo-dir=/var/lib/oceanbase/store/redo\ncpu_count=4                          # 0 = auto-detect\nmemory_limit=2G\n```\n\n## Step 4 — Start and enable the service\n\n```bash\nsudo systemctl start seekdb\nsudo systemctl enable seekdb\n```\n\n## Step 5 — Verify service status\n\n```bash\nsudo systemctl status seekdb\n```\nSuccess: `Active: active (running)` and `Status: seekdb is ready and running`.\nIf `failed`, check: `journalctl -u seekdb -n 50 --no-pager`\n\n## Step 6 — Verify connectivity\n\n```bash\nmysql -h 127.0.0.1 -u root -P 2881 -A -Dtest -e \"SELECT 'SeekDB is running!' AS status;\"\n```\n\n## Step 7 — Done\n\nConfirm success and show:\n- MySQL port: `127.0.0.1:2881`\n- Config file: `/etc/seekdb/seekdb.cnf`\n- Service management: `sudo systemctl {start|stop|status} seekdb`\n- Uninstall: `sudo apt remove seekdb && sudo bash /var/lib/seekdb/seekdb_clean.sh`\n\n---\n\n## References\n\n- Deploy by systemd: <https://docs.seekdb.ai/seekdb/deploy-by-systemd/>\n\nFile v0.3.0:install/references/linux-yum.md\n\n# Install SeekDB — Linux yum (RPM)\n\n**Supported systems:** Anolis OS 8.X/23.X, CentOS 7.X/9.X, openEuler 22.03/24.03 (kernel 4.19+)\n**Minimum requirements:** 1-core CPU, 2 GB RAM, `jq` and MySQL client installed, systemd available, sudo privileges.\n\n---\n\n## Step 1 — Check prerequisites\n\n```bash\nsystemctl --version 2>/dev/null | head -1 || echo \"systemd not available\"\ncommand -v jq || echo \"jq not installed\"\n```\nIf `jq` is missing: `sudo yum install -y jq`\n\n## Step 2 — Install SeekDB\n\nAsk the user if they have network access to the internet:\n\n- **Online install — yum repo (recommended):**\n```bash\nyum-config-manager --add-repo https://mirrors.oceanbase.com/oceanbase/community/stable/el/\\$releasever/\\$basearch/\nsudo yum install -y seekdb\n```\n\n- **Online install — script (alternative):**\n\n> **Security note:** The following command downloads and executes a remote script with root privileges. Review the script content before running, or prefer the yum repo method above.\n\n```bash\ncurl -fsSL https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/seekdb/seekdb_install.sh -o /tmp/seekdb_install.sh\n# Review the script before executing:\nless /tmp/seekdb_install.sh\nsudo bash /tmp/seekdb_install.sh\n```\n\n- **Offline install** (if user has downloaded the RPM package):\n```bash\nsudo rpm -ivh seekdb-*.rpm\n```\nIf the user needs to download the RPM first, direct them to the seekdb software download center to pick their version, OS, and CPU architecture.\n\n## Step 3 — (Optional) Edit configuration\n\nBefore first start, the user can edit:\n```bash\nsudo vim /etc/seekdb/seekdb.cnf\n```\nKey options with defaults:\n```\nport=2881\ndata-dir=/var/lib/oceanbase/store   # requires >15G free disk\nredo-dir=/var/lib/oceanbase/store/redo\ncpu_count=4                          # 0 = auto-detect\nmemory_limit=2G\n```\n\n## Step 4 — Start and enable the service\n\n```bash\nsudo systemctl start seekdb\nsudo systemctl enable seekdb\n```\n\n## Step 5 — Verify service status\n\n```bash\nsudo systemctl status seekdb\n```\nSuccess: `Active: active (running)` and `Status: seekdb is ready and running`.\nIf `failed`, check the journal:\n```bash\njournalctl -u seekdb -n 50 --no-pager\n```\nDiagnose and fix any errors.\n\n## Step 6 — Verify connectivity\n\n```bash\nmysql -h 127.0.0.1 -u root -P 2881 -A -Dtest -e \"SELECT 'SeekDB is running!' AS status;\"\n```\n\n## Step 7 — Done\n\nConfirm success and show:\n- MySQL port: `127.0.0.1:2881`\n- Config file: `/etc/seekdb/seekdb.cnf`\n- Service management: `sudo systemctl {start|stop|status} seekdb`\n- Uninstall: `sudo yum erase seekdb && sudo bash /var/lib/seekdb/seekdb_clean.sh`\n\n---\n\n## References\n\n- Deploy by systemd: <https://docs.seekdb.ai/seekdb/deploy-by-systemd/>\n\nArchive v0.2.0: 4 files, 10548 bytes\n\nFiles: references/doc-examples.md (3103b), skill-card.md (2698b), SKILL.md (20024b), _meta.json (125b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: seekdb\ndescription: \"Operate seekdb via CLI commands and look up seekdb documentation. Use when: executing SQL, exploring table schemas, managing vector collections, registering AI models, answering user questions about seekdb, or looking up seekdb concepts and syntax. Triggers on: SQL queries, database operations, seekdb features, vector/hybrid/semantic search questions, or any user question about seekdb. Supports both embedded mode and remote server mode.\"\nlicense: MIT\n---\n\n# seekdb — AI-Agent Database CLI with Documentation\n\nThis skill lets AI Agents **operate seekdb** via `seekdb-cli` commands and **look up seekdb documentation** when needed.\n\n> **Quick orientation**: Start with `seekdb ai-guide` to get a full JSON self-description of the CLI. Then run commands directly — no setup needed.\n\n---\n\n# Part 1: seekdb-cli Operations\n\n`seekdb-cli` is purpose-built for AI Agents. All output is structured JSON, all operations are stateless, and built-in safety guardrails prevent accidental data loss.\n\n## seekdb Deployment\n\nseekdb supports two modes. Use this section to guide users to the right deployment path based on their OS and scenario.\n\n### Embedded Mode\n\nseekdb runs as a library inside the application — **no server process required**. Install via `pyseekdb`:\n\n```bash\npip install -U pyseekdb\n```\n\n**Supported platforms**: Linux (glibc ≥ 2.28), macOS 15+ · **Architectures**: x86_64, aarch64\n\n> Windows and older macOS versions **do not support embedded mode**. Use server mode instead.\n\n### Server Mode\n\nA persistent seekdb process, connectable via MySQL client or seekdb-cli (remote DSN). Choose by OS:\n\n| OS | Recommended method | Quick start |\n|----|--------------------|-------------|\n| Linux (CentOS/RHEL/Anolis/openEuler) | Package manager (RPM) | `curl -fsSL https://obportal.s3.ap-southeast-1.amazonaws.com/download-center/opensource/seekdb/seekdb_install.sh \\| sudo bash` |\n| Linux (Debian/Ubuntu) | Package manager (DEB) | `sudo apt update && sudo apt install seekdb` |\n| macOS 15+ | Homebrew | `brew tap oceanbase/seekdb && brew install seekdb` |\n| Any OS with Docker | Docker | `docker run -d -p 2881:2881 oceanbase/seekdb` |\n| Windows / macOS (GUI) | OceanBase Desktop | Download from [oceanbase.ai/download](https://www.oceanbase.ai/download) |\n\n**Connect after server mode deployment** (default port 2881, user `root`, empty password):\n\n```bash\nmysql -h127.0.0.1 -uroot -P2881 -A -Dtest\n# or via seekdb-cli:\nseekdb --dsn \"seekdb://root:@127.0.0.1:2881/test\" status\n```\n\n**Minimum requirements**: 1 CPU core, 2 GB RAM, SSD storage.\n\nFor full deployment details, see the [deployment docs](https://github.com/oceanbase/seekdb-ecology-plugins/tree/main/agent-skills/skills/seekdb/seekdb-docs/400.guides/400.deploy).\n\n## Prerequisites\n\nCheck if seekdb-cli is installed:\n\n```bash\nseekdb --version\n```\n\nIf not installed, choose the method that matches your environment:\n\n**Recommended — pipx (works globally without polluting system Python):**\n\n```bash\n# Install pipx first if needed (Ubuntu/Debian)\nsudo apt install pipx && pipx ensurepath\n# Then install seekdb-cli\npipx install seekdb-cli\n```\n\n**Alternative — pip (when inside a project venv or on systems without PEP 668):**\n\n```bash\npip install seekdb-cli\n```\n\n> **Note for Ubuntu 23.04+ / Debian 12+:** Direct `pip install` at the system level is blocked by PEP 668.\n> Use `pipx` instead — it creates an isolated environment while keeping the `seekdb` command globally available on your PATH.\n\n## Connection\n\nseekdb-cli auto-discovers the connection (env var, `.env`, `~/.seekdb/config.env`, or default `~/.seekdb/seekdb.db`). No setup needed — just run commands directly.\n\nIf the user provides a specific DSN, pass it via `--dsn` (must appear **before** the subcommand):\n\n```bash\n# Remote mode\nseekdb --dsn \"seekdb://user:pass@host:port/db\" schema tables\n\n# Embedded mode (local database file)\nseekdb --dsn \"embedded:./seekdb.db\" status\nseekdb --dsn \"embedded:~/.seekdb/seekdb.db?database=mydb\" sql \"SELECT 1\"\n```\n\nDSN formats:\n- **Remote:** `seekdb://user:pass@host:port/db`\n- **Embedded:** `embedded:<path>[?database=<db>]` (default database: `test`)\n\n## Get a Full CLI Guide (run first)\n\n```bash\nseekdb ai-guide\n```\n\nReturns a structured JSON document with every command, parameter, workflow, safety rules, and output format. **Run this once at the start of any seekdb task** to orient yourself.\n\n## Recommended Workflows\n\n### SQL Database Exploration\n\n```\n1. seekdb schema tables              → list all tables (name, column count, row count)\n2. seekdb schema describe <table>    → get column names, types, indexes, comments\n3. seekdb table profile <table>      → data statistics (null ratios, distinct, min/max, top values)\n4. seekdb relations infer            → infer JOIN relationships between tables\n5. seekdb sql \"SELECT ... LIMIT N\"   → execute SQL with explicit LIMIT\n```\n\n### Vector Collection Workflow\n\n```\n1. seekdb collection list            → list all collections\n2. seekdb collection info <name>     → collection details and document preview\n3. seekdb query <collection> --text \"...\" → hybrid search (default: semantic + fulltext)\n4. seekdb add <collection> --data '...'  → add new documents\n```\n\n### AI Model Setup Workflow\n\n```\n1. seekdb ai model list                                    → check registered models\n2. seekdb ai model create <name> --type <type> --model <model_name>\n3. seekdb ai model endpoint create <ep> <model> --url <url> --access-key <key>\n4. seekdb ai complete \"<prompt>\" --model <name>           → test completion\n```\n\n## Command Reference\n\n### seekdb sql\n\nExecute SQL statements. Default is read-only mode.\n\n```bash\n# Read query\nseekdb sql \"SELECT id, name FROM users LIMIT 10\"\n\n# Read from file\nseekdb sql --file query.sql\n\n# Read from stdin\necho \"SELECT 1\" | seekdb sql --stdin\n\n# Include table schema in output\nseekdb sql \"SELECT * FROM orders LIMIT 5\" --with-schema\n\n# Disable large-field truncation\nseekdb sql \"SELECT content FROM articles LIMIT 1\" --no-truncate\n\n# Write operation (requires --write flag)\nseekdb sql --write \"INSERT INTO users (name) VALUES ('Alice')\"\nseekdb sql --write \"UPDATE users SET name = 'Bob' WHERE id = 1\"\nseekdb sql --write \"DELETE FROM users WHERE id = 3\"\n```\n\n**Output format:**\n\n```json\n{\"ok\": true, \"columns\": [\"id\", \"name\"], \"rows\": [{\"id\": 1, \"name\": \"Alice\"}], \"affected\": 0, \"time_ms\": 12}\n```\n\n### seekdb schema tables\n\n```bash\nseekdb schema tables\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"users\", \"columns\": 5, \"rows\": 1200}, {\"name\": \"orders\", \"columns\": 8, \"rows\": 50000}]}\n```\n\n### seekdb schema describe\n\n```bash\nseekdb schema describe orders\n```\n\n```json\n{\"ok\": true, \"data\": {\"table\": \"orders\", \"comment\": \"Order table\", \"columns\": [{\"name\": \"id\", \"type\": \"int\", \"comment\": \"Order ID\"}, {\"name\": \"status\", \"type\": \"varchar(20)\", \"comment\": \"0=pending, 1=paid\"}], \"indexes\": [\"PRIMARY(id)\", \"idx_status(status)\"]}}\n```\n\n### seekdb schema dump\n\n```bash\nseekdb schema dump\n```\n\nReturns all `CREATE TABLE` DDL statements.\n\n### seekdb table profile\n\nGenerate statistical summary of a table without returning raw data. Helps understand data distribution before writing SQL.\n\n```bash\nseekdb table profile <table>\n```\n\n```json\n{\"ok\": true, \"data\": {\n  \"table\": \"orders\",\n  \"row_count\": 50000,\n  \"columns\": [\n    {\"name\": \"id\", \"type\": \"int\", \"null_ratio\": 0, \"distinct\": 50000, \"min\": 1, \"max\": 50000},\n    {\"name\": \"user_id\", \"type\": \"int\", \"null_ratio\": 0, \"distinct\": 1200, \"min\": 1, \"max\": 1500},\n    {\"name\": \"amount\", \"type\": \"decimal(10,2)\", \"null_ratio\": 0.02, \"min\": 0.5, \"max\": 9999.99},\n    {\"name\": \"status\", \"type\": \"varchar(20)\", \"null_ratio\": 0, \"distinct\": 4, \"top_values\": [\"paid\", \"pending\", \"refunded\", \"cancelled\"]},\n    {\"name\": \"created_at\", \"type\": \"datetime\", \"null_ratio\": 0, \"min\": \"2024-01-01\", \"max\": \"2026-03-10\"}\n  ],\n  \"candidate_join_keys\": [\"user_id\"],\n  \"candidate_time_columns\": [\"created_at\"]\n}}\n```\n\n### seekdb relations infer\n\nInfer JOIN relationships between tables by analyzing column name patterns (e.g., `user_id` → `users.id`) and type compatibility.\n\n```bash\n# Infer all table relationships\nseekdb relations infer\n\n# Infer for a specific table only\nseekdb relations infer --table orders\n```\n\n```json\n{\"ok\": true, \"data\": [\n  {\"from\": \"orders.user_id\", \"to\": \"users.id\", \"confidence\": \"high\"},\n  {\"from\": \"orders.product_id\", \"to\": \"products.id\", \"confidence\": \"high\"},\n  {\"from\": \"order_items.order_id\", \"to\": \"orders.id\", \"confidence\": \"high\"}\n]}\n```\n\n### seekdb collection list\n\n```bash\nseekdb collection list\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"docs\", \"count\": 1500}, {\"name\": \"faq\", \"count\": 200}]}\n```\n\n### seekdb collection create\n\n```bash\nseekdb collection create my_docs --dimension 384 --distance cosine\nseekdb collection create my_docs -d 768 --distance l2\n```\n\nOptions: `--dimension` / `-d` (default: 384), `--distance` cosine | l2 | ip (default: cosine).\n\n### seekdb collection delete\n\n```bash\nseekdb collection delete my_docs\n```\n\n### seekdb collection info\n\n```bash\nseekdb collection info my_docs\n```\n\n```json\n{\"ok\": true, \"data\": {\"name\": \"my_docs\", \"count\": 1500, \"dimension\": 384, \"distance\": \"cosine\", \"preview\": {\"ids\": [\"doc1\", \"doc2\"], \"documents\": [\"Hello world\", \"Test doc\"], \"metadatas\": [{\"category\": \"test\"}, {}]}}}\n```\n\n`dimension` and `distance` are included when available from the collection metadata.\n\n### seekdb query\n\nSearch a collection using hybrid (default), semantic (vector), or fulltext mode.\n\n```bash\n# Hybrid search (default: semantic + fulltext, RRF ranking)\nseekdb query my_docs --text \"how to deploy seekdb\"\n\n# Semantic (vector) only\nseekdb query my_docs --text \"how to deploy seekdb\" --mode semantic\n\n# Fulltext search\nseekdb query my_docs --text \"deployment guide\" --mode fulltext\n\n# With metadata filter\nseekdb query my_docs --text \"performance tuning\" --where '{\"category\": \"tech\"}'\n\n# Limit results (--limit or -n, default: 10)\nseekdb query my_docs --text \"seekdb\" -n 5\n```\n\n```json\n{\"ok\": true, \"data\": {\"results\": [\n  {\"id\": \"doc1\", \"score\": 0.92, \"document\": \"How to deploy seekdb...\", \"metadata\": {\"category\": \"tech\"}},\n  {\"id\": \"doc2\", \"score\": 0.85, \"document\": \"seekdb performance tuning...\", \"metadata\": {\"category\": \"tech\"}}\n], \"count\": 2}, \"time_ms\": 35}\n```\n\n### seekdb get\n\nRetrieve documents from a collection by IDs or metadata filter.\n\n```bash\n# Get by IDs\nseekdb get my_docs --ids \"doc1,doc2\"\n\n# Get by metadata filter (--limit or -n, default: 10)\nseekdb get my_docs --where '{\"category\": \"tech\"}' -n 20\n```\n\n### seekdb add\n\nAdd data to a collection. Exactly one source is required: `--file`, `--stdin`, or `--data`. The collection is auto-created if it does not exist.\n\n```bash\n# From file (JSON array, JSONL, or CSV)\nseekdb add my_docs --file data.jsonl\nseekdb add my_docs --file articles.csv --vectorize-column content\n\n# Inline: single object or array\nseekdb add my_docs --data '{\"id\":\"1\",\"document\":\"Hello world\",\"metadata\":{\"source\":\"cli\"}}'\nseekdb add my_docs --data '[{\"id\":\"a\",\"document\":\"Doc A\"},{\"id\":\"b\",\"document\":\"Doc B\"}]'\n\n# From stdin (JSON array or JSONL; use with pipes)\necho '{\"id\":\"1\",\"document\":\"from pipe\"}' | seekdb add my_docs --stdin\nsome_script | seekdb add my_docs --stdin\n```\n\n**Record format**: Each record may have `id` (optional), `document`/`text`/`content` (text to vectorize), and any other fields become metadata. If `embedding` is present, it is used directly.\n\n### seekdb export\n\nExport collection data to a file.\n\n```bash\nseekdb export my_docs --output backup.json\nseekdb export my_docs --output backup.jsonl -n 5000\n```\n\nOptions: `--output` (required), `--limit` / `-n` (default: 10000).\n\n### seekdb ai model list\n\nList AI models registered in the database (from `DBA_OB_AI_MODELS` / DBMS_AI_SERVICE). Works in both remote and embedded mode.\n\n```bash\nseekdb ai model list\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"my_llm\", \"type\": \"completion\", \"model_name\": \"THUDM/GLM-4-9B-0414\", \"model_id\": 1}]}\n```\n\n### seekdb ai model create\n\nRegister an AI model via `DBMS_AI_SERVICE.CREATE_AI_MODEL`. Create an endpoint separately to use it for completion.\n\n```bash\nseekdb ai model create my_llm --type completion --model \"THUDM/GLM-4-9B-0414\"\nseekdb ai model create my_embed --type dense_embedding --model \"BAAI/bge-m3\"\nseekdb ai model create my_rerank --type rerank --model \"<rerank_model>\"\n```\n\nTypes: `completion`, `dense_embedding`, `rerank`.\n\n### seekdb ai model delete\n\nDrop an AI model. Drop any endpoints that use it first.\n\n```bash\nseekdb ai model delete my_llm\n```\n\n### seekdb ai model endpoint create / delete\n\nCreate or drop an endpoint that binds an AI model to a URL and API key (so the database can call the model).\n\n```bash\nseekdb ai model endpoint create my_ep my_llm \\\n  --url \"https://api.siliconflow.cn/v1/chat/completions\" \\\n  --access-key \"<YOUR_API_KEY>\" \\\n  --provider siliconflow\n\nseekdb ai model endpoint delete my_ep\n```\n\n**Supported `--provider` values:**\n\n| Provider | Vendor |\n|----------|--------|\n| `siliconflow` | SiliconFlow (OpenAI-compatible) |\n| `openAI` | OpenAI |\n| `deepseek` | DeepSeek (OpenAI-compatible) |\n| `aliyun-openAI` | Alibaba Cloud (OpenAI-compatible) |\n| `aliyun-dashscope` | Alibaba Cloud DashScope |\n| `hunyuan-openAI` | Tencent Hunyuan (OpenAI-compatible) |\n\n**Common `--url` values (use the specific interface URL, not the base URL):**\n\n| Vendor | completion | embedding | rerank |\n|--------|-----------|-----------|--------|\n| SiliconFlow | `https://api.siliconflow.cn/v1/chat/completions` | `https://api.siliconflow.cn/v1/embeddings` | `https://api.siliconflow.cn/v1/rerank` |\n| DeepSeek | `https://api.deepseek.com/chat/completions` | — | — |\n| Alibaba (OpenAI) | `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` | `https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings` | — |\n| Tencent Hunyuan | `https://api.hunyuan.cloud.tencent.com/v1/chat/completions` | `https://api.hunyuan.cloud.tencent.com/v1/embeddings` | — |\n\n### seekdb ai complete\n\nRun text completion using the database `AI_COMPLETE` function. Requires a registered **completion** model and an endpoint. Supported in both remote and embedded mode.\n\n```bash\nseekdb ai complete \"Summarize this table structure\" --model my_llm\n```\n\n```json\n{\"ok\": true, \"data\": {\"model\": \"my_llm\", \"response\": \"The table has...\"}, \"time_ms\": 1200}\n```\n\n### seekdb ai-guide\n\nOutput a structured JSON guide for AI Agents containing all commands, parameters, workflow, and safety rules. Execute once to learn the full CLI.\n\n```bash\nseekdb ai-guide\n```\n\n### seekdb status\n\n```bash\nseekdb status\n```\n\nReturns CLI version, server version, database name, and connectivity.\n\n## Safety Features\n\n### Row Protection\n\nQueries without `LIMIT` are automatically probed. If result exceeds 100 rows, execution is blocked:\n\n```json\n{\"ok\": false, \"error\": {\"code\": \"LIMIT_REQUIRED\", \"message\": \"Query returns more than 100 rows. Please add LIMIT to your SQL.\"}}\n```\n\n**Action**: Add an explicit `LIMIT` clause and retry.\n\n### Write Protection\n\nWrite operations (INSERT/UPDATE/DELETE) are blocked by default:\n\n```json\n{\"ok\": false, \"error\": {\"code\": \"WRITE_NOT_ALLOWED\", \"message\": \"Write operations require --write flag.\"}}\n```\n\n**Action**: Add `--write` flag to enable write operations.\n\nEven with `--write`, these are always blocked:\n- `DELETE` / `UPDATE` without `WHERE` clause\n- `DROP` / `TRUNCATE` statements\n\n### Error Auto-Correction\n\nOn SQL errors, the CLI automatically attaches schema hints:\n\n**Column not found** → returns the table's column list and indexes:\n```json\n{\"ok\": false, \"error\": {\"code\": \"SQL_ERROR\", \"message\": \"Unknown column 'username'\"}, \"schema\": {\"table\": \"users\", \"columns\": [\"id\", \"name\", \"email\"], \"indexes\": [\"PRIMARY(id)\"]}}\n```\n\n**Table not found** → returns available table names:\n```json\n{\"ok\": false, \"error\": {\"code\": \"SQL_ERROR\", \"message\": \"Table 'user' does not exist\"}, \"schema\": {\"tables\": [\"users\", \"orders\", \"products\"]}}\n```\n\n**Action**: Use the schema info to correct the SQL and retry.\n\n### Large Field Truncation\n\nTEXT/BLOB fields are truncated to 200 characters by default, with original length noted:\n\n```json\n{\"content\": \"First 200 characters of content...(truncated, 8520 chars)\"}\n```\n\nUse `--no-truncate` to get full content when needed.\n\n### Sensitive Field Masking\n\nColumns matching sensitive patterns are automatically masked:\n\n| Pattern | Example Output |\n|---------|---------------|\n| phone/mobile/tel | `138****5678` |\n| email | `z***@gmail.com` |\n| password/secret/token | `******` |\n| id_card/ssn | `110***********1234` |\n\n## Output Formats\n\nDefault is JSON. Switch with `--format` / `-f`:\n\n```bash\nseekdb -f table sql \"SELECT id, name FROM users LIMIT 5\"\nseekdb --format csv sql \"SELECT id, name FROM users LIMIT 5\"\nseekdb -f jsonl sql \"SELECT id, name FROM users LIMIT 5\"\n```\n\nAll formats now work with non-row data (e.g., `schema tables`, `collection list`). CSV and JSONL will auto-detect list-of-dict data in the `data` field.\n\n## Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | Success |\n| 1 | Business error (SQL error, connection error, etc.) |\n| 2 | Usage error (missing arguments, invalid options) |\n\n## Operation Logging\n\nAll commands are logged to `~/.seekdb/sql-history.jsonl` (seekdb-cli SQL execution history) for audit:\n\n```json\n{\"ts\": \"2026-03-12T14:23:01\", \"command\": \"sql\", \"sql\": \"SELECT id FROM users LIMIT 10\", \"ok\": true, \"rows\": 10, \"time_ms\": 12}\n```\n\n---\n\n# Part 2: Documentation Lookup\n\nUse documentation lookup when you need to understand a seekdb concept, look up SQL syntax, find configuration details, or answer user questions about seekdb.\n\n> **Tip**: For live database state (tables, schemas, data), run CLI commands directly. For concepts, syntax, and how-to guidance, search the docs.\n\n## When to Use Documentation Lookup\n\n- Need to understand a seekdb concept (vector search, hybrid search, HNSW index, etc.)\n- Need SQL or PL syntax reference not answerable by `seekdb schema` commands\n- Need deployment, configuration, or integration guidance\n- CLI returned an error and you need to understand why from the docs\n\n## Path Resolution\n\n1. Read this SKILL.md to get its absolute path and extract the parent directory as `<skill_dir>`\n2. Catalog: `<skill_dir>references/seekdb-docs-catalog.jsonl`\n   If missing locally, load from: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`\n\n## Documentation Workflow\n\n### Step 1: Search Catalog\n\nSearch the catalog file for lines containing the query keywords. Each line is one JSON object with `path`, `description`, and `branch`.\n\n```bash\n# Example: search for \"vector search\" in the catalog\ngrep -i \"vector search\" <skill_dir>references/seekdb-docs-catalog.jsonl\n```\n\n### Step 2: Match Query\n\n- Extract `path`, `description`, and `branch` from search results\n- Select entries whose descriptions best match the query semantically\n- Consider multiple matches for comprehensive answers\n\n### Step 3: Fetch Document\n\nFetch the document from the public docs URL:\n\n- URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]`\n- `[branch]` and `[path]` come from the catalog entry (e.g., `V1.0.0`, `V1.1.0`)\n\n## Example\n\n```\nQuery: \"How to integrate with Claude Code?\"\n\n1. Search catalog for \"claude code\"\n2. Found: {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n           \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n           \"branch\": \"V1.0.0\"}\n3. Fetch: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md\n```\n\nSee [references/doc-examples.md](references/doc-examples.md) for more workflow examples.\n\n---\n\n> If the information you need cannot be found in the catalog or the CLI output, visit the official seekdb documentation at **[oceanbase.ai/docs](https://www.oceanbase.ai/docs/)** for the most complete and up-to-date reference.\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1773974697327\n}\n\nFile v0.2.0:references/doc-examples.md\n\n# seekdb Documentation Examples\n\nComplete workflow examples for common seekdb documentation queries.\n\n## Example 1: Keyword Search (Normal Flow)\n\n**User Query**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → extract parent directory as <skill_dir>\n   ```\n\n2. **Search catalog**\n   Search for lines containing \"vector search\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/100.vector-search-intro.md\",\n    \"description\": \"This document provides an overview of vector search in seekdb, covering core concepts, supported vector data types, indexing methods, and search operations.\",\n    \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/600.search/300.vector-search/300.vector-similarity-search.md\",\n    \"description\": \"This document explains vector similarity search methods in seekdb...\",\n    \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch documents (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md` (and other matched paths with their `branch`)\n   - Use content to answer\n\n---\n\n## Example 2: Remote Fallback with Branch-Aware URL\n\n**User Query**: \"How to integrate seekdb with Claude Code?\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**\n   Search for lines containing \"claude code\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found:\n   ```json\n   {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n    \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n    \"branch\": \"V1.0.0\"}\n   ```\n   Note: `branch` is `V1.0.0` — this file only exists in the V1.0.0 branch (shared across versions via `showInAllVersions`).\n\n3. **Fetch document (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md`\n\n---\n\n## Example 3: Multiple Matches\n\n**User Query**: \"Tell me about seekdb indexes\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**\n   Search for lines containing \"index\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found multiple matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/200.vector-index/100.vector-index-overview.md\", \"description\": \"...vector index types...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/35.multi-model/300.char-and-text/300.full-text-index.md\", \"description\": \"...full-text indexes...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/40.create-index-in-develop.md\", \"description\": \"...creating indexes...\", \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch all relevant documents** from `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]` using each entry's `branch` and `path`.\n\n4. **Provide comprehensive answer** covering vector indexes, full-text indexes, and index creation syntax.\n\nFile v0.2.0:skill-card.md\n\n## Description: <br>\nOperate seekdb via CLI commands and look up seekdb documentation for SQL execution, schema exploration, vector and hybrid search, AI model registration, and seekdb concepts or syntax. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[davidzhangbj](https://clawhub.ai/user/davidzhangbj) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and database operators use this skill to inspect and operate seekdb databases, manage vector collections, register AI model endpoints, and answer seekdb documentation questions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can operate database credentials that seekdb-cli auto-discovers. <br>\nMitigation: Use an explicit least-privileged DSN and confirm the target database before running commands. <br>\nRisk: Write, export, delete, AI model registration, and endpoint commands can change data or expose sensitive access material. <br>\nMitigation: Review those commands before execution and avoid storing high-value API keys unless required. <br>\nRisk: SQL execution history is logged locally by seekdb-cli. <br>\nMitigation: Avoid running commands that include secrets or sensitive values, and handle local history according to the deployment's retention policy. <br>\nRisk: The documented server install path includes a remote script executed with elevated privileges. <br>\nMitigation: Inspect the install script and prefer package-managed or containerized installation paths where appropriate. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/davidzhangbj/seekdb) <br>\n- [seekdb deployment docs](https://github.com/oceanbase/seekdb-ecology-plugins/tree/main/agent-skills/skills/seekdb/seekdb-docs/400.guides/400.deploy) <br>\n- [seekdb documentation](https://www.oceanbase.ai/docs/) <br>\n- [Documentation examples](references/doc-examples.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON command-output examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Command outputs are described as structured JSON; some commands can also emit table, CSV, or JSONL.] <br>\n\n## Skill Version(s): <br>\n0.2.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.9: 3 files, 9163 bytes\n\nFiles: references/doc-examples.md (3103b), SKILL.md (19970b), _meta.json (125b)\n\nFile v0.1.9:SKILL.md\n\n---\nname: seekdb\ndescription: \"Operate seekdb via CLI commands and look up seekdb documentation. Use when: executing SQL, exploring table schemas, managing vector collections, registering AI models, answering user questions about seekdb, or looking up seekdb concepts and syntax. Triggers on: SQL queries, database operations, seekdb features, vector/semantic search questions, or any user question about seekdb. Supports both embedded mode and remote server mode.\"\nlicense: MIT\n---\n\n# seekdb — AI-Agent Database CLI with Documentation\n\nThis skill lets AI Agents **operate seekdb** via `seekdb-cli` commands and **look up seekdb documentation** when needed.\n\n> **Quick orientation**: Start with `seekdb ai-guide` to get a full JSON self-description of the CLI. Then run commands directly — no setup needed.\n\n---\n\n# Part 1: seekdb-cli Operations\n\n`seekdb-cli` is purpose-built for AI Agents. All output is structured JSON, all operations are stateless, and built-in safety guardrails prevent accidental data loss.\n\n## seekdb Deployment\n\nseekdb supports two modes. Use this section to guide users to the right deployment path based on their OS and scenario.\n\n### Embedded Mode\n\nseekdb runs as a library inside the application — **no server process required**. Install via `pyseekdb`:\n\n```bash\npip install -U pyseekdb\n```\n\n**Supported platforms**: Linux (glibc ≥ 2.28), macOS 15+ · **Architectures**: x86_64, aarch64\n\n> Windows and older macOS versions **do not support embedded mode**. Use server mode instead.\n\n### Server Mode\n\nA persistent seekdb process, connectable via MySQL client or seekdb-cli (remote DSN). Choose by OS:\n\n| OS | Recommended method | Quick start |\n|----|--------------------|-------------|\n| Linux (CentOS/RHEL/Anolis/openEuler) | Package manager (RPM) | `curl -fsSL https://obportal.s3.ap-southeast-1.amazonaws.com/download-center/opensource/seekdb/seekdb_install.sh \\| sudo bash` |\n| Linux (Debian/Ubuntu) | Package manager (DEB) | `sudo apt update && sudo apt install seekdb` |\n| macOS 15+ | Homebrew | `brew tap oceanbase/seekdb && brew install seekdb` |\n| Any OS with Docker | Docker | `docker run -d -p 2881:2881 oceanbase/seekdb` |\n| Windows / macOS (GUI) | OceanBase Desktop | Download from [oceanbase.ai/download](https://www.oceanbase.ai/download) |\n\n**Connect after server mode deployment** (default port 2881, user `root`, empty password):\n\n```bash\nmysql -h127.0.0.1 -uroot -P2881 -A -Dtest\n# or via seekdb-cli:\nseekdb --dsn \"seekdb://root:@127.0.0.1:2881/test\" status\n```\n\n**Minimum requirements**: 1 CPU core, 2 GB RAM, SSD storage.\n\nFor full deployment details, see the [deployment docs](https://github.com/oceanbase/seekdb-ecology-plugins/tree/main/agent-skills/skills/seekdb/seekdb-docs/400.guides/400.deploy).\n\n## Prerequisites\n\nCheck if seekdb-cli is installed:\n\n```bash\nseekdb --version\n```\n\nIf not installed, choose the method that matches your environment:\n\n**Recommended — pipx (works globally without polluting system Python):**\n\n```bash\n# Install pipx first if needed (Ubuntu/Debian)\nsudo apt install pipx && pipx ensurepath\n# Then install seekdb-cli\npipx install seekdb-cli\n```\n\n**Alternative — pip (when inside a project venv or on systems without PEP 668):**\n\n```bash\npip install seekdb-cli\n```\n\n> **Note for Ubuntu 23.04+ / Debian 12+:** Direct `pip install` at the system level is blocked by PEP 668.\n> Use `pipx` instead — it creates an isolated environment while keeping the `seekdb` command globally available on your PATH.\n\n## Connection\n\nseekdb-cli auto-discovers the connection (env var, `.env`, `~/.seekdb/config.env`, or default `~/.seekdb/seekdb.db`). No setup needed — just run commands directly.\n\nIf the user provides a specific DSN, pass it via `--dsn` (must appear **before** the subcommand):\n\n```bash\n# Remote mode\nseekdb --dsn \"seekdb://user:pass@host:port/db\" schema tables\n\n# Embedded mode (local database file)\nseekdb --dsn \"embedded:./seekdb.db\" status\nseekdb --dsn \"embedded:~/.seekdb/seekdb.db?database=mydb\" sql \"SELECT 1\"\n```\n\nDSN formats:\n- **Remote:** `seekdb://user:pass@host:port/db`\n- **Embedded:** `embedded:<path>[?database=<db>]` (default database: `test`)\n\n## Get a Full CLI Guide (run first)\n\n```bash\nseekdb ai-guide\n```\n\nReturns a structured JSON document with every command, parameter, workflow, safety rules, and output format. **Run this once at the start of any seekdb task** to orient yourself.\n\n## Recommended Workflows\n\n### SQL Database Exploration\n\n```\n1. seekdb schema tables              → list all tables (name, column count, row count)\n2. seekdb schema describe <table>    → get column names, types, indexes, comments\n3. seekdb table profile <table>      → data statistics (null ratios, distinct, min/max, top values)\n4. seekdb relations infer            → infer JOIN relationships between tables\n5. seekdb sql \"SELECT ... LIMIT N\"   → execute SQL with explicit LIMIT\n```\n\n### Vector Collection Workflow\n\n```\n1. seekdb collection list            → list all collections\n2. seekdb collection info <name>     → collection details and document preview\n3. seekdb query <collection> --text \"...\" → semantic/hybrid search\n4. seekdb add <collection> --data '...'  → add new documents\n```\n\n### AI Model Setup Workflow\n\n```\n1. seekdb ai model list                                    → check registered models\n2. seekdb ai model create <name> --type <type> --model <model_name>\n3. seekdb ai model endpoint create <ep> <model> --url <url> --access-key <key>\n4. seekdb ai complete \"<prompt>\" --model <name>           → test completion\n```\n\n## Command Reference\n\n### seekdb sql\n\nExecute SQL statements. Default is read-only mode.\n\n```bash\n# Read query\nseekdb sql \"SELECT id, name FROM users LIMIT 10\"\n\n# Read from file\nseekdb sql --file query.sql\n\n# Read from stdin\necho \"SELECT 1\" | seekdb sql --stdin\n\n# Include table schema in output\nseekdb sql \"SELECT * FROM orders LIMIT 5\" --with-schema\n\n# Disable large-field truncation\nseekdb sql \"SELECT content FROM articles LIMIT 1\" --no-truncate\n\n# Write operation (requires --write flag)\nseekdb sql --write \"INSERT INTO users (name) VALUES ('Alice')\"\nseekdb sql --write \"UPDATE users SET name = 'Bob' WHERE id = 1\"\nseekdb sql --write \"DELETE FROM users WHERE id = 3\"\n```\n\n**Output format:**\n\n```json\n{\"ok\": true, \"columns\": [\"id\", \"name\"], \"rows\": [{\"id\": 1, \"name\": \"Alice\"}], \"affected\": 0, \"time_ms\": 12}\n```\n\n### seekdb schema tables\n\n```bash\nseekdb schema tables\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"users\", \"columns\": 5, \"rows\": 1200}, {\"name\": \"orders\", \"columns\": 8, \"rows\": 50000}]}\n```\n\n### seekdb schema describe\n\n```bash\nseekdb schema describe orders\n```\n\n```json\n{\"ok\": true, \"data\": {\"table\": \"orders\", \"comment\": \"Order table\", \"columns\": [{\"name\": \"id\", \"type\": \"int\", \"comment\": \"Order ID\"}, {\"name\": \"status\", \"type\": \"varchar(20)\", \"comment\": \"0=pending, 1=paid\"}], \"indexes\": [\"PRIMARY(id)\", \"idx_status(status)\"]}}\n```\n\n### seekdb schema dump\n\n```bash\nseekdb schema dump\n```\n\nReturns all `CREATE TABLE` DDL statements.\n\n### seekdb table profile\n\nGenerate statistical summary of a table without returning raw data. Helps understand data distribution before writing SQL.\n\n```bash\nseekdb table profile <table>\n```\n\n```json\n{\"ok\": true, \"data\": {\n  \"table\": \"orders\",\n  \"row_count\": 50000,\n  \"columns\": [\n    {\"name\": \"id\", \"type\": \"int\", \"null_ratio\": 0, \"distinct\": 50000, \"min\": 1, \"max\": 50000},\n    {\"name\": \"user_id\", \"type\": \"int\", \"null_ratio\": 0, \"distinct\": 1200, \"min\": 1, \"max\": 1500},\n    {\"name\": \"amount\", \"type\": \"decimal(10,2)\", \"null_ratio\": 0.02, \"min\": 0.5, \"max\": 9999.99},\n    {\"name\": \"status\", \"type\": \"varchar(20)\", \"null_ratio\": 0, \"distinct\": 4, \"top_values\": [\"paid\", \"pending\", \"refunded\", \"cancelled\"]},\n    {\"name\": \"created_at\", \"type\": \"datetime\", \"null_ratio\": 0, \"min\": \"2024-01-01\", \"max\": \"2026-03-10\"}\n  ],\n  \"candidate_join_keys\": [\"user_id\"],\n  \"candidate_time_columns\": [\"created_at\"]\n}}\n```\n\n### seekdb relations infer\n\nInfer JOIN relationships between tables by analyzing column name patterns (e.g., `user_id` → `users.id`) and type compatibility.\n\n```bash\n# Infer all table relationships\nseekdb relations infer\n\n# Infer for a specific table only\nseekdb relations infer --table orders\n```\n\n```json\n{\"ok\": true, \"data\": [\n  {\"from\": \"orders.user_id\", \"to\": \"users.id\", \"confidence\": \"high\"},\n  {\"from\": \"orders.product_id\", \"to\": \"products.id\", \"confidence\": \"high\"},\n  {\"from\": \"order_items.order_id\", \"to\": \"orders.id\", \"confidence\": \"high\"}\n]}\n```\n\n### seekdb collection list\n\n```bash\nseekdb collection list\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"docs\", \"count\": 1500}, {\"name\": \"faq\", \"count\": 200}]}\n```\n\n### seekdb collection create\n\n```bash\nseekdb collection create my_docs --dimension 384 --distance cosine\nseekdb collection create my_docs -d 768 --distance l2\n```\n\nOptions: `--dimension` / `-d` (default: 384), `--distance` cosine | l2 | ip (default: cosine).\n\n### seekdb collection delete\n\n```bash\nseekdb collection delete my_docs\n```\n\n### seekdb collection info\n\n```bash\nseekdb collection info my_docs\n```\n\n```json\n{\"ok\": true, \"data\": {\"name\": \"my_docs\", \"count\": 1500, \"dimension\": 384, \"distance\": \"cosine\", \"preview\": {\"ids\": [\"doc1\", \"doc2\"], \"documents\": [\"Hello world\", \"Test doc\"], \"metadatas\": [{\"category\": \"test\"}, {}]}}}\n```\n\n`dimension` and `distance` are included when available from the collection metadata.\n\n### seekdb query\n\nSearch a collection using semantic (vector), fulltext, or hybrid mode.\n\n```bash\n# Semantic search (default)\nseekdb query my_docs --text \"how to deploy seekdb\"\n\n# Fulltext search\nseekdb query my_docs --text \"deployment guide\" --mode fulltext\n\n# Hybrid search (semantic + fulltext, RRF ranking)\nseekdb query my_docs --text \"deploy seekdb\" --mode hybrid\n\n# With metadata filter\nseekdb query my_docs --text \"performance tuning\" --where '{\"category\": \"tech\"}'\n\n# Limit results (--limit or -n, default: 10)\nseekdb query my_docs --text \"seekdb\" -n 5\n```\n\n```json\n{\"ok\": true, \"data\": {\"results\": [\n  {\"id\": \"doc1\", \"score\": 0.92, \"document\": \"How to deploy seekdb...\", \"metadata\": {\"category\": \"tech\"}},\n  {\"id\": \"doc2\", \"score\": 0.85, \"document\": \"seekdb performance tuning...\", \"metadata\": {\"category\": \"tech\"}}\n], \"count\": 2}, \"time_ms\": 35}\n```\n\n### seekdb get\n\nRetrieve documents from a collection by IDs or metadata filter.\n\n```bash\n# Get by IDs\nseekdb get my_docs --ids \"doc1,doc2\"\n\n# Get by metadata filter (--limit or -n, default: 10)\nseekdb get my_docs --where '{\"category\": \"tech\"}' -n 20\n```\n\n### seekdb add\n\nAdd data to a collection. Exactly one source is required: `--file`, `--stdin`, or `--data`. The collection is auto-created if it does not exist.\n\n```bash\n# From file (JSON array, JSONL, or CSV)\nseekdb add my_docs --file data.jsonl\nseekdb add my_docs --file articles.csv --vectorize-column content\n\n# Inline: single object or array\nseekdb add my_docs --data '{\"id\":\"1\",\"document\":\"Hello world\",\"metadata\":{\"source\":\"cli\"}}'\nseekdb add my_docs --data '[{\"id\":\"a\",\"document\":\"Doc A\"},{\"id\":\"b\",\"document\":\"Doc B\"}]'\n\n# From stdin (JSON array or JSONL; use with pipes)\necho '{\"id\":\"1\",\"document\":\"from pipe\"}' | seekdb add my_docs --stdin\nsome_script | seekdb add my_docs --stdin\n```\n\n**Record format**: Each record may have `id` (optional), `document`/`text`/`content` (text to vectorize), and any other fields become metadata. If `embedding` is present, it is used directly.\n\n### seekdb export\n\nExport collection data to a file.\n\n```bash\nseekdb export my_docs --output backup.json\nseekdb export my_docs --output backup.jsonl -n 5000\n```\n\nOptions: `--output` (required), `--limit` / `-n` (default: 10000).\n\n### seekdb ai model list\n\nList AI models registered in the database (from `DBA_OB_AI_MODELS` / DBMS_AI_SERVICE). Works in both remote and embedded mode.\n\n```bash\nseekdb ai model list\n```\n\n```json\n{\"ok\": true, \"data\": [{\"name\": \"my_llm\", \"type\": \"completion\", \"model_name\": \"THUDM/GLM-4-9B-0414\", \"model_id\": 1}]}\n```\n\n### seekdb ai model create\n\nRegister an AI model via `DBMS_AI_SERVICE.CREATE_AI_MODEL`. Create an endpoint separately to use it for completion.\n\n```bash\nseekdb ai model create my_llm --type completion --model \"THUDM/GLM-4-9B-0414\"\nseekdb ai model create my_embed --type dense_embedding --model \"BAAI/bge-m3\"\nseekdb ai model create my_rerank --type rerank --model \"<rerank_model>\"\n```\n\nTypes: `completion`, `dense_embedding`, `rerank`.\n\n### seekdb ai model delete\n\nDrop an AI model. Drop any endpoints that use it first.\n\n```bash\nseekdb ai model delete my_llm\n```\n\n### seekdb ai model endpoint create / delete\n\nCreate or drop an endpoint that binds an AI model to a URL and API key (so the database can call the model).\n\n```bash\nseekdb ai model endpoint create my_ep my_llm \\\n  --url \"https://api.siliconflow.cn/v1/chat/completions\" \\\n  --access-key \"<YOUR_API_KEY>\" \\\n  --provider siliconflow\n\nseekdb ai model endpoint delete my_ep\n```\n\n**Supported `--provider` values:**\n\n| Provider | Vendor |\n|----------|--------|\n| `siliconflow` | SiliconFlow (OpenAI-compatible) |\n| `openAI` | OpenAI |\n| `deepseek` | DeepSeek (OpenAI-compatible) |\n| `aliyun-openAI` | Alibaba Cloud (OpenAI-compatible) |\n| `aliyun-dashscope` | Alibaba Cloud DashScope |\n| `hunyuan-openAI` | Tencent Hunyuan (OpenAI-compatible) |\n\n**Common `--url` values (use the specific interface URL, not the base URL):**\n\n| Vendor | completion | embedding | rerank |\n|--------|-----------|-----------|--------|\n| SiliconFlow | `https://api.siliconflow.cn/v1/chat/completions` | `https://api.siliconflow.cn/v1/embeddings` | `https://api.siliconflow.cn/v1/rerank` |\n| DeepSeek | `https://api.deepseek.com/chat/completions` | — | — |\n| Alibaba (OpenAI) | `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` | `https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings` | — |\n| Tencent Hunyuan | `https://api.hunyuan.cloud.tencent.com/v1/chat/completions` | `https://api.hunyuan.cloud.tencent.com/v1/embeddings` | — |\n\n### seekdb ai complete\n\nRun text completion using the database `AI_COMPLETE` function. Requires a registered **completion** model and an endpoint. Supported in both remote and embedded mode.\n\n```bash\nseekdb ai complete \"Summarize this table structure\" --model my_llm\n```\n\n```json\n{\"ok\": true, \"data\": {\"model\": \"my_llm\", \"response\": \"The table has...\"}, \"time_ms\": 1200}\n```\n\n### seekdb ai-guide\n\nOutput a structured JSON guide for AI Agents containing all commands, parameters, workflow, and safety rules. Execute once to learn the full CLI.\n\n```bash\nseekdb ai-guide\n```\n\n### seekdb status\n\n```bash\nseekdb status\n```\n\nReturns CLI version, server version, database name, and connectivity.\n\n## Safety Features\n\n### Row Protection\n\nQueries without `LIMIT` are automatically probed. If result exceeds 100 rows, execution is blocked:\n\n```json\n{\"ok\": false, \"error\": {\"code\": \"LIMIT_REQUIRED\", \"message\": \"Query returns more than 100 rows. Please add LIMIT to your SQL.\"}}\n```\n\n**Action**: Add an explicit `LIMIT` clause and retry.\n\n### Write Protection\n\nWrite operations (INSERT/UPDATE/DELETE) are blocked by default:\n\n```json\n{\"ok\": false, \"error\": {\"code\": \"WRITE_NOT_ALLOWED\", \"message\": \"Write operations require --write flag.\"}}\n```\n\n**Action**: Add `--write` flag to enable write operations.\n\nEven with `--write`, these are always blocked:\n- `DELETE` / `UPDATE` without `WHERE` clause\n- `DROP` / `TRUNCATE` statements\n\n### Error Auto-Correction\n\nOn SQL errors, the CLI automatically attaches schema hints:\n\n**Column not found** → returns the table's column list and indexes:\n```json\n{\"ok\": false, \"error\": {\"code\": \"SQL_ERROR\", \"message\": \"Unknown column 'username'\"}, \"schema\": {\"table\": \"users\", \"columns\": [\"id\", \"name\", \"email\"], \"indexes\": [\"PRIMARY(id)\"]}}\n```\n\n**Table not found** → returns available table names:\n```json\n{\"ok\": false, \"error\": {\"code\": \"SQL_ERROR\", \"message\": \"Table 'user' does not exist\"}, \"schema\": {\"tables\": [\"users\", \"orders\", \"products\"]}}\n```\n\n**Action**: Use the schema info to correct the SQL and retry.\n\n### Large Field Truncation\n\nTEXT/BLOB fields are truncated to 200 characters by default, with original length noted:\n\n```json\n{\"content\": \"First 200 characters of content...(truncated, 8520 chars)\"}\n```\n\nUse `--no-truncate` to get full content when needed.\n\n### Sensitive Field Masking\n\nColumns matching sensitive patterns are automatically masked:\n\n| Pattern | Example Output |\n|---------|---------------|\n| phone/mobile/tel | `138****5678` |\n| email | `z***@gmail.com` |\n| password/secret/token | `******` |\n| id_card/ssn | `110***********1234` |\n\n## Output Formats\n\nDefault is JSON. Switch with `--format` / `-f`:\n\n```bash\nseekdb -f table sql \"SELECT id, name FROM users LIMIT 5\"\nseekdb --format csv sql \"SELECT id, name FROM users LIMIT 5\"\nseekdb -f jsonl sql \"SELECT id, name FROM users LIMIT 5\"\n```\n\nAll formats now work with non-row data (e.g., `schema tables`, `collection list`). CSV and JSONL will auto-detect list-of-dict data in the `data` field.\n\n## Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | Success |\n| 1 | Business error (SQL error, connection error, etc.) |\n| 2 | Usage error (missing arguments, invalid options) |\n\n## Operation Logging\n\nAll commands are logged to `~/.seekdb/sql-history.jsonl` (seekdb-cli SQL execution history) for audit:\n\n```json\n{\"ts\": \"2026-03-12T14:23:01\", \"command\": \"sql\", \"sql\": \"SELECT id FROM users LIMIT 10\", \"ok\": true, \"rows\": 10, \"time_ms\": 12}\n```\n\n---\n\n# Part 2: Documentation Lookup\n\nUse documentation lookup when you need to understand a seekdb concept, look up SQL syntax, find configuration details, or answer user questions about seekdb.\n\n> **Tip**: For live database state (tables, schemas, data), run CLI commands directly. For concepts, syntax, and how-to guidance, search the docs.\n\n## When to Use Documentation Lookup\n\n- Need to understand a seekdb concept (vector search, hybrid search, HNSW index, etc.)\n- Need SQL or PL syntax reference not answerable by `seekdb schema` commands\n- Need deployment, configuration, or integration guidance\n- CLI returned an error and you need to understand why from the docs\n\n## Path Resolution\n\n1. Read this SKILL.md to get its absolute path and extract the parent directory as `<skill_dir>`\n2. Catalog: `<skill_dir>references/seekdb-docs-catalog.jsonl`\n   If missing locally, load from: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`\n\n## Documentation Workflow\n\n### Step 1: Search Catalog\n\nSearch the catalog file for lines containing the query keywords. Each line is one JSON object with `path`, `description`, and `branch`.\n\n```bash\n# Example: search for \"vector search\" in the catalog\ngrep -i \"vector search\" <skill_dir>references/seekdb-docs-catalog.jsonl\n```\n\n### Step 2: Match Query\n\n- Extract `path`, `description`, and `branch` from search results\n- Select entries whose descriptions best match the query semantically\n- Consider multiple matches for comprehensive answers\n\n### Step 3: Fetch Document\n\nFetch the document from the public docs URL:\n\n- URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]`\n- `[branch]` and `[path]` come from the catalog entry (e.g., `V1.0.0`, `V1.1.0`)\n\n## Example\n\n```\nQuery: \"How to integrate with Claude Code?\"\n\n1. Search catalog for \"claude code\"\n2. Found: {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n           \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n           \"branch\": \"V1.0.0\"}\n3. Fetch: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md\n```\n\nSee [references/doc-examples.md](references/doc-examples.md) for more workflow examples.\n\n---\n\n> If the information you need cannot be found in the catalog or the CLI output, visit the official seekdb documentation at **[oceanbase.ai/docs](https://www.oceanbase.ai/docs/)** for the most complete and up-to-date reference.\n\nFile v0.1.9:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.1.9\",\n  \"publishedAt\": 1773971103241\n}\n\nFile v0.1.9:references/doc-examples.md\n\n# seekdb Documentation Examples\n\nComplete workflow examples for common seekdb documentation queries.\n\n## Example 1: Keyword Search (Normal Flow)\n\n**User Query**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → extract parent directory as <skill_dir>\n   ```\n\n2. **Search catalog**\n   Search for lines containing \"vector search\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/100.vector-search-intro.md\",\n    \"description\": \"This document provides an overview of vector search in seekdb, covering core concepts, supported vector data types, indexing methods, and search operations.\",\n    \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/600.search/300.vector-search/300.vector-similarity-search.md\",\n    \"description\": \"This document explains vector similarity search methods in seekdb...\",\n    \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch documents (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md` (and other matched paths with their `branch`)\n   - Use content to answer\n\n---\n\n## Example 2: Remote Fallback with Branch-Aware URL\n\n**User Query**: \"How to integrate seekdb with Claude Code?\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**\n   Search for lines containing \"claude code\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found:\n   ```json\n   {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n    \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n    \"branch\": \"V1.0.0\"}\n   ```\n   Note: `branch` is `V1.0.0` — this file only exists in the V1.0.0 branch (shared across versions via `showInAllVersions`).\n\n3. **Fetch document (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md`\n\n---\n\n## Example 3: Multiple Matches\n\n**User Query**: \"Tell me about seekdb indexes\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**\n   Search for lines containing \"index\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found multiple matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/200.vector-index/100.vector-index-overview.md\", \"description\": \"...vector index types...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/35.multi-model/300.char-and-text/300.full-text-index.md\", \"description\": \"...full-text indexes...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/40.create-index-in-develop.md\", \"description\": \"...creating indexes...\", \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch all relevant documents** from `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]` using each entry's `branch` and `path`.\n\n4. **Provide comprehensive answer** covering vector indexes, full-text indexes, and index creation syntax.\n\nArchive v0.1.8: 3 files, 3400 bytes\n\nFiles: references/examples.md (3110b), SKILL.md (4130b), _meta.json (125b)\n\nFile v0.1.8:SKILL.md\n\n---\nname: seekdb-docs\ndescription: seekdb database documentation lookup. Use when users ask about seekdb features, SQL syntax, vector search, hybrid search, integrations, deployment, or any seekdb-related topics. Automatically locates relevant docs via catalog-based semantic search.\n---\n\n# seekdb Documentation\n\nProvides access to ~1000 seekdb documentation entries through a catalog-based search system. **Remote-only mode**: this skill ships only the catalog; doc content is always loaded from public documentation URLs (no local `seekdb-docs/`).\n\n## Scope and behavior\n\nThis skill is **documentation-only**. It does not execute code or run scripts. The agent reads the local catalog (one JSONL file) and fetches doc content from public read-only URLs. No credentials, no installs, no subprocess calls.\n\n## Version Info\n\n<!-- AUTO-UPDATED — do not edit manually -->\n- **Documentation versions covered**: V1.0.0, V1.1.0 (merged, latest takes priority)\n- **Latest version**: V1.1.0\n<!-- END AUTO-UPDATED -->\n- The `branch` field in catalog entries indicates which Git branch hosts the file (used for remote fallback URLs only). It does NOT indicate which seekdb version the content applies to — many docs apply to all versions.\n- If the user asks about a specific seekdb version, note that this documentation set reflects the latest available content and may not distinguish version-specific differences.\n\n## Path Resolution (Do First)\n\n1. Read this SKILL.md to get its absolute path and extract the parent directory as `<skill_dir>`\n2. Catalog (required): `<skill_dir>references/seekdb-docs-catalog.jsonl`  \n   If missing locally, load from: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`\n\n## Workflow\n\n### Step 1: Search Catalog\n\n**Keyword search (preferred for most queries)**  \nSearch the catalog file for lines containing the query keywords. File: `<skill_dir>references/seekdb-docs-catalog.jsonl`. Each line is one JSON object with `path`, `description`, and `branch`. Match by keyword or meaning.\n\n**Full catalog** (when needed): same file as above, or fetch `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`. Format: JSONL — one `{\"path\": \"...\", \"description\": \"...\", \"branch\": \"...\"}` per line (~1000 entries).\n\n### Step 2: Match Query\n\n- Extract `path`, `description`, and `branch` from search results\n- Select entries whose descriptions best match the query semantically (match by meaning, not just keywords)\n- Consider multiple matches for comprehensive answers\n\n### Step 3: Read Document (remote)\n\nFetch the document from the public docs URL (no local doc files in this package):\n\n- URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]`\n- `[branch]` and `[path]` come from the catalog entry (e.g. `V1.0.0`, `V1.1.0`). Some files exist only on a specific branch.\n\n## Example\n\n```\nQuery: \"How to integrate with Claude Code?\"\n\n1. Search catalog: look for lines containing \"claude code\" in <skill_dir>references/seekdb-docs-catalog.jsonl\n2. Match: {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n           \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n           \"branch\": \"V1.0.0\"}\n3. Fetch doc: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md\n```\n\nSee [examples.md](references/examples.md) for more complete workflow examples.\n\n## Notes\n\n- **Multi-version**: Each catalog entry's `branch` field is used in the doc URL; some files exist only on a specific branch.\n\n## Category Overview\n\n- **Get Started**: Quick start, basic operations, overview\n- **Development**: Vector search, hybrid search, AI functions, MCP, multi-model\n- **Integrations**: Frameworks, model platforms, developer tools, workflows\n- **Guides**: Deployment, management, security, OBShell, performance\n- **Reference**: SQL syntax, PL, error codes, SDK APIs\n- **Tutorials**: Step-by-step scenarios\n\nFile v0.1.8:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.1.8\",\n  \"publishedAt\": 1773111769245\n}\n\nFile v0.1.8:references/examples.md\n\n# seekdb Documentation Examples\n\nComplete workflow examples for common seekdb documentation queries.\n\n## Example 1: Keyword Search (Normal Flow)\n\n**User Query**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → extract parent directory as <skill_dir>\n   ```\n\n2. **Search catalog**  \n   Search for lines containing \"vector search\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/100.vector-search-intro.md\",\n    \"description\": \"This document provides an overview of vector search in seekdb, covering core concepts, supported vector data types, indexing methods, and search operations.\",\n    \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/600.search/300.vector-search/300.vector-similarity-search.md\",\n    \"description\": \"This document explains vector similarity search methods in seekdb...\",\n    \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch documents (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md` (and other matched paths with their `branch`)\n   - Use content to answer\n\n---\n\n## Example 2: Remote Fallback with Branch-Aware URL\n\n**User Query**: \"How to integrate seekdb with Claude Code?\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**  \n   Search for lines containing \"claude code\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found:\n   ```json\n   {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n    \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\",\n    \"branch\": \"V1.0.0\"}\n   ```\n   Note: `branch` is `V1.0.0` — this file only exists in the V1.0.0 branch (shared across versions via `showInAllVersions`).\n\n3. **Fetch document (remote)**\n   - URL: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/300.developer-tools/700.claude-code.md`\n\n---\n\n## Example 3: Multiple Matches\n\n**User Query**: \"Tell me about seekdb indexes\"\n\n**Process**:\n\n1. **Resolve skill directory** → `<skill_dir>`\n\n2. **Search catalog**  \n   Search for lines containing \"index\" in `<skill_dir>references/seekdb-docs-catalog.jsonl`.\n\n   Found multiple matches:\n   ```json\n   {\"path\": \"200.develop/600.search/300.vector-search/200.vector-index/100.vector-index-overview.md\", \"description\": \"...vector index types...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/35.multi-model/300.char-and-text/300.full-text-index.md\", \"description\": \"...full-text indexes...\", \"branch\": \"V1.1.0\"}\n   {\"path\": \"200.develop/200.design-database-schema/40.create-index-in-develop.md\", \"description\": \"...creating indexes...\", \"branch\": \"V1.1.0\"}\n   ```\n\n3. **Fetch all relevant documents** from `https://raw.githubusercontent.com/oceanbase/seekdb-doc/[branch]/en-US/[path]` using each entry's `branch` and `path`.\n\n4. **Provide comprehensive answer** covering vector indexes, full-text indexes, and index creation syntax.\n\nArchive v0.1.5: 4 files, 7310 bytes\n\nFiles: references/examples.md (9718b), scripts/update_docs.sh (1917b), SKILL.md (8240b), _meta.json (125b)\n\nFile v0.1.5:SKILL.md\n\n---\nname: seekdb-docs\ndescription: seekdb database documentation lookup. Use when users ask about seekdb features, SQL syntax, vector search, hybrid search, integrations, deployment, or any seekdb-related topics. Automatically locates relevant docs via catalog-based semantic search.\nversion: \"V1.1.0\"\n---\n\n# seekdb Documentation\n\nProvides comprehensive access to seekdb database documentation through a centralized catalog system.\n\n## Quick Start\n\n1. **Locate skill directory** (see Path Resolution below)\n2. **Load full catalog** (1015 documentation entries)\n3. **Match query** to catalog entries semantically\n4. **Read document** from matched entry\n\n## Path Resolution (Critical First Step)\n\n**Problem**: Relative paths like `./seekdb-docs/` are resolved from the **current working directory**, not from SKILL.md's location. This breaks when the agent's working directory differs from the skill directory.\n\n**Solution**: Dynamically locate the skill directory before accessing docs.\n\n### Step-by-Step Resolution\n\n1. **Read SKILL.md itself** to get its absolute path:\n   ```\n   read(SKILL.md)  // or any known file in this skill directory\n   ```\n\n2. **Extract the directory** from the returned path:\n   ```\n   If read returns: /root/test-claudecode-url/.cursor/skills/seekdb/SKILL.md\n   Skill directory: /root/test-claudecode-url/.cursor/skills/seekdb/\n   ```\n\n3. **Construct paths** using this directory:\n   ```\n   Catalog path: <skill directory>references/seekdb-docs-catalog.jsonl\n   Docs base: <skill directory>seekdb-docs/\n   ```\n\n## Documentation Sources\n\n### Full Catalog\n- **Local**: `<skill directory>references/seekdb-docs-catalog.jsonl` (1015 entries, JSONL format)\n- **Remote**: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl` (fallback)\n- **Entries**: 1015 documentation files\n- **Coverage**: Complete seekdb documentation\n- **Format**: JSONL - one JSON object per line with path and description\n\n### Complete Documentation (Local-First with Remote Fallback)\n\n**Local Documentation** (if available):\n- **Base Path**: `<skill directory>seekdb-docs/`\n- **Size**: 7.4M, 952 markdown files\n- **Document Path**: Base Path + File Path\n\n**Remote Documentation** (fallback):\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/`\n- **Document URL**: Base URL + File Path\n\n**Strategy**:\n1. **Locate**: Determine `<skill directory>` using path resolution above\n2. **Load**: Load full catalog (1015 entries) - try local first, fallback to remote\n3. **Search**: Semantic search through all catalog entries\n4. **Read**: Try local docs first, fallback to remote URL if missing\n\n## Workflow\n\n### Step 0: Resolve Path (Do this first!)\n\n```bash\n# Read this file to discover its absolute path\nread(\"SKILL.md\")\n\n# Extract directory from the path\n# Example: /root/.claude/skills/seekdb/SKILL.md → /root/.claude/skills/seekdb/\n```\n\n### Step 1: Search Catalog\n\nStart with grep for keyword searches. Only load full catalog when necessary.\n\n#### Method 1: Grep Search (Preferred for 90% of queries)\n\nUse grep to search for keywords in the catalog:\n```bash\ngrep -i \"keyword\" <skill directory>references/seekdb-docs-catalog.jsonl\n```\n\n**Examples**:\n```bash\n# Find macOS deployment docs\ngrep -i \"mac\" references/seekdb-docs-catalog.jsonl\n\n# Find Docker deployment docs\ngrep -i \"docker\\|container\" references/seekdb-docs-catalog.jsonl\n\n# Find vector search docs\ngrep -i \"vector\" references/seekdb-docs-catalog.jsonl\n```\n\n#### Method 2: Load Full Catalog (Only when necessary)\n\nLoad the complete catalog only when:\n- Grep returns no results\n- Complex semantic matching is required\n- No specific keyword to search\n\n```\nLocal: <skill directory>references/seekdb-docs-catalog.jsonl\nRemote: https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl (fallback)\nFormat: JSONL (one JSON object per line)\nEntries: 1015 documentation files\n```\n\n**Strategy**:\n1. Try local catalog first: `<skill directory>references/seekdb-docs-catalog.jsonl`\n2. If local missing, fetch from remote URL above\n\n**Catalog contents**:\n- Each line: {\"path\": \"...\", \"description\": \"...\"}\n- All seekdb documentation indexed\n- Optimized for semantic search and grep queries\n\n### Step 2: Match Query\n\nAnalyze search results to identify the most relevant documents:\n\n**For grep results**:\n- Review matched lines from grep output\n- Extract `path` and `description` from each match\n- Select documents whose descriptions best match the query\n- Consider multiple matches for comprehensive answers\n\n**For full catalog**:\n- Parse each line as JSON to extract path and description\n- Perform semantic matching on description text\n- Match by meaning, not just keywords\n- Return all relevant entries for comprehensive answers\n\nNote: The catalog contains `path` and `description` fields. The `description` field contains topic and feature keywords, making it suitable for both keyword and semantic matching.\n\n### Step 3: Read Document\n\n**Local-First Strategy**:\n\n1. **Try local first**: `<skill directory>seekdb-docs/[File Path]`\n   - If file exists → read locally (fast)\n   - If file missing → proceed to step 2\n\n2. **Fallback to remote**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/[File Path]`\n   - Download from GitHub\n\n**Example**:\n```\nQuery: \"How to integrate with Claude Code?\"\n\n1. Resolve path: read(SKILL.md) → /root/.claude/skills/seekdb/SKILL.md\n   Skill directory : /root/.claude/skills/seekdb/\n\n2. Search catalog with grep:\n   grep -i \"claude code\" /root/.claude/skills/seekdb/references/seekdb-docs-catalog.jsonl\n\n3. Match query from grep results:\n   → Found: {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n             \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\"}\n   → This matches the query, select this document\n\n4. Read doc:\n   Try: /root/.claude/skills/seekdb/seekdb-docs/300.integrations/300.developer-tools/700.claude-code.md\n   If missing: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/300.integrations/300.developer-tools/700.claude-code.md\n```\n\n## Guidelines\n\n- **Always resolve path first**: Use the read-your-SKILL.md trick to get the absolute path\n- **Prefer grep for keyword queries**: Load full catalog only when grep returns nothing or semantic matching is needed\n- **Semantic matching**: Match by meaning, not just keywords\n- **Multiple matches**: Read all relevant entries for comprehensive answers\n- **Local-first with remote fallback**: Try local docs first, use remote URL if missing\n- **Optional local docs**: Run `scripts/update_docs.sh` to download full docs locally (faster)\n- **Offline capable**: With local docs present, works completely offline\n\n## Catalog Search Format\n\nThe catalog file is in **JSONL format** (one JSON object per line):\n\n```json\n{\"path\": \"path/to/document.md\", \"description\": \"Document description text\"}\n```\n\n**Searching the catalog**:\n\n- **Keyword search**: Use grep (see Step 1 examples). Each matched line contains both path and description.\n- **When grep is insufficient**: Read the full catalog, parse each line as JSON, then do semantic matching on descriptions.\n\n## Common Installation Paths\n\nThis skill may be installed at:\n- **Cursor**: `.cursor/skills/seekdb/`\n- **Claude Code**: `.claude/skills/seekdb/`\n- **Custom**: Any directory (path resolution handles this automatically)\n\n**Do not hardcode these paths**. Use the dynamic resolution method instead.\n\n## Detailed Examples\n\nSee [examples.md](references/examples.md) for complete workflow examples including:\n- Full catalog search scenarios\n- Local-first lookup scenarios\n- Remote fallback scenarios\n- Integration queries\n- Multi-turn conversations\n\n## Category Overview\n\n- **Get Started**: Quick start, basic operations, overview\n- **Development**: Vector search, hybrid search, AI functions, MCP, multi-model\n- **Integrations**: Frameworks, model platforms, developer tools, workflows\n- **Guides**: Deployment, management, security, OBShell, performance\n- **Reference**: SQL syntax, PL, error codes, SDK APIs\n- **Tutorials**: Step-by-step scenarios\n\nFile v0.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.1.5\",\n  \"publishedAt\": 1770693094500\n}\n\nFile v0.1.5:references/examples.md\n\n# seekdb Documentation Examples\n\nComplete workflow examples for common seekdb documentation queries using **local-first strategy**.\n\n## Example 1: Vector Search Query\n\n**User Query**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → /root/.claude/skills/seekdb/SKILL.md\n   Extract: skill directory = /root/.claude/skills/seekdb/\n   ```\n\n2. **Load catalog (local-first)**\n   ```\n   Try local: /root/.claude/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: Success ✅\n   ```\n\n3. **Search catalog for vector search**\n   - Parse JSONL entries\n   - Query: \"vector search\"\n   - Found matches:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/100.vector-search-intro.md\",\n      \"description\": \"This document provides an overview of vector search in seekdb, covering core concepts, supported vector data types, indexing methods, and search operations.\"}\n     {\"path\": \"200.develop/600.search/300.vector-search/300.vector-similarity-search.md\",\n      \"description\": \"This document explains vector similarity search methods in seekdb...\"}\n     ```\n\n4. **Read documents (local-first)**\n   - Try local: `/root/.claude/skills/seekdb/seekdb-docs/200.develop/600.search/300.vector-search/100.vector-search-intro.md`\n   - If missing → Remote: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md`\n\n5. **Provide answer**\n\n---\n\n## Example 2: Basic Overview Query\n\n**User Query**: \"What is seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → get absolute path\n   Extract skill directory\n   ```\n\n2. **Load catalog**\n   ```\n   Local: <skill directory>references/seekdb-docs-catalog.jsonl\n   Success ✅\n   ```\n\n3. **Search catalog for overview**\n   - Query: \"seekdb overview\" or \"what is seekdb\"\n   - Found entry:\n     ```json\n     {\"path\": \"100.get-started/10.seekdb-overview/10.seekdb-overview.md\",\n      \"description\": \"An AI-native search database that unifies relational, vector, text, JSON, and GIS data in a single engine, enabling hybrid search and in-database AI workflows with full MySQL compatibility.\"}\n     ```\n\n4. **Read document**\n   - Local: `<skill directory>seekdb-docs/100.get-started/10.seekdb-overview/10.seekdb-overview.md`\n   - Success ✅\n\n5. **Extract answer** from local docs\n\n---\n\n## Example 3: Remote Fallback Scenario\n\n**User Query**: \"How do I deploy seekdb on macOS?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → /path/to/skills/seekdb/SKILL.md\n   Skill directory = /path/to/skills/seekdb/\n   ```\n\n2. **Load catalog (local-first)**\n   ```\n   Try local: /path/to/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: File not found ❌\n   ```\n\n3. **Fallback to remote catalog**\n   ```\n   Fetch: https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: Success ✅\n   ```\n\n4. **Search catalog**\n   - Query: \"macOS\", \"deploy\", \"systemd\"\n   - Found entry:\n     ```json\n     {\"path\": \"400.guides/400.deploy/700.server-mode/100.deploy-by-systemd.md\",\n      \"description\": \"This document provides instructions for deploying and managing the seekdb database using systemd on RPM-based, DEB-based, and macOS systems, covering installation, configuration, connection, and removal procedures.\"}\n     ```\n\n5. **Read document (remote only, since local missing)**\n   ```\n   URL: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/400.guides/400.deploy/700.server-mode/100.deploy-by-systemd.md\n   Fetch and parse\n   ```\n\n6. **Provide answer**\n\n---\n\n## Example 4: Integration Query\n\n**User Query**: \"I want to integrate seekdb with Claude Code\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search catalog for integration**\n   - Query: \"Claude Code\", \"integration\", \"AI coding\"\n   - Found entry:\n     ```json\n     {\"path\": \"100.get-started/200.ai-coding/200.building-an-ai-programming-assistant-that-understands-vector-databases-with-seekdb-claude-code.md\",\n      \"description\": \"This tutorial explains how to build a vector-aware AI coding assistant by integrating the seekdb plugin with Claude Code, enabling accurate documentation retrieval and hybrid search application development in Python.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Extract integration steps** and provide code examples\n\n---\n\n## Example 5: SQL Syntax Query\n\n**User Query**: \"What's the syntax for creating a vector column?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for SQL/vector column syntax**\n   - Query: \"vector column\", \"CREATE TABLE\", \"vector type\"\n   - Found entry:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/150.vector-data-type.md\",\n      \"description\": \"This document describes seekdb's vector data types for AI vector search, covering storage of dense and sparse floating-point arrays, index creation, and hybrid search capabilities.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Provide syntax** with examples\n\n---\n\n## Example 6: Hybrid Search Query\n\n**User Query**: \"How does hybrid search work?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for hybrid search**\n   - Query: \"hybrid search\", \"combined search\"\n   - Found entry:\n     ```json\n     {\"path\": \"200.develop/600.search/500.hybrid-search.md\",\n      \"description\": \"This document describes hybrid search in seekdb, combining vector-based semantic search and full-text keyword search for more accurate results through integrated ranking.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Explain hybrid search concepts** with usage examples\n\n---\n\n## Example 7: Multiple Matches Query\n\n**User Query**: \"Tell me about seekdb indexes\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for all index types**\n   - Query: \"index\"\n   - Found multiple matches:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/200.vector-index/100.vector-index-overview.md\", \"description\": \"...vector index types...\"}\n     {\"path\": \"200.develop/200.design-database-schema/35.multi-model/300.char-and-text/300.full-text-index.md\", \"description\": \"This document details the creation and use of full-text indexes in seekdb, covering supported column types, tokenizers, and complex DML operations on indexed tables.\"}\n     {\"path\": \"200.develop/200.design-database-schema/40.create-index-in-develop.md\", \"description\": \"...creating indexes...\"}\n     ```\n\n3. **Read all relevant documents** (local)\n\n4. **Provide comprehensive answer** covering:\n   - Vector indexes (HNSW, IVF)\n   - Full-text indexes\n   - Index creation syntax\n   - Best practices\n\n---\n\n## Example 8: Python SDK Query\n\n**User Query**: \"How do I use seekdb with Python?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for Python SDK**\n   - Query: \"Python\", \"SDK\", \"pyseekdb\"\n   - Found entries:\n     ```json\n     {\"path\": \"100.get-started/50.use-seekdb-with-sdk/25.using-seekdb-in-python-sdk.md\",\n      \"description\": \"This document provides a step-by-step guide to using OceanBase's pyseekdb Python SDK for embedded seekdb operations...\"}\n     {\"path\": \"200.develop/100.connect-to-seekdb/300.sample-program/200.python/100.mysqlclient-connection-to-seekdb-sample-program.md\", \"description\": \"This document provides a sample program demonstrating how to connect to seekdb using mysqlclient in Python, including steps for creating tables, inserting data, and querying data.\"}\n     ```\n\n3. **Read documents** (local)\n\n4. **Provide Python setup** and code examples\n\n---\n\n## Example 9: Deployment Query\n\n**User Query**: \"How do I deploy seekdb in production?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search deployment guides**\n   - Query: \"production deployment\", \"install\"\n   - Found entries:\n     ```json\n     {\"path\": \"400.guides/400.deploy/50.deploy-overview.md\", \"description\": \"This documentation outlines seekdb's two deployment modes: embedded mode and server mode, and details the specific deployment methods available for each mode.\"}\n     ```\n\n3. **Read deployment guides** (local)\n\n4. **Extract deployment steps**:\n   - Prerequisites\n   - Installation methods\n   - Configuration\n   - Best practices\n\n---\n\n## Key Patterns\n\n### Path Resolution (Always First)\n1. Read SKILL.md to get absolute path\n2. Extract skill directory from path\n3. Construct catalog path: `<skill directory>references/seekdb-docs-catalog.jsonl`\n\n### Catalog Loading (Local-First)\n1. Try local catalog: `<skill directory>references/seekdb-docs-catalog.jsonl`\n2. If missing, fetch remote: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`\n3. Parse JSONL (one JSON object per line)\n\n### Searching\n- **Semantic matching**: Match query meaning to description text\n- **Multiple results**: Read all relevant entries for comprehensive answers\n- **Fields available**: `path` and `description` only\n\n### Document Reading (Local-First)\n1. Try local: `<skill directory>seekdb-docs/[File Path]`\n2. If missing, fetch remote: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/[File Path]`\n\n### Best Practices\n- ✅ **Always resolve path first** - Never hardcode paths\n- ✅ **Local-first for speed** - Try local before remote\n- ✅ **Semantic over keyword** - Understand meaning, not just match words\n- ✅ **Read multiple sources** - Comprehensive answers from all relevant docs\n- ✅ **Parse JSONL correctly** - Each line is a valid JSON object with `path` and `description`\n\nArchive v0.1.4: 4 files, 7173 bytes\n\nFiles: references/examples.md (9092b), scripts/update_docs.sh (1917b), SKILL.md (8522b), _meta.json (125b)\n\nFile v0.1.4:SKILL.md\n\n---\nname: seekdb-docs\ndescription: seekdb database documentation lookup. Use when users ask about seekdb features, SQL syntax, vector search, hybrid search, integrations, deployment, or any seekdb-related topics. Automatically locates relevant docs via catalog-based semantic search.\nversion: \"V1.1.0\"\n---\n\n# seekdb Documentation\n\nProvides comprehensive access to seekdb database documentation through a centralized catalog system.\n\n## Quick Start\n\n1. **Locate skill directory** (see Path Resolution below)\n2. **Load full catalog** (1015 documentation entries)\n3. **Match query** to catalog entries semantically\n4. **Read document** from matched entry\n\n## Path Resolution (Critical First Step)\n\n**Problem**: Relative paths like `./seekdb-docs/` are resolved from the **current working directory**, not from SKILL.md's location. This breaks when the agent's working directory differs from the skill directory.\n\n**Solution**: Dynamically locate the skill directory before accessing docs.\n\n### Step-by-Step Resolution\n\n1. **Read SKILL.md itself** to get its absolute path:\n   ```\n   read(SKILL.md)  // or any known file in this skill directory\n   ```\n\n2. **Extract the directory** from the returned path:\n   ```\n   If read returns: /root/test-claudecode-url/.cursor/skills/seekdb/SKILL.md\n   Skill directory =: /root/test-claudecode-url/.cursor/skills/seekdb/\n   ```\n\n3. **Construct paths** using this directory:\n   ```\n   Catalog path =: <skill directory>references/seekdb-docs-catalog.jsonl\n   Docs base =: <skill directory>seekdb-docs/\n   ```\n\n## Documentation Sources\n\n### Full Catalog\n- **Local**: `<skill directory>references/seekdb-docs-catalog.jsonl` (1015 entries, JSONL format)\n- **Remote**: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl` (fallback)\n- **Entries**: 1015 documentation files\n- **Coverage**: Complete seekdb documentation\n- **Format**: JSONL - one JSON object per line with path and description\n\n### Complete Documentation (Local-First with Remote Fallback)\n\n**Local Documentation** (if available):\n- **Base Path**: `<skill directory>seekdb-docs/`\n- **Size**: 7.4M, 952 markdown files\n- **Document Path**: Base Path + File Path\n\n**Remote Documentation** (fallback):\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/`\n- **Document URL**: Base URL + File Path\n\n**Strategy**:\n1. **Locate**: Determine `<skill directory>` using path resolution above\n2. **Load**: Load full catalog (1015 entries) - try local first, fallback to remote\n3. **Search**: Semantic search through all catalog entries\n4. **Read**: Try local docs first, fallback to remote URL if missing\n\n## Workflow\n\n### Step 0: Resolve Path (Do this first!)\n\n```bash\n# Read this file to discover its absolute path\nread(\"SKILL.md\")\n\n# Extract directory from the path\n# Example: /root/.claude/skills/seekdb/SKILL.md → /root/.claude/skills/seekdb/\n```\n\n### Step 1: Search Catalog\n\nStart with grep for keyword searches. Only load full catalog when necessary.\n\n#### Method 1: Grep Search (Preferred for 90% of queries)\n\nUse grep to search for keywords in the catalog:\n```bash\ngrep -i \"keyword\" <skill directory>references/seekdb-docs-catalog.jsonl\n```\n\n**Examples**:\n```bash\n# Find macOS deployment docs\ngrep -i \"mac\" references/seekdb-docs-catalog.jsonl\n\n# Find Docker deployment docs\ngrep -i \"docker\\|container\" references/seekdb-docs-catalog.jsonl\n\n# Find vector search docs\ngrep -i \"vector\" references/seekdb-docs-catalog.jsonl\n```\n\n#### Method 2: Load Full Catalog (Only when necessary)\n\nLoad the complete catalog only when:\n- Grep returns no results\n- Complex semantic matching is required\n- No specific keyword to search\n\n```\nLocal: <skill directory>references/seekdb-docs-catalog.jsonl\nRemote: https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl (fallback)\nFormat: JSONL (one JSON object per line)\nEntries: 1015 documentation files\n```\n\n**Strategy**:\n1. Try local catalog first: `<skill directory>references/seekdb-docs-catalog.jsonl`\n2. If local missing, fetch from remote URL above\n\n**Catalog contents**:\n- Each line: {\"path\": \"...\", \"description\": \"...\"}\n- All seekdb documentation indexed\n- Optimized for semantic search and grep queries\n\n### Step 2: Match Query\n\nAnalyze search results to identify the most relevant documents:\n\n**For grep results**:\n- Review matched lines from grep output\n- Extract `path` and `description` from each match\n- Select documents whose descriptions best match the query\n- Consider multiple matches for comprehensive answers\n\n**For full catalog**:\n- Parse each line as JSON to extract path and description\n- Perform semantic matching on description text\n- Match by meaning, not just keywords\n- Return all relevant entries for comprehensive answers\n\nNote: The catalog contains `path` and `description` fields. The `description` field contains topic and feature keywords, making it suitable for both keyword and semantic matching.\n\n### Step 3: Read Document\n\n**Local-First Strategy**:\n\n1. **Try local first**: `<skill directory>seekdb-docs/[File Path]`\n   - If file exists → read locally (fast)\n   - If file missing → proceed to step 2\n\n2. **Fallback to remote**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/[File Path]`\n   - Download from GitHub\n\n**Example**:\n```\nQuery: \"How to integrate with Claude Code?\"\n\n1. Resolve path: read(SKILL.md) → /root/.claude/skills/seekdb/SKILL.md\n   Skill directory =: /root/.claude/skills/seekdb/\n\n2. Search catalog with grep:\n   grep -i \"claude code\" references/seekdb-docs-catalog.jsonl\n\n3. Match query from grep results:\n   → Found: {\"path\": \"300.integrations/300.developer-tools/700.claude-code.md\",\n             \"description\": \"This guide explains how to use the seekdb plugin with Claude Code...\"}\n   → This matches the query, select this document\n\n4. Read doc:\n   Try: /root/.claude/skills/seekdb/seekdb-docs/300.integrations/300.developer-tools/700.claude-code.md\n   If missing: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/300.integrations/300.developer-tools/700.claude-code.md\n```\n\n## Guidelines\n\n- **Always resolve path first**: Use the read-your-SKILL.md trick to get the absolute path\n- **Always use full catalog**: Load complete catalog for comprehensive search (1015 entries)\n- **Semantic matching**: Match by meaning, not just keywords\n- **Multiple matches**: Read all relevant entries for comprehensive answers\n- **Local-first with remote fallback**: Try local docs first, use remote URL if missing\n- **Optional local docs**: Run `scripts/update_docs.sh` to download full docs locally (faster)\n- **Offline capable**: With local docs present, works completely offline\n\n## Catalog Search Format\n\nThe catalog file is in **JSONL format** (one JSON object per line):\n\n```json\n{\"path\": \"path/to/document.md\", \"description\": \"Document description text\"}\n```\n\n**Searching the catalog**:\n\n**Preferred method** - Read the full catalog:\n- Read the entire catalog file\n- Parse each line as JSON to extract path and description\n- Perform semantic matching on description text\n\n**Quick keyword search** - Use grep:\n```bash\ngrep -i \"keyword\" references/seekdb-docs-catalog.jsonl\n```\nEach matched line contains both path and description together.\n\n**Why JSONL is better**:\n- ✅ One line per document - grep shows complete information\n- ✅ Structured data - easy to parse with JSON tools\n- ✅ No special flags needed - works naturally with grep, jq, etc.\n\n## Common Installation Paths\n\nThis skill may be installed at:\n- **Cursor**: `.cursor/skills/seekdb/`\n- **Claude Code**: `.claude/skills/seekdb/`\n- **Custom**: Any directory (path resolution handles this automatically)\n\n**Do not hardcode these paths**. Use the dynamic resolution method instead.\n\n## Detailed Examples\n\nSee [examples.md](references/examples.md) for complete workflow examples including:\n- Full catalog search scenarios\n- Local-first lookup scenarios\n- Remote fallback scenarios\n- Integration queries\n- Multi-turn conversations\n\n## Category Overview\n\n- **Get Started**: Quick start, basic operations, overview\n- **Development**: Vector search, hybrid search, AI functions, MCP, multi-model\n- **Integrations**: Frameworks, model platforms, developer tools, workflows\n- **Guides**: Deployment, management, security, OBShell, performance\n- **Reference**: SQL syntax, PL, error codes, SDK APIs\n- **Tutorials**: Step-by-step scenarios\n\nFile v0.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.1.4\",\n  \"publishedAt\": 1770691707470\n}\n\nFile v0.1.4:references/examples.md\n\n# seekdb Documentation Examples\n\nComplete workflow examples for common seekdb documentation queries using **local-first strategy**.\n\n## Example 1: Vector Search Query\n\n**User Query**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → /root/.claude/skills/seekdb/SKILL.md\n   Extract: skill directory = /root/.claude/skills/seekdb/\n   ```\n\n2. **Load catalog (local-first)**\n   ```\n   Try local: /root/.claude/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: Success ✅\n   ```\n\n3. **Search catalog for vector search**\n   - Parse JSONL entries\n   - Query: \"vector search\"\n   - Found matches:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/100.vector-search-intro.md\",\n      \"description\": \"This document provides an overview of vector search in seekdb, covering core concepts, supported vector data types, indexing methods, and search operations.\"}\n     {\"path\": \"200.develop/600.search/300.vector-search/300.vector-similarity-search.md\",\n      \"description\": \"This document explains vector similarity search methods in seekdb...\"}\n     ```\n\n4. **Read documents (local-first)**\n   - Try local: `/root/.claude/skills/seekdb/seekdb-docs/200.develop/600.search/300.vector-search/100.vector-search-intro.md`\n   - If missing → Remote: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md`\n\n5. **Provide answer**\n\n---\n\n## Example 2: Basic Overview Query\n\n**User Query**: \"What is seekdb?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → get absolute path\n   Extract skill directory\n   ```\n\n2. **Load catalog**\n   ```\n   Local: <skill directory>references/seekdb-docs-catalog.jsonl\n   Success ✅\n   ```\n\n3. **Search catalog for overview**\n   - Query: \"seekdb overview\" or \"what is seekdb\"\n   - Found entry:\n     ```json\n     {\"path\": \"100.get-started/10.seekdb-overview/10.seekdb-overview.md\",\n      \"description\": \"An AI-native search database that unifies relational, vector, text, JSON, and GIS data in a single engine, enabling hybrid search and in-database AI workflows with full MySQL compatibility.\"}\n     ```\n\n4. **Read document**\n   - Local: `<skill directory>seekdb-docs/100.get-started/10.seekdb-overview/10.seekdb-overview.md`\n   - Success ✅\n\n5. **Extract answer** from local docs\n\n---\n\n## Example 3: Remote Fallback Scenario\n\n**User Query**: \"How do I deploy seekdb on macOS?\"\n\n**Process**:\n\n1. **Resolve skill directory**\n   ```\n   Read SKILL.md → /path/to/skills/seekdb/SKILL.md\n   Skill directory = /path/to/skills/seekdb/\n   ```\n\n2. **Load catalog (local-first)**\n   ```\n   Try local: /path/to/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: File not found ❌\n   ```\n\n3. **Fallback to remote catalog**\n   ```\n   Fetch: https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl\n   Result: Success ✅\n   ```\n\n4. **Search catalog**\n   - Query: \"macOS\", \"deploy\", \"systemd\"\n   - Found entry:\n     ```json\n     {\"path\": \"400.guides/200.deployment/500.deploy-with-systemd.md\",\n      \"description\": \"This document provides instructions for deploying and managing the seekdb database using systemd on RPM-based, DEB-based, and macOS systems...\"}\n     ```\n\n5. **Read document (remote only, since local missing)**\n   ```\n   URL: https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/400.guides/200.deployment/500.deploy-with-systemd.md\n   Fetch and parse\n   ```\n\n6. **Provide answer**\n\n---\n\n## Example 4: Integration Query\n\n**User Query**: \"I want to integrate seekdb with Claude Code\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search catalog for integration**\n   - Query: \"Claude Code\", \"integration\", \"AI coding\"\n   - Found entry:\n     ```json\n     {\"path\": \"100.get-started/200.ai-coding/200.building-an-ai-programming-assistant-that-understands-vector-databases-with-seekdb-claude-code.md\",\n      \"description\": \"This tutorial explains how to build a vector-aware AI coding assistant by integrating the seekdb plugin with Claude Code, enabling accurate documentation retrieval and hybrid search application development in Python.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Extract integration steps** and provide code examples\n\n---\n\n## Example 5: SQL Syntax Query\n\n**User Query**: \"What's the syntax for creating a vector column?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for SQL/vector column syntax**\n   - Query: \"vector column\", \"CREATE TABLE\", \"vector type\"\n   - Found entry:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/150.vector-data-type.md\",\n      \"description\": \"This document describes seekdb's vector data types for AI vector search, covering storage of dense and sparse floating-point arrays, index creation, and hybrid search capabilities.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Provide syntax** with examples\n\n---\n\n## Example 6: Hybrid Search Query\n\n**User Query**: \"How does hybrid search work?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for hybrid search**\n   - Query: \"hybrid search\", \"combined search\"\n   - Found entry:\n     ```json\n     {\"path\": \"200.develop/600.search/500.hybrid-search.md\",\n      \"description\": \"This document describes hybrid search in seekdb, combining vector-based semantic search and full-text keyword search for more accurate results through integrated ranking.\"}\n     ```\n\n3. **Read document** (local)\n\n4. **Explain hybrid search concepts** with usage examples\n\n---\n\n## Example 7: Multiple Matches Query\n\n**User Query**: \"Tell me about seekdb indexes\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for all index types**\n   - Query: \"index\"\n   - Found multiple matches:\n     ```json\n     {\"path\": \"200.develop/600.search/300.vector-search/200.vector-index/100.vector-index-overview.md\", \"description\": \"...vector index types...\"}\n     {\"path\": \"200.develop/300.read-and-write-data/200.read-data/300.full-text-index.md\", \"description\": \"...full-text indexes...\"}\n     {\"path\": \"200.develop/200.design-database-schema/40.create-index-in-develop.md\", \"description\": \"...creating indexes...\"}\n     ```\n\n3. **Read all relevant documents** (local)\n\n4. **Provide comprehensive answer** covering:\n   - Vector indexes (HNSW, IVF)\n   - Full-text indexes\n   - Index creation syntax\n   - Best practices\n\n---\n\n## Example 8: Python SDK Query\n\n**User Query**: \"How do I use seekdb with Python?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search for Python SDK**\n   - Query: \"Python\", \"SDK\", \"pyseekdb\"\n   - Found entries:\n     ```json\n     {\"path\": \"100.get-started/50.use-seekdb-with-sdk/25.using-seekdb-in-python-sdk.md\",\n      \"description\": \"This document provides a step-by-step guide to using OceanBase's pyseekdb Python SDK for embedded seekdb operations...\"}\n     {\"path\": \"200.develop/100.connect-to-seekdb/300.sample-program/200.python/...\", \"description\": \"...\"}\n     ```\n\n3. **Read documents** (local)\n\n4. **Provide Python setup** and code examples\n\n---\n\n## Example 9: Deployment Query\n\n**User Query**: \"How do I deploy seekdb in production?\"\n\n**Process**:\n\n1. **Resolve path & load catalog** (local success)\n\n2. **Search deployment guides**\n   - Query: \"production deployment\", \"install\"\n   - Found entries:\n     ```json\n     {\"path\": \"400.guides/200.deployment/...\", \"description\": \"...deployment instructions...\"}\n     ```\n\n3. **Read deployment guides** (local)\n\n4. **Extract deployment steps**:\n   - Prerequisites\n   - Installation methods\n   - Configuration\n   - Best practices\n\n---\n\n## Key Patterns\n\n### Path Resolution (Always First)\n1. Read SKILL.md to get absolute path\n2. Extract skill directory from path\n3. Construct catalog path: `<skill directory>references/seekdb-docs-catalog.jsonl`\n\n### Catalog Loading (Local-First)\n1. Try local catalog: `<skill directory>references/seekdb-docs-catalog.jsonl`\n2. If missing, fetch remote: `https://raw.githubusercontent.com/oceanbase/seekdb-ecology-plugins/main/agent-skills/skills/seekdb/references/seekdb-docs-catalog.jsonl`\n3. Parse JSONL (one JSON object per line)\n\n### Searching\n- **Semantic matching**: Match query meaning to description text\n- **Multiple results**: Read all relevant entries for comprehensive answers\n- **Fields available**: `path` and `description` only\n\n### Document Reading (Local-First)\n1. Try local: `<skill directory>seekdb-docs/[File Path]`\n2. If missing, fetch remote: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.1.0/en-US/[File Path]`\n\n### Best Practices\n- ✅ **Always resolve path first** - Never hardcode paths\n- ✅ **Local-first for speed** - Try local before remote\n- ✅ **Semantic over keyword** - Understand meaning, not just match words\n- ✅ **Read multiple sources** - Comprehensive answers from all relevant docs\n- ✅ **Parse JSONL correctly** - Each line is a valid JSON object with `path` and `description`\n\nArchive v0.0.6: 2 files, 2143 bytes\n\nFiles: SKILL.md (5440b), _meta.json (125b)\n\nFile v0.0.6:SKILL.md\n\n---\nname: seekdb-docs\ndescription: Provides documentation and knowledge for seekdb database. When users ask about seekdb topics, automatically locate relevant documentation through the catalog file (from github).\n---\n\n# seekdb Documentation Skill\n\nThis skill provides comprehensive documentation for the seekdb database. When users ask about seekdb-related topics, you should use the documentation catalog to locate and read the relevant documentation.\n\n## Documentation Access Strategy\n\nThis skill supports **remote-only** documentation access: the catalog and document files are fetched from GitHub.\n\n### Remote Documentation URLs\n\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/`\n- **Catalog File**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n- **Full Document URL**: Base URL + File Path (from catalog)\n\n## How to Use This Skill\n\nWhen a user asks about seekdb, follow these steps:\n\n### Step 1: Access the Documentation Catalog\n\n1. Fetch the remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. If the request fails (network error, timeout, etc.), inform the user that the documentation is currently unavailable and suggest retrying later\n\nThe catalog contains:\n- All documentation entries organized by category\n- File paths for each documentation file\n- Descriptions of what each document covers\n- Quick reference section for common topics\n\n### Step 2: Match the Query to Documentation\n\nSearch through the catalog for entries whose **Description** matches the user's query. Look for:\n- Exact keyword matches (e.g., \"jina\" → \"Jina model integration\")\n- Related terms (e.g., \"integration\" → entries under \"Model Platform Integrations\", \"Framework Integrations\", etc.)\n- Category matches (e.g., \"vector search\" → entries under \"Vector Search\" section)\n\nThe catalog is organized into these main categories:\n- **Get Started**: Quick start tutorials and basic operations\n- **Development Guide**: Vector search, hybrid search, AI functions, MCP server, multi-model data\n- **Integrations**: Frameworks, model platforms, developer tools, workflows, MCP clients\n- **Guides**: Deployment, management, security, OBShell, performance testing\n- **Reference**: SQL syntax, PL, error codes, SDK APIs\n- **Tutorials**: Step-by-step tutorials and scenarios\n\n### Step 3: Read the Documentation File\n\nOnce you've identified the matching entry, construct the full URL and fetch the document:\n\n- Full URL = `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/` + File Path\n- Example: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/600.search/300.vector-search/300.vector-similarity-search.md`\n\nFetch the document content from this URL to answer the user.\n\n## Examples\n\n### Example 1: Remote Access\n**User**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entries under \"Vector Search\" section\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/600.search/300.vector-search/100.vector-search-intro.md`\n\n### Example 2: Overview Query\n**User**: \"What is seekdb?\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entry under \"Seekdb Overview\"\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/100.get-started/10.overview/10.seekdb-overview.md`\n\n### Example 3: Subsequent Query in Same Conversation\n**User**: \"Now tell me about hybrid search\"\n(Previous query in this conversation successfully used remote)\n\n**Process**:\n1. Already have the catalog from previous fetch\n2. Find entries under \"Hybrid Search\" section from the catalog\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/600.search/500.hybrid-search.md`\n\n### Example 4: Integration Query\n**User**: \"I want to integrate seekdb with jina\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entry under \"Model Platform Integrations\": \"Guide to integrating seekdb vector search with Jina AI...\"\n3. Extract file path: `300.integrations/200.model-platforms/100.jina.md`\n4. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/200.model-platforms/100.jina.md`\n\n## Guidelines\n\n- **Use remote (GitHub) only** — fetch catalog and documents from the remote URLs; there is no local mode\n- **On fetch failure**, inform the user that docs are temporarily unavailable and suggest retrying or checking network\n- **Match descriptions semantically** - don't just look for exact keyword matches\n- **Use the Quick Reference section** at the bottom of the catalog for common topics\n- **If multiple entries match**, fetch all relevant files to provide comprehensive answers\n\n## URL Reference\n\n### Remote\n- **Catalog**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/`\n\nFile v0.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.0.6\",\n  \"publishedAt\": 1770101934203\n}\n\nArchive v0.0.5: 2 files, 2146 bytes\n\nFiles: SKILL.md (5465b), _meta.json (125b)\n\nFile v0.0.5:SKILL.md\n\n---\nname: seekdb-docs\ndescription: Provides documentation and knowledge for seekdb database. When users ask about seekdb topics, automatically locate relevant documentation through the catalog file (from github).\n---\n\n# seekdb Documentation Skill\n\nThis skill provides comprehensive documentation for the seekdb database. When users ask about seekdb-related topics, you should use the documentation catalog to locate and read the relevant documentation.\n\n## Documentation Access Strategy\n\nThis skill supports **remote-only** documentation access: the catalog and document files are fetched from GitHub.\n\n### Remote Documentation URLs\n\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/`\n- **Catalog File**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n- **Full Document URL**: Base URL + File Path (from catalog)\n\n## How to Use This Skill\n\nWhen a user asks about seekdb, follow these steps:\n\n### Step 1: Access the Documentation Catalog\n\n1. Fetch the remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. If the request fails (network error, timeout, etc.), inform the user that the documentation is currently unavailable and suggest retrying later\n\nThe catalog contains:\n- All documentation entries organized by category\n- File paths for each documentation file\n- Descriptions of what each document covers\n- Quick reference section for common topics\n\n### Step 2: Match the Query to Documentation\n\nSearch through the catalog for entries whose **Description** matches the user's query. Look for:\n- Exact keyword matches (e.g., \"jina\" → \"Jina model integration\")\n- Related terms (e.g., \"integration\" → entries under \"Model Platform Integrations\", \"Framework Integrations\", etc.)\n- Category matches (e.g., \"vector search\" → entries under \"Vector Search\" section)\n\nThe catalog is organized into these main categories:\n- **Get Started**: Quick start tutorials and basic operations\n- **Development Guide**: Vector search, hybrid search, AI functions, MCP server, multi-model data\n- **Integrations**: Frameworks, model platforms, developer tools, workflows, MCP clients\n- **Guides**: Deployment, management, security, OBShell, performance testing\n- **Reference**: SQL syntax, PL, error codes, SDK APIs\n- **Tutorials**: Step-by-step tutorials and scenarios\n\n### Step 3: Read the Documentation File\n\nOnce you've identified the matching entry, construct the full URL and fetch the document:\n\n- Full URL = `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/` + File Path\n- Example: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/100.vector-search/300.vector-similarity-search.md`\n\nFetch the document content from this URL to answer the user.\n\n## Examples\n\n### Example 1: Remote Access\n**User**: \"How do I use vector search in seekdb?\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entries under \"Vector Search\" section\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/100.vector-search/100.vector-search-overview/100.vector-search-intro.md`\n\n### Example 2: Overview Query\n**User**: \"What is seekdb?\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entry under \"Seekdb Overview\"\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/100.get-started/10.overview/10.seekdb-overview.md`\n\n### Example 3: Subsequent Query in Same Conversation\n**User**: \"Now tell me about hybrid search\"\n(Previous query in this conversation successfully used remote)\n\n**Process**:\n1. Already have the catalog from previous fetch\n2. Find entries under \"Hybrid Search\" section from the catalog\n3. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/200.develop/200.hybrid-search/100.vector-index-hybrid-search.md`\n\n### Example 4: Integration Query\n**User**: \"I want to integrate seekdb with jina\"\n\n**Process**:\n1. Fetch remote catalog: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n2. Find entry under \"Model Platform Integrations\": \"Guide to integrating seekdb vector search with Jina AI...\"\n3. Extract file path: `300.integrations/200.model-platforms/100.jina.md`\n4. Fetch remote doc: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/300.integrations/200.model-platforms/100.jina.md`\n\n## Guidelines\n\n- **Use remote (GitHub) only** — fetch catalog and documents from the remote URLs; there is no local mode\n- **On fetch failure**, inform the user that docs are temporarily unavailable and suggest retrying or checking network\n- **Match descriptions semantically** - don't just look for exact keyword matches\n- **Use the Quick Reference section** at the bottom of the catalog for common topics\n- **If multiple entries match**, fetch all relevant files to provide comprehensive answers\n\n## URL Reference\n\n### Remote\n- **Catalog**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/450.reference/1600.seekdb-docs-catalog.md`\n- **Base URL**: `https://raw.githubusercontent.com/oceanbase/seekdb-doc/V1.0.0/en-US/`\n\nFile v0.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.0.5\",\n  \"publishedAt\": 1770088003130\n}\n\nArchive v0.0.4: 954 files, 1719978 bytes\n\nFiles: seekdb-docs/10.doc-overview.md (6032b), seekdb-docs/100.get-started/10.overview/10.seekdb-overview.md (9592b), seekdb-docs/100.get-started/100.use-seekdb-with-sql/10.deploy-seekdb-testing-environment.md (18969b), seekdb-docs/100.get-started/200.ai-coding/100.building-personal-knowledge-base-through-ai-dialogue-using-seekdb-mcp-server.md (7144b), seekdb-docs/100.get-started/200.ai-coding/200.building-an-ai-programming-assistant-that-understands-vector-databases-with-seekdb-claude-code.md (6853b), seekdb-docs/100.get-started/200.ai-coding/300.making-cursor-ai-instantly-understand-seekdb-a-guide-to-using-the-seekdb-cursor-extension.md (6081b), seekdb-docs/100.get-started/50.use-seekdb-with-sdk/25.using-seekdb-in-python-sdk.md (12663b), seekdb-docs/200.develop/10.overview/10.develop-overview.md (2004b), seekdb-docs/200.develop/100.connect-to-seekdb/100.connection-methods-overview.md (8337b), seekdb-docs/200.develop/100.connect-to-seekdb/200.use-client-connect-seekdb/100.connect-to-seekdb-by-using-a-mysql-client.md (3445b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/100.connect-to-seekdb-through-spring-boot.md (37652b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/200.connect-to-seekdb-through-spring-batch.md (78410b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/300.connect-to-seekdb-through-spring-jdbc.md (24406b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/400.connect-to-seekdb-through-springjpa.md (47665b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/500.connect-to-seekdb-through-hibernate.md (46116b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/600.connect-to-seekdb-through-mybatis.md (68891b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/100.java/700.connect-to-seekdb-through-mysql-connectorJ.md (22611b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/100.mysqlclient-connection-to-seekdb-sample-program.md (21654b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/200.pymysql-connection-to-seekdb-sample-program.md (19755b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/300.mysql-connector-py-connection-to-seekdb-sample-program.md (5637b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/400.sqlalchemy-connection-to-seekdb-sample-program.md (6180b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/500.django-connection-to-seekdb-sample-program.md (6905b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/200.python/600.peewee-connection-to-seekdb-sample-program.md (5742b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/300.c/100.connect-to-the-seekdb-through-mysql-connector-c.md (6012b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/400.go/100.go-sql-driver-mysql-connection-seekdb-sample-program.md (16032b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/400.go/200.gorm-connection-seekdb-example-program.md (21290b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/500.php/100.ext-driver-connects-to-seekdb.md (4049b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/500.php/200.use-mysqli-driver-to-connect-seekdb.md (3606b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/500.php/300.use-pdo-driver-to-connect-seekdb.md (4937b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/600.rust/100.rust-connection-to-seekdb-sample-program.md (5883b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/600.rust/200.sea-connection-seekdb-program.md (7234b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/700.ruby/100.activerecord-connection-to-seekdb-sample-program.md (3821b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/700.ruby/200.mysql2-connection-to-seekdb-sample-program.md (4094b), seekdb-docs/200.develop/100.connect-to-seekdb/300.sample-program/700.ruby/300.sequel-connection-to-seekdb-sample-program.md (4279b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/100.database-connection-pool-configuration.md (7397b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/200.tomcat-connection-pool-configuration-example.md (54048b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/300.c3p0-connection-pool-configuration-example.md (40454b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/400.proxool-connection-pool-configuration-example.md (43945b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/500.hikaricp-connection-pool-configuration-example.md (35020b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/600.dbcp-connection-pool-example.md (36785b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/700.commonpool-configuration-example.md (42684b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/800.druid-connection-pool-configuration-example.md (44301b), seekdb-docs/200.develop/100.connect-to-seekdb/400.use-the-database-connection-pool/900.jdbc-connection-pool-configuration-example.md (3900b), seekdb-docs/200.develop/200.design-database-schema/10.database-schema-overview.md (9874b), seekdb-docs/200.develop/200.design-database-schema/20.create-database-in-develop.md (4459b), seekdb-docs/200.develop/200.design-database-schema/30.create-table-in-develop.md (30294b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/100.json-formatted-data-types.md (1242b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/200.create-a-json-value.md (11083b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/300.querying-and-modifying-json-values.md (5326b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/400.json-formatted-data-type-conversion.md (2695b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/500.json-partial-update.md (10670b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/100.json/600.json-semi-struct.md (7923b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/200.spatial/100.spatial-data-type-overview.md (810b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/200.spatial/200.spacial-reference-system.md (2641b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/200.spatial/300.create-spatial-columns.md (1417b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/200.spatial/400.create-spatial-indexes.md (2454b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/200.spatial/500.spatial-data-format.md (8675b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/300.char-and-text/100.char-and-varchar.md (2568b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/300.char-and-text/200.text.md (3290b), seekdb-docs/200.develop/200.design-database-schema/35.multi-model/300.char-and-text/300.full-text-index.md (19302b), seekdb-docs/200.develop/200.design-database-schema/40.create-index-in-develop.md (26507b), seekdb-docs/200.develop/200.design-database-schema/450.select-vector-index.md (22792b), seekdb-docs/200.develop/300.read-and-write-data/100.write-data/100.insert-data-in-develop.md (23043b), seekdb-docs/200.develop/300.read-and-write-data/100.write-data/200.update-data-in-develop.md (7506b), seekdb-docs/200.develop/300.read-and-write-data/100.write-data/300.delete-data-in-develop.md (4379b), seekdb-docs/200.develop/300.read-and-write-data/100.write-data/400.replace-data-in-develop.md (7653b), seekdb-docs/200.develop/300.read-and-write-data/100.write-data/500.batch-data-generation-in-develop.md (12035b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/100.single-table-query.md (34143b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/100.inner-join.md (4789b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/200.full-join.md (4002b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/300.left-join.md (5520b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/400.right-join.md (4647b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/500.subquery.md (9466b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/200.multi-table-join-query/600.lateral-derived-tables.md (6039b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/100.use-arithmetic-operators-in-queries.md (2399b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/1000.lock-query-results-select-for-update.md (7321b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/1100.query-results-lock-in-share.md (3044b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/200.use-numeric-functions-in-queries.md (1591b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/300.use-a-string-connector-in-a-query.md (1758b), seekdb-docs/200.develop/300.read-and-write-data/200.read-data/300.use-operators-and-functions-in-query/400.use-string-functions-in-queries.md (2603b) (+554 more)\n\nFile v0.0.4:seekdb-docs/10.doc-overview.md\n\n# seekdb documentation\nimport DocsCard from '@components/global/DocsCard';\nimport DocsCards from '@components/global/DocsCards';\n\nThe seekdb documentation provides a wide range of resources, including step-by-step getting started guides, examples of building AI applications with live demos, SDK and API code samples, comprehensive feature overviews, and detailed user manuals—all designed to help you quickly get up to speed and make the most of seekdb.\n\n## Get started\n\nA minimalist API design that keeps you focused on building your AI\n\n<DocsCards>\n  <DocsCard header=\"Use embedded seekdb\" href=\"../../100.get-started/50.use-seekdb-with-sdk/25.using-seekdb-in-python-sdk.md\">\n    <p>A lightweight and easy-to-use deployment mode recommended for both testing and production, delivering stable and efficient service.</p>\n  </DocsCard>\n\n<DocsCard header=\"Use server mode seekdb\" href=\"../../100.get-started/100.use-seekdb-with-sql/10.deploy-seekdb-testing-environment\">\n  <p>Recommended deployment mode for testing and production environments. Lightweight and easy to use, ideal for stable and efficient service provision.</p>\n</DocsCard>\n</DocsCards>\n\nimport Tabs from '@theme/Tabs';\nimport TabItem from '@theme/TabItem';\n\n<Tabs>\n  <TabItem value=\"embedded\" label=\"Embedded mode\" default>\n    1. Set up\n\n      ```python\n      import pyseekdb\n\n      client = pyseekdb.Client()\n\n      # create a knowledge base\n      collection = client.get_or_create_collection(\"product_database\")\n\n      ```\n\n    2. Insert\n\n      ```python\n      # Add product documents\n      collection.upsert(\n          documents=[\n              \"Laptop Pro with 16GB RAM, 512GB SSD, and high-speed processor\",\n              \"Gaming Laptop with 32GB RAM, 1TB SSD, and high-performance graphics\",\n              \"Business Ultrabook with 8GB RAM, 256GB SSD, and long battery life\",\n              \"Tablet with 6GB RAM, 128GB storage, and 10-inch display\"\n          ],\n          metadatas=[\n              {\"category\": \"laptop\", \"ram\": 16, \"storage\": 512, \"price\": 12000, \"type\": \"professional\"},\n              {\"category\": \"laptop\", \"ram\": 32, \"storage\": 1000, \"price\": 25000, \"type\": \"gaming\"},\n              {\"category\": \"laptop\", \"ram\": 8, \"storage\": 256, \"price\": 9000, \"type\": \"business\"},\n              {\"category\": \"tablet\", \"ram\": 6, \"storage\": 128, \"price\": 6000, \"type\": \"consumer\"}\n          ],\n          ids=[\"1\", \"2\", \"3\", \"4\"]\n      )\n\n      print(\"Product database built\\n\")\n\n      ```\n\n    3. Query\n\n      ```python\n      # Hybrid search for high-performance laptops\n      print(\"Hybrid Search: High-performance laptops for professional work\")\n      results = collection.query(\n          query_texts=[\"powerful computer for professional work\"],  # Vector search\n          where={                                                                       # Relational filter\n              \"category\": \"laptop\",\n              \"ram\": {\"$gte\": 16}\n          },\n          where_document={\"$contains\": \"RAM\"},                            # Full-text search\n          n_results=2\n      )\n\n      print(\"\\nResults:\")\n      for i, (doc, metadata) in enumerate(zip(results['documents'][0], results['metadatas'][0])):\n          print(f\"  {i+1}. {doc}\")\n\n      ```\n  </TabItem>\n  <TabItem value=\"server\" label=\"Server mode\">\n    1. Set up\n\n      ```python\n      import pyseekdb\n\n      client = pyseekdb.Client(\n              host = \"127.0.0.1\",          # server host\n              port = 2881,                  # server port (default: 2881)\n              )\n\n      # create a knowledge base\n      collection = client.get_or_create_collection(\"product_database\")\n\n      ```\n\n    2. Insert\n\n      ```python\n      # Add product documents\n      collection.upsert(\n          documents=[\n              \"Laptop Pro with 16GB RAM, 512GB SSD, and high-speed processor\",\n              \"Gaming Laptop with 32GB RAM, 1TB SSD, and high-performance graphics\",\n              \"Business Ultrabook with 8GB RAM, 256GB SSD, and long battery life\",\n              \"Tablet with 6GB RAM, 128GB storage, and 10-inch display\"\n          ],\n          metadatas=[\n              {\"category\": \"laptop\", \"ram\": 16, \"storage\": 512, \"price\": 12000, \"type\": \"professional\"},\n              {\"category\": \"laptop\", \"ram\": 32, \"storage\": 1000, \"price\": 25000, \"type\": \"gaming\"},\n              {\"category\": \"laptop\", \"ram\": 8, \"storage\": 256, \"price\": 9000, \"type\": \"business\"},\n              {\"category\": \"tablet\", \"ram\": 6, \"storage\": 128, \"price\": 6000, \"type\": \"consumer\"}\n          ],\n          ids=[\"1\", \"2\", \"3\", \"4\"]\n      )\n\n      print(\"Product database built\\n\")\n      ```\n\n    3. Query\n\n      ```python\n      # Hybrid search for high-performance laptops\n      print(\"Hybrid Search: High-performance laptops for professional work\")\n      results = collection.query(\n          query_texts=[\"powerful computer for professional work\"],  # Vector search\n          where={                                                                       # Relational filter\n              \"category\": \"laptop\",\n              \"ram\": {\"$gte\": 16}\n          },\n          where_document={\"$contains\": \"RAM\"},                           # Full-text search\n          n_results=2\n      )\n\n      print(\"\\nResults:\")\n      for i, (doc, metadata) in enumerate(zip(results['documents'][0], results['metadatas'][0])):\n          print(f\"  {i+1}. {doc}\")\n      ```\n  </TabItem>\n</Tabs>\n\n## Start building\n\n<DocsCards>\n  <DocsCard header=\"pyseekdb (Python SDK)\" href=\"../../450.reference/900.sdk/10.pyseekdb-sdk/10.pyseekdb-sdk-get-started.md\">\n    <p>Overview and examples for using the seekdb Python SDK and API.</p>\n  </DocsCard>\n\n<DocsCard header=\"Integrations\" href=\"../../300.integrations/100.model/100.jina.md\">\n  <p>See how seekdb connects with third-party platforms, with practical examples.</p>\n</DocsCard>\n\n<DocsCard header=\"Tutorials\" href=\"../../500.tutorials/100.create-ai-app-demo/100.build-kb-in-seekdb.md\">\n  <p>Step-by-step guides to using seekdb's AI features and building AI apps.</p>\n</DocsCard>\n</DocsCards>\n\nFile v0.0.4:seekdb-docs/100.get-started/10.overview/10.seekdb-overview.md\n\n---\n\nslug: /seekdb-overview\n---\n\n# What is seekdb\n\nOceanBase seekdb (referred to as seekdb) is an AI-native search database. It unifies relational, vector, text, JSON and GIS in a single engine, enabling hybrid search and in-database AI workflows.\n\n## Capability matrix\n\n| Feature | OceanBase seekdb | OceanBase Database | MySQL 9.0 | Chroma | Elasticsearch | DuckDB | Milvus | PostgreSQL and pgvector |\n|------------------|---------|----------------|------------------------|--------|--------|--------|---|---|\n| **Embedded database**   | Supported      | Not supported         | Not supported (Removed in 8.0) | Supported     | Not supported    | Supported | Supported | Not supported |\n| **Standalone database**     | Supported      | Supported          | Supported                    | Supported     | Supported     | Supported | Supported | Supported |\n| **Distributed database**   | Not supported     | Supported          | Not supported                  | Not supported    | Supported  | Not supported | Supported | Not supported |\n| **MySQL compatibility**    | Supported      | Supported           | Supported                   | Not supported    | Not supported    | Supported | Not supported | Not supported |\n| **Vector search**      | Supported       | Supported           | Not supported                 | Supported      | Supported    | Supported | Supported | Supported |\n| **Full-text search**      | Supported       | Supported           | Supported                  | Not supported      | Supported     | Supported | Partially supported | Supported |\n| **Hybrid search**      | Supported       | Supported           | Not supported                 | Not supported     | Supported  | Not supported | Supported | Partially supported |\n| **Online Transaction Processing (OLTP)**         | Supported       | Supported           | Supported                  | Not supported      | Not supported  | Not supported | Not supported | Supported |\n| **Online Analytical Processing (OLAP)**         | Supported       | Supported           | Not supported                 | Not supported     | Partially supported   | Supported | Not supported | Supported |\n| **Open-source license**       | Apache 2.0 | MulanPubL 2.0 | GPL 2.0              | Apache 2.0 | AGPLv3 + SSPLv1 + Elastic 2.0 | MIT | Apache 2.0 | PostgreSQL License |\n\n\n## Product architecture\n\n![seekdb](https://obportal.s3.ap-southeast-1.amazonaws.com/doc/img/SeekDB-EN/seekdb-arch.png)\n\n* Deployment modes: seekdb supports both embedded and client/server deployments. The embedded mode allows seamless integration into Python applications, making it especially convenient for individual developers.\n\n* Multi-model data and indexing layer: seekdb accommodates a wide range of data types, including vectors, text, JSON, and GIS, and provides robust indexing capabilities. It features HNSW/IVF vector indexes and quantization algorithms, full-text indexes based on BM25 relevance that support various tokenizers and query modes, hybrid indexes for mixed search scenarios, JSON indexes for metadata searches, as well as primary, secondary, and GIS indexes.\n\n* Multi-model compute layer for hybrid workloads: seekdb enables hybrid searches across vectors, full-text, and scalar conditions, enhancing the accuracy of query results in Retrieval-Augmented Generation (RAG) scenarios. It offers built-in AI function capabilities for real-time inference within the database. seekdb supports full ACID transactions and multi-version concurrency control (MVCC), along with a query optimizer designed for hybrid workloads, an adaptive execution engine, and flexible PL UDF functions to address diverse business needs.\n\n* Unified application interface: seekdb is compatible with native MySQL drivers and provides a unified SQL-based query language for multi-model data. Additionally, it offers developer-friendly SDKs for vector databases and hybrid search. seekdb","readmeExcerpt":"Skill: Seekdb Owner: oceanbase Summary: Overview skill for OceanBase SeekDB. Routes to specialized skills for installing/deploying SeekDB on a target machine and for building SeekDB from source. Us... Tags: latest:0.3.0 Version history: v0.3.0 | 2026-06-11T02:33:30.056Z | user Add seekdb installation feature v0.2.0 | 2026-03-20T02:44:57.327Z | auto - Summary: Documentation improved and hybrid/semantic query triggers ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"/build-seekdb [platform] [action] [options]"},{"language":"bash","snippet":"REPO_ROOT=$(pwd)"},{"language":"bash","snippet":"# 1. Determine the .deps file for the target platform\n#    Android:          $REPO_ROOT/deps/init/oceanbase.android.arm64.deps\n#    macOS arm64 ≥15:  $REPO_ROOT/deps/init/oceanbase.macos15.arm64.deps\n#    macOS arm64 13-14:$REPO_ROOT/deps/init/oceanbase.macos13.arm64.deps\n#    Linux el8 x86_64: $REPO_ROOT/deps/init/oceanbase.el8.x86_64.deps\n#    Linux el9 x86_64: $REPO_ROOT/deps/init/oceanbase.el9.x86_64.deps\n#\n# 2. Compute its MD5\n#    macOS: MD5=$(md5 -r <DEPS_FILE> | cut -d' ' -f1)\n#    Linux: MD5=$(md5sum <DEPS_FILE>  | cut -d' ' -f1)\n#\n# 3. Check the marker\nDEPS_MARKER=\"$REPO_ROOT/deps/3rd/$MD5\""},{"language":"bash","snippet":"uname -s   # Darwin = macOS, Linux = Linux, MINGW64/MSYS/CYGWIN = Windows Git Bash\nuname -m   # x86_64, aarch64, arm64"},{"language":"bash","snippet":"command -v brew    # macOS Homebrew\ncommand -v docker  # Docker\ncommand -v yum     # RPM-based Linux\ncommand -v apt     # DEB-based Linux\ncommand -v pip     # Python pip\npython3 --version  # Python version"},{"language":"bash","snippet":"export PATH=\"${ANDROID_HOME:-$HOME/Library/Android/sdk}/platform-tools:$PATH\"\nexport ANDROID_NDK_HOME=\"${ANDROID_NDK_HOME:-${ANDROID_HOME:-$HOME/Library/Android/sdk}/ndk/27.3.13750724}\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"build/SKILL.md","content":"---\nname: seekdb-build\ndescription: Build SeekDB binaries and installation packages from source for one or more target platforms (macOS, Linux, Android cross-compile, Windows native, Python wheel). Handles argument parsing, target-aware dependency initialization (MD5 marker check), and dispatches to platform-specific build scripts. Use when the user says \"build seekdb\", \"compile seekdb\", \"make a release rpm/deb/tgz/apk/installer\", \"/build-seekdb\", or asks how to produce a SeekDB binary or package.\ncompatibility: macOS arm64 (≥13), Linux x86_64 (el8/el9), Android arm64-v8a (cross-compile on macOS/Linux), Windows x86_64 (native only).\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# Build SeekDB\n\nBuild SeekDB binaries and/or installation packages for one or more target platforms.\n\n## Usage\n\n```\n/build-seekdb [platform] [action] [options]\n```\n\n**platform** (default: auto-detect current OS):\n- `mac`     — macOS arm64/x86_64\n- `linux`   — Linux x86_64\n- `android` — Android arm64-v8a (cross-compile on macOS/Linux host)\n- `windows` — Windows x86_64 (native PowerShell environment only)\n\n**action** — what to do (default: `compile release`):\n\n| Platform | Compile actions | Package actions |\n|----------|----------------|-----------------|\n| `mac`    | `release` `debug` `perf` | `tgz` |\n| `linux`  | `release` `debug` `perf` | `rpm` `deb` |\n| `android`| `release` `debug` | `apk` |\n| `windows`| `release` `debug` | `installer` |\n\n- Compile actions build the seekdb binary + `libseekdb_embed_c`.\n- Package actions build an installable artifact (implies a release compile first if needed).\n- Multiple actions can be requested in one invocation, e.g. `release tgz` or `debug rpm`.\n\n**options**:\n- `--init`        — Force re-initialize dependencies before building\n- `--jobs N`      — Parallel jobs (default: all CPU cores)\n- `--version V`   — Version string for package naming (e.g. `4.3.5`, default: `beta`)\n- `--release R`   — Release/date string for package naming (e.g. `20260407`, default: today's date)\n- `--with-jni`    — (Android only) Also build `libseekdb_embed.so` JNI library\n- `--install`     — (Android only) `adb install` the APK after building\n\n---\n\n## Instructions\n\nWhen the user runs `/build-seekdb`, follow these steps.\n\n### Step 1 — Parse arguments\n\n- Extract platform, action(s), and options from `$ARGUMENTS`.\n- If no platform given, detect via `uname -s`: Darwin → mac, Linux → linux.\n- If no action given, default to `release` (compile only).\n- Default version: `beta`. Default release: today's date as `YYYYMMDD`.\n- Default jobs: detect with `sysctl -n hw.ncpu` (mac/android) or `nproc` (linux).\n- Reject invalid combinations (e.g. `deb` on mac, `tgz` on linux, `perf` on android/windows)\n  and tell the user which package/compile types are supported for their platform.\n\n---\n\n### Step 2 — Determine repo root\n\n```bash\nREPO_ROOT=$(pwd)\n```\nUse `$REPO_ROOT` for all subsequent commands. Do NOT hardcode any absolute path.\n\n**Key rule — package actions vs compile-on"},{"path":"install/SKILL.md","content":"---\nname: seekdb-install\ndescription: Install / deploy a single SeekDB instance on the user's machine. Auto-detects OS and architecture, picks the right install method (Homebrew, Docker, yum, apt, Windows MSI, or pip embedded), and drives the install end-to-end — running commands, checking output, and diagnosing errors. Use when the user says \"install seekdb\", \"deploy seekdb\", \"set up seekdb locally\", \"try seekdb on my machine\", \"use seekdb from Python\", or asks how to get seekdb running on a specific OS.\ncompatibility: Linux x86_64/aarch64, macOS, Windows 10/11/Server 2022+. Embedded pip mode is Linux only.\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# Install SeekDB Locally\n\nYou are an **installation assistant** for OceanBase SeekDB. Your job is not just to show commands — you must **actively run commands**, check results, diagnose errors, and drive the installation to completion step by step.\n\nCore principles:\n- Run each command with the Bash tool and verify the output before proceeding.\n- If a step fails, diagnose the cause and fix it before moving on. Do not just show the fix — execute it.\n- Confirm each major milestone with the user before continuing to the next phase.\n- Keep the user informed of what you are doing and why.\n\n---\n\n## Phase 1 — Detect environment\n\nRun the following to understand the user's machine. Do this automatically without asking.\n\n```bash\nuname -s   # Darwin = macOS, Linux = Linux, MINGW64/MSYS/CYGWIN = Windows Git Bash\nuname -m   # x86_64, aarch64, arm64\n```\n\nAlso probe which package managers / runtimes are available:\n\n```bash\ncommand -v brew    # macOS Homebrew\ncommand -v docker  # Docker\ncommand -v yum     # RPM-based Linux\ncommand -v apt     # DEB-based Linux\ncommand -v pip     # Python pip\npython3 --version  # Python version\n```\n\nFrom the results, infer the best installation options and present them to the user. For example:\n- macOS detected → offer Homebrew and Docker\n- Linux x86_64 with yum → offer yum/systemd and Docker\n- Linux aarch64 with apt → offer apt/systemd and Docker\n- Python 3.8+ found → also offer embedded pip mode\n- Windows detected (MINGW64/MSYS/win32) → offer MSI installer\n\n---\n\n## Phase 2 — Confirm deployment mode\n\nAsk the user which mode they want (if not already clear from context):\n\n> \"I can see you're on [OS]. Which mode would you like?\n> - **Server mode** (Homebrew / Docker / yum / apt / Windows MSI) — runs a standalone server process\n> - **Embedded mode** (pip install) — runs inside your Python process, no server needed (Linux only)\"\n>\n> If on Windows, directly proceed to the Windows MSI flow (MSI is the only supported method).\n\n---\n\n## Phase 3 — Execute the chosen method\n\nPick the matching reference and follow it end-to-end. Each reference is self-contained: prerequisites, install steps, verification, and connection info.\n\n| Method | Reference | Platforms |\n|--------|-----------|-----------|\n| Embedded (pip) | [references/pip-embedded.md](references/pip-embedded.md) | Linux x86_64, L"},{"path":"SKILL.md","content":"---\nname: seekdb\ndescription: Overview skill for OceanBase SeekDB. Routes to specialized skills for installing/deploying SeekDB on a target machine and for building SeekDB from source. Use as a starting point when the user mentions seekdb, pyseekdb, \"install seekdb\", \"build seekdb\", or wants a lightweight standalone OceanBase-compatible database. For obd-managed seekdb deployments and primary-standby HA, see the separate oceanbase-deploy/seekdb skill instead.\ncompatibility: Standalone product skill. Install and build flows have their own platform requirements — see sub-skills.\nmetadata:\n  author: oceanbase\n  version: \"1.0\"\n---\n\n# SeekDB\n\nSeekDB is a lightweight OceanBase-compatible database that can run as a standalone server (Homebrew / Docker / yum / apt / Windows MSI) or as an embedded Python module (`pyseekdb`).\n\nThis is the entry point. Use the specialized skills below for specific tasks.\n\n## Skill Index\n\n| Skill | Use When |\n|-------|----------|\n| [install](install/SKILL.md) | Install / deploy SeekDB on a target machine — Homebrew, Docker, yum, apt, Windows MSI, or pip embedded. |\n| [build](build/SKILL.md) | Build SeekDB binaries and packages from source — macOS, Linux, Android (cross), Windows, Python wheel. |\n\n## When to Use Which Skill\n\n- \"Install seekdb on my Mac / Linux / Windows\" → [install](install/SKILL.md)\n- \"I want to use seekdb from Python\" → [install](install/SKILL.md), pip embedded mode\n- \"Build seekdb from source\" / \"make a release rpm/deb/tgz/apk/installer\" → [build](build/SKILL.md)\n- \"Deploy seekdb primary-standby with obd, do switchover/failover\" → use the separate **`oceanbase-deploy/seekdb`** skill (lives under [`../oceanbase-deploy/seekdb/SKILL.md`](../oceanbase-deploy/seekdb/SKILL.md)). That skill is for obd-managed clusters; this skill is for the SeekDB product itself.\n\n## Default Ports\n\n| Port | Purpose |\n|------|---------|\n| 2881 | MySQL protocol |\n| 2886 | HTTP / obshell |\n\n## References\n\n- Product documentation: <https://www.oceanbase.ai/docs/seekdb-overview/>\n- Software download center: <https://mirrors.oceanbase.com/oceanbase/community/stable/>"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ajpckchvqztcwpmckyc9fxd80c3d5\",\n  \"slug\": \"seekdb\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1781145210056\n}"},{"path":"build/references/build-android.md","content":"# Build SeekDB — Android (cross-compile from macOS or Linux host)\n\n**Supported targets:** Android arm64-v8a.\n\nBefore building, complete the dependency check from [build/SKILL.md → Step 2](../SKILL.md#step-2--determine-repo-root) — compile actions require the matching MD5 deps marker (`android.arm64`) to exist.\n\n---\n\n## Environment prerequisites\n\n```bash\nexport PATH=\"${ANDROID_HOME:-$HOME/Library/Android/sdk}/platform-tools:$PATH\"\nexport ANDROID_NDK_HOME=\"${ANDROID_NDK_HOME:-${ANDROID_HOME:-$HOME/Library/Android/sdk}/ndk/27.3.13750724}\"\n```\n\n---\n\n## Compile modes\n\n| Action | `build.sh` command | Build dir |\n|--------|--------------------|-----------|\n| `release` | `./build.sh release --android --make -j<N>` | `build_android_release/` |\n| `debug`   | `./build.sh debug --android --make -j<N>`   | `build_android_debug/`   |\n\nArtifacts (inside the build dir):\n- `src/observer/seekdb`\n- `src/observer/embed/libseekdb_embed_c.so`\n- `src/observer/embed/embedded_client`\n\n**Incremental make** (fastest for day-to-day iteration; skip dep check — deps already resolved):\n```bash\ncd $REPO_ROOT/build_android_release && make -j<N>\n```\n\n---\n\n## Package — `apk`\n\n`seekdb-apk-build.sh --build` runs `build.sh clean + release --android --init + make`\ninternally — skip the Step 2 init check when using `--build`:\n```bash\ncd $REPO_ROOT\n./package/apk/seekdb-apk-build.sh --build --apk [--with-jni] [--install] \\\n    seekdb <VERSION> <RELEASE>\n# Artifact: package/apk/seekdb-<VERSION>-<RELEASE>.apk\n#\n# --build    : clean + android init + make\n# --apk      : gradlew assembleDebug, rename and move APK\n# --with-jni : also build/sync libseekdb_embed.so\n# --install  : adb install -r onto connected device/emulator\n```\n\nScript requirements:\n- `ANDROID_NDK_HOME` set (default: `$HOME/Library/Android/sdk/ndk/27.3.13750724`)\n- JDK 17+ for Gradle (auto-detected from Android Studio JBR if not set)\n- `curl` or `wget` (downloads `gradle-wrapper.jar` on first run)\n\n---\n\n## Manual APK steps (alternative to `seekdb-apk-build.sh`)\n\n```bash\n# Step A: binary already built by compile step above\n\n# Step B: strip + copy into jniLibs\n_prebuilt=$(ls $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/ | head -1)\nNDK_STRIP=\"$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$_prebuilt/bin/llvm-strip\"\n$NDK_STRIP -o $REPO_ROOT/build_android_app/app/src/main/jniLibs/arm64-v8a/libseekdb_embed_c.so \\\n              $REPO_ROOT/build_android_release/src/observer/embed/libseekdb_embed_c.so\n$NDK_STRIP -o $REPO_ROOT/build_android_app/app/src/main/jniLibs/arm64-v8a/libembedded_client.so \\\n              $REPO_ROOT/build_android_release/src/observer/embed/embedded_client\n\n# Step C: build APK\necho \"sdk.dir=${ANDROID_HOME:-$HOME/Library/Android/sdk}\" > $REPO_ROOT/build_android_app/local.properties\ncd $REPO_ROOT/build_android_app && ./gradlew assembleDebug\n# Artifact: build_android_app/app/build/outputs/apk/debug/app-debug.apk\n```"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2081,"uniquenessScore":39,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T06:25:05.446Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:54:49.054Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}