Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 8% | 0% |
| case-05 | ✓→✗ | ▼ Worse | -50% | 0% |
You 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.
Core principles:
Run the following to understand the user's machine. Do this automatically without asking.
bashuname -s # Darwin = macOS, Linux = Linux, MINGW64/MSYS/CYGWIN = Windows Git Bash uname -m # x86_64, aarch64, arm64
Also probe which package managers / runtimes are available:
bashcommand -v brew # macOS Homebrew command -v docker # Docker command -v yum # RPM-based Linux command -v apt # DEB-based Linux command -v pip # Python pip python3 --version # Python version
Also check whether the default SQL port is already occupied and whether an existing OceanBase observer is installed or running:
bashcommand -v observer || true ss -ltnp 2>/dev/null | grep ':2881 ' || lsof -nP -iTCP:2881 -sTCP:LISTEN 2>/dev/null || true
Use the following recommendation order and tell the user what was selected and why:
yum/dnf or apt, recommend server mode with the native package manager and systemd. Use it even when Docker is absent; do not ask the user to install Docker.Default to server mode for general requests such as "install SeekDB", local SQL access, shared access, persistent service operation, or an environment where the user's application language is unknown.
Select the recommended mode automatically using Phase 1. State the recommendation in one sentence, then proceed. For example:
> "This is a supported RPM-based Linux host, so I recommend native yum + systemd server mode. It provides a persistent local service and does not require Docker; I will use that mode."
If the user explicitly asks for Python/in-process usage, select embedded mode on supported Linux. If the user explicitly asks for Docker, select Docker. Do not override explicit intent.
Pick the matching reference and follow it end-to-end. Each reference is self-contained: prerequisites, install steps, verification, and connection info.
| Method | Reference | Platforms | |--------|-----------|-----------| | Embedded (pip) | references/pip-embedded.md | Linux x86_64, Linux aarch64 | | macOS Homebrew | references/macos-homebrew.md | macOS 15+ | | Docker | references/docker.md | Linux, macOS | | Linux yum (RPM) | references/linux-yum.md | Anolis 8/23, CentOS 7/9, openEuler 22/24 | | Linux apt (DEB) | references/linux-apt.md | Debian 11/12/13, Ubuntu 20.04/22.04/24.04 | | Windows MSI | references/windows-msi.md | Windows 10 (22H2+), 11, Server 2022+ |
Installation is not complete until the selected mode is running and its connectivity check passes. A failed systemctl start, non-running process/container, or failed SQL probe is a diagnosis trigger, not a stopping point.
For systemd server mode:
systemctl status seekdb, journalctl -u seekdb, the SeekDB logs, memory/disk availability, and listening ports.observer—leave the existing process unchanged. Select the first free port from 2882 through 2890.port= entry in /etc/seekdb/seekdb.cnf, restart SeekDB, and repeat both service and SQL verification using that port.Use this port-selection pattern when needed:
bashSEEKDB_PORT="" for candidate in $(seq 2882 2890); do if ! ss -ltn 2>/dev/null | awk '{print $4}' | grep -Eq "(^|:)$candidate$"; then SEEKDB_PORT="$candidate" break fi done test -n "$SEEKDB_PORT" || { echo "No free SeekDB port in 2882-2890" >&2; exit 1; } sudo sed -i.bak -E "s/^[[:space:]]*port=.*/port=$SEEKDB_PORT/" /etc/seekdb/seekdb.cnf grep -Eq '^[[:space:]]*port=' /etc/seekdb/seekdb.cnf || echo "port=$SEEKDB_PORT" | sudo tee -a /etc/seekdb/seekdb.cnf >/dev/null sudo systemctl restart seekdb sudo systemctl is-active --quiet seekdb mysql -h 127.0.0.1 -u root -P "$SEEKDB_PORT" -A -Dtest -e "SELECT 1;"
Report the actual selected port in the final connection information; never continue showing 2881 after switching ports.
| Method | Linux x86_64 | Linux aarch64 | macOS | Windows x86_64 | |-------------------|:---:|:---:|:---:|:---:| | pip (embedded) | ✅ | ✅ | ❌ | ❌ | | yum / systemd | ✅ | ✅ | ❌ | ❌ | | apt / systemd | ✅ | ✅ | ❌ | ❌ | | Docker | ✅ | ✅ | ✅ | ❌ | | Homebrew | ❌ | ❌ | ✅ | ❌ | | MSI / Windows Svc | ❌ | ❌ | ❌ | ✅ |
Other measured skills in the registry, with their headline benchmark lift.