| name | surrealdb |
| description | Expert SurrealDB 3 architect and developer skill. SurrealQL mastery, multi-model data modeling (document, graph, vector, time-series, geospatial), schema design, security, deployment, performance tuning, SDK integration (JS, Python, Go, Rust), Surrealism WASM extensions, and full ecosystem (Surrealist, Surreal-Sync, SurrealFS). Universal skill for 30+ AI agents. |
Generated note: shared plugin assets for this package live at the plugin root. Common local references were rewritten when they appeared in backticks or markdown links.
SurrealDB 3 Skill
Expert-level SurrealDB 3 architecture, development, and operations. Covers SurrealQL, multi-model data modeling, graph traversal, vector search, security, deployment, performance tuning, SDK integration, and the full SurrealDB ecosystem.
For AI Agents
Get a full capabilities manifest, decision trees, and output contracts:
uv run {baseDir}/scripts/onboard.py --agent
See AGENTS.md for the complete structured briefing.
| Command | What It Does |
|---|
uv run {baseDir}/scripts/doctor.py | Health check: verify surreal CLI, connectivity, versions |
uv run {baseDir}/scripts/doctor.py --check | Quick pass/fail check (exit code only) |
uv run {baseDir}/scripts/schema.py introspect | Dump full schema of a running SurrealDB instance |
uv run {baseDir}/scripts/schema.py tables | List all tables with field counts and indexes |
uv run {baseDir}/scripts/onboard.py --agent | JSON capabilities manifest for agent integration |
Prerequisites
- surreal CLI --
brew install surrealdb/tap/surreal (macOS) or see install docs
- Python 3.10+ -- Required for skill scripts
- uv --
brew install uv (macOS) or pip install uv or see uv docs
Optional:
- Docker -- For containerized SurrealDB instances (
docker run surrealdb/surrealdb:v3)
- SDK of choice -- JavaScript, Python, Go, Rust, Java, .NET, C, PHP, or Dart
Security note: This skill's documentation references package manager installs
(brew, pip, cargo, npm, Docker) as the recommended install method. If you
encounter curl | sh examples in the rules files, prefer your OS package
manager or download-and-review workflow instead.
Quick Start
Credential warning: Examples below use root/root for local development
only. Never use default credentials against production or shared instances.
Create scoped, least-privilege users for non-local environments.
surreal start memory --user root --pass root --bind 127.0.0.1:8000
surreal start rocksdb://data/mydb.db --user root --pass root
surreal start surrealkv://data/mydb --user root --pass root
surreal sql --endpoint http://localhost:8000 --user root --pass root --ns test --db test
surreal import --endpoint http://localhost:8000 --user root --pass root --ns test --db test schema.surql
surreal export --endpoint http://localhost:8000 --user root --pass root --ns test --db test backup.surql
surreal version
uv run {baseDir}/scripts/doctor.py
Environment Variables
| Variable | Description | Default |
|---|
SURREAL_ENDPOINT | SurrealDB server URL | http://localhost:8000 |
SURREAL_USER | Root or namespace username | root |
SURREAL_PASS | Root or namespace password | root |
SURREAL_NS | Default namespace | test |
SURREAL_DB | Default database | test |
These map directly to the surreal sql CLI flags (--endpoint, --user, --pass, --ns, --db) and are recognized by official SurrealDB SDKs.
Core Capabilities
SurrealQL Mastery
Full coverage of the SurrealQL query language: CREATE, SELECT, UPDATE, UPSERT, DELETE, RELATE, INSERT, LIVE SELECT, DEFINE, REMOVE, INFO, subqueries, transactions, futures, and all built-in functions (array, crypto, duration, geo, math, meta, object, parse, rand, string, time, type, vector).
See: ../../rules/surrealql.md
Multi-Model Data Modeling
Design schemas that leverage SurrealDB's multi-model capabilities -- document collections, graph edges, relational references, vector embeddings, time-series data, and geospatial coordinates -- all in a single database with a single query language.
See: ../../rules/data-modeling.md
Graph Queries
First-class graph traversal without JOINs. RELATE creates typed edges between records. Traverse with -> (outgoing), <- (incoming), and <-> (bidirectional) operators. Filter, aggregate, and recurse at any depth.
See: ../../rules/graph-queries.md
Vector Search
Built-in vector similarity search using HNSW and brute-force indexes. Define vector fields, create indexes with configurable distance metrics (cosine, euclidean, manhattan, minkowski), and query with vector::similarity::* functions. Build RAG pipelines and semantic search directly in SurrealQL.
See: ../../rules/vector-search.md
Security and Permissions
Row-level security via DEFINE TABLE ... PERMISSIONS, namespace/database/record-level access control, DEFINE ACCESS for JWT/token-based auth, DEFINE USER for system users, and $auth/$session runtime variables for permission predicates.
See: ../../rules/security.md
Deployment and Operations
Single-binary deployment, Docker, Kubernetes (Helm charts), storage engine selection (memory, RocksDB, SurrealKV, TiKV for distributed), backup/restore, monitoring, and production hardening.
See: ../../rules/deployment.md
Performance Tuning
Index strategies (unique, search, vector HNSW, MTree), query optimization with EXPLAIN, connection pooling, storage engine trade-offs, batch operations, and resource limits.
See: ../../rules/performance.md
SDK Integration
Official SDKs for JavaScript/TypeScript (Node.js, Deno, Bun, browser), Python, Go, Rust, Java, .NET, C, PHP, and Dart. Connection protocols (HTTP, WebSocket), authentication flows, live query subscriptions, and typed record handling.
See: ../../rules/sdks.md
Surrealism WASM Extensions
New in SurrealDB 3: extend the database with custom functions, analyzers, and logic written in Rust and compiled to WASM. Define, deploy, and manage Surrealism modules.
See: ../../rules/surrealism.md
Ecosystem Tools
- Surrealist -- Official IDE and GUI for SurrealDB (schema designer, query editor, graph visualizer)
- Surreal-Sync -- Change Data Capture (CDC) for migrations from other databases
- SurrealFS -- AI agent filesystem built on SurrealDB
- SurrealML -- Machine learning model management and inference within SurrealDB
See: ../../rules/surrealist.md, ../../rules/surreal-sync.md, ../../rules/surrealfs.md
Doctor / Health Check
uv run {baseDir}/scripts/doctor.py
uv run {baseDir}/scripts/doctor.py --check
uv run {baseDir}/scripts/doctor.py --endpoint http://my-server:8000
The doctor script verifies: surreal CLI installed and on PATH, server reachable, authentication succeeds, namespace and database exist, version compatibility, and storage engine status.
Schema Introspection
uv run {baseDir}/scripts/schema.py introspect
uv run {baseDir}/scripts/schema.py tables
uv run {baseDir}/scripts/schema.py table <table_name>
uv run {baseDir}/scripts/schema.py export --format surql
uv run {baseDir}/scripts/schema.py export --format json
Introspection uses INFO FOR DB, INFO FOR TABLE, and INFO FOR NS to reconstruct the full schema.
Rules Reference
| Rule File | Coverage |
|---|
../../rules/surrealql.md | SurrealQL syntax, statements, functions, operators, idioms |
../../rules/data-modeling.md | Schema design, record IDs, field types, relations, normalization |
../../rules/graph-queries.md | RELATE, graph traversal operators, path expressions, recursive queries |
../../rules/vector-search.md | Vector fields, HNSW/brute-force indexes, similarity functions, RAG patterns |
../../rules/security.md | Permissions, access control, authentication, JWT, row-level security |
../../rules/deployment.md | Installation, storage engines, Docker, Kubernetes, production config |
../../rules/performance.md | Indexes, EXPLAIN, query optimization, batch ops, resource tuning |
../../rules/sdks.md | JavaScript, Python, Go, Rust SDK usage, connection patterns, live queries |
../../rules/surrealism.md | WASM extensions, custom functions, Surrealism module authoring |
../../rules/surrealist.md | Surrealist IDE/GUI usage, schema designer, query editor |
../../rules/surreal-sync.md | CDC migration tool, source/target connectors, migration workflows |
../../rules/surrealfs.md | AI agent filesystem, file storage, metadata, retrieval patterns |
Workflow Examples
All workflow examples use root/root for local development only.
For production, use DEFINE USER with scoped, least-privilege credentials.
New Project Setup
uv run {baseDir}/scripts/doctor.py
surreal start rocksdb://data/myproject.db --user root --pass root
surreal import --endpoint http://localhost:8000 --user root --pass root \
--ns myapp --db production schema.surql
uv run {baseDir}/scripts/schema.py introspect
Migration from SurrealDB v2
surreal export --endpoint http://old-server:8000 --user root --pass root \
--ns myapp --db production v2-backup.surql
surreal import --endpoint http://localhost:8000 --user root --pass root \
--ns myapp --db production v2-backup.surql
uv run {baseDir}/scripts/schema.py introspect
Data Modeling for a New Domain
surreal import --endpoint http://localhost:8000 --user root --pass root \
--ns dev --db test schema.surql
uv run {baseDir}/scripts/schema.py introspect
Deploying to Production
uv run {baseDir}/scripts/doctor.py --endpoint https://prod-surreal:8000
uv run {baseDir}/scripts/schema.py introspect --endpoint https://prod-surreal:8000
Upstream Source Check
uv run {baseDir}/scripts/check_upstream.py
uv run {baseDir}/scripts/check_upstream.py --json
uv run {baseDir}/scripts/check_upstream.py --stale
Compares current HEAD SHAs and release tags of all tracked repos against the
baselines in ../../SOURCES.json. Use this to plan incremental skill updates.
Source Provenance
This skill was built on 2026-02-19 from these upstream sources:
Documentation: surrealdb.com/docs snapshot 2026-02-22.
Machine-readable provenance: ../../SOURCES.json.
Output Convention
All Python scripts in this skill follow a dual-output pattern:
- stderr: Rich-formatted human-readable output (tables, panels, status indicators)
- stdout: Machine-readable JSON for programmatic consumption by AI agents
This means 2>/dev/null hides the human output, and piping stdout gives clean JSON for downstream processing.