Install
$ agentstack add skill-surrealdb-agent-skills-surrealkit ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
SurrealKit
A skill for driving SurrealKit, SurrealDB's schema-management and migration CLI.
SurrealKit keeps a SurrealDB database in sync with .surql schema files. It provides two complementary workflows — a fast declarative sync for development and controlled, phased rollouts for shared and production databases — plus seeding, type generation, and a declarative testing framework.
When to use this skill
Reference these guidelines when:
- Scaffolding a new SurrealDB project (
surrealkit init) or authoring templates - Applying schema changes in development (
surrealkit sync) - Planning, executing, or rolling back production migrations (
surrealkit rollout) - Generating JSON or TypeScript types from a live schema (
surrealkit typegen) - Writing or running declarative tests for schemas, permissions, or API endpoints (
surrealkit test)
This skill covers the SurrealKit tool itself. To write the actual schema, seed, and query statements that go in .surql files, use the surrealql skill.
Installation
| Method | Command | | --- | --- | | cargo binstall (recommended) | cargo binstall surrealkit | | Cargo (from source) | cargo install surrealkit | | Docker | docker pull ghcr.io/surrealdb/surrealkit:latest | | Prebuilt tarball | GitHub Releases |
Command map
| Command | Purpose | Reference | | --- | --- | --- | | surrealkit init | Scaffold a project from a template, selecting optional features | [init-templates.md](references/init-templates.md) | | surrealkit sync | Declaratively reconcile the database to your schema files (dev) | [sync-rollouts.md](references/sync-rollouts.md) | | surrealkit rollout | Plan, stage, complete, and roll back migrations (shared/prod) | [sync-rollouts.md](references/sync-rollouts.md) | | surrealkit typegen | Introspect a live DB and emit JSON / TypeScript types | [typegen.md](references/typegen.md) | | surrealkit test | Run declarative TOML test suites | [testing.md](references/testing.md) | | surrealkit seed | Run seeding files in database/seed/ | [sync-rollouts.md](references/sync-rollouts.md) | | surrealkit apply | Apply a single .surql file directly | — | | surrealkit status | Show sync/rollout state | — |
Run surrealkit --help to confirm available flags for an installed version.
Connection & config
Global flags work on every command and resolve in this order (highest wins): CLI flags > system env vars > .env file > defaults.
surrealkit --host http://localhost:8000 --ns my_ns --db my_db \
--user root --pass root --auth-level root sync
| Flag | Env var (with fallback) | Default | | --- | --- | --- | | --host | SURREALDB_HOST (DATABASE_HOST) | http://localhost:8000 | | --ns | SURREALDB_NAMESPACE (DATABASE_NAMESPACE) | db | | --db | SURREALDB_NAME (DATABASE_NAME) | test | | --user | SURREALDB_USER (DATABASE_USER) | root | | --pass | SURREALDB_PASSWORD (DATABASE_PASSWORD) | root | | --auth-level | SURREALDB_AUTH_LEVEL (DATABASE_AUTH_LEVEL) | root (root / namespace / database) | | --folder | SURREALDB_FOLDER | ./database |
The project root holds surrealkit.toml with [variables] and [typegen] sections.
Template variables
Use ${VAR_NAME} tokens in any .surql file (schema, seed, or rollout SQL). Names are case-insensitive. Values resolve in order (highest wins):
--var KEY=VALUECLI flag (repeatable)SURREALKIT_VAR_environment variable[variables]section insurrealkit.toml
# surrealkit.toml
[variables]
schema_prefix = "myapp"
talent_username = "talent_rw"
surrealkit sync --var schema_prefix=acme --var talent_username=talent_rw
- An undefined variable is a hard error — SurrealKit never silently skips it or leaves the token in the SQL.
- Escape a literal
${...}by doubling the dollar sign:$${literal}. - Substitution runs on
sync,seed,apply, androllout start/complete/rollback. It does not run onrollout plan/baseline/status/lint(no user SQL executes there).
Project layout
surrealkit init creates a database/ directory (override the root with --folder / SURREALDB_FOLDER):
database/
├── schema/ # Schema definitions (.surql) — the source of truth
├── rollouts/ # Generated rollout manifests (.toml)
├── snapshots/ # Internal drift tracking
│ ├── schema_snapshot.json
│ └── catalog_snapshot.json
├── seed/ # Seeding files (.surql)
├── tests/
│ ├── suites/ # Test suites (.toml)
│ ├── fixtures/ # Test fixture data (.surql)
│ └── config.toml # Global test config
└── setup.surql # One-time setup script
surrealkit.toml # Project config ([variables], [typegen])
Rules & conventions
- Sync vs rollout: use
syncfor local, preview, and other disposable databases where it is safe to match files immediately; userolloutfor shared/production databases that need review, staged execution, rollback, or operator-controlled cutover. - Schema files are the source of truth.
synccreates, updates, and prunes SurrealKit-managed objects to matchdatabase/schema/. - Schema files should contain
DEFINE/REMOVEstatements. Allow other statements (INSERT,UPDATE,CREATE) only with--allow-all-statements, which disables catalog entity tracking. - Store SurrealQL in files with the
.surqlextension. Validate and format generated SurrealQL with the tools described in the surrealql skill (surreal validate,npx @surrealdb/surql-fmt). - SurrealKit is young and evolving; confirm command surfaces against
surrealkit --helpand the README.
References
- Project scaffolding and templates — [references/init-templates.md](references/init-templates.md)
- Development sync and production rollouts — [references/sync-rollouts.md](references/sync-rollouts.md)
- Type generation (JSON and TypeScript) — [references/typegen.md](references/typegen.md)
- Declarative testing framework — [references/testing.md](references/testing.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: surrealdb
- Source: surrealdb/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.