with one click
datasette
// Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export.
// Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export.
Portable tokens of capability, identity, and access
The grammar rules that make MOOLLM's file system object-oriented. Plural directory names declare element type; UPPERCASE marker files declare interface exports (COM-style, minus the UUIDs); directories are implementation classes exporting every interface whose marker file sits at their root.
Mother skill for platform-descriptor sister skills. Defines what a BIOME is — a bounded region of an ecosystem (coexisting, exchanging, never isolated) for one platform you operate — and what files, subdirectories, and cross-biome bridges every daughter biome inherits.
A skill is documentation that learned to do things.
GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
Schemapedia — schema plugins, families, gateways, formats.yml, mechanism_relations; self-object kernel; delegates to sibling skills.
| name | datasette |
| description | Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export. |
| license | MIT |
| tier | 1 |
| allowed-tools | ["read","grep","glob","run_terminal_cmd"] |
| related | ["sqlite","cursor-mirror","schema"] |
| tags | ["moollm","datasette","sqlite","http","json-api"] |
Part of MOOLLM · skills/datasette/
Datasette (datasette.io) is the CLI and runtime for publishing SQLite files as a read-only web application and JSON API. It sits on top of the same .db file format as the sqlite engine: this skill is the tooling and ecosystem layer (serve, metadata, plugins, CORS), not a second database engine.
sqlite → datasette: you pass the same path as sqlite3 my.db. Datasette does not build a second on-disk database for serving—read-only HTTP over that file. That is the usual sense of “zero copy” live publishing here: no duplicate .db artifact; refreshes see committed data from other writers when the file uses a normal WAL setup. For a static snapshot, serve a copy or use --immutable on a file you do not change.
datasette — local web server; table browse, filters, Custom SQL, export links.:parameters).--crossdb — attach multiple SQLite files; run SQL that references more than one database (see Datasette docs for exact SQL shape)..json to many URLs for programmatic use (JSON API).Official documentation: https://docs.datasette.io/
Use pip / pipx / your OS package manager per current Datasette docs. You need the datasette command on PATH.
datasette mydata.db
Opens a local port (default in docs) with table list and row browsing.
Point at a YAML file with -m / --metadata. It can define title, description, per-databases, per-tables (facets, labels), and queries (canned SQL surfaced in the UI).
MOOLLM’s cursor-mirror skill ships a consolidated export and a large metadata file tuned for introspection:
| Artifact | Role |
|---|---|
lib/datasette_export.py → export_datasette(output_path) | Builds a single cursor-mirror.db with tables such as composers, transcript_sections, shell_commands, tool_calls, usage_events, feature_flags (see module docstring). |
reference/universal/datasette-metadata.yml | Datasette metadata: canned queries (tool usage, shell audit, cost, timelines), facets, cross-database layout for cursor-mirror + cursor-model. |
reference/universal/TIME-INDEXED-TABLES.md | Notes on time columns for bucketing and correlating with other SQLite DBs in the same Datasette process. |
Typical flow
PYTHONPATH set so lib imports resolve), run Python to call export_datasette(Path("cursor-mirror.db")) (see datasette_export.py for parameters and defaults).cursor-model.db exists if you want the universal model side (same metadata file names both databases).datasette cursor-mirror.db cursor-model.db --crossdb \
-m reference/universal/datasette-metadata.yml \
--cors -p 8001
Adjust paths to your checkout. Extra SQLite files (e.g. other Cursor history DBs) can be additional positional arguments; they appear as separate databases and can be joined in Custom SQL when timestamps align (see TIME-INDEXED-TABLES.md).
Security: Datasette is powerful; do not expose it on untrusted networks without authentication and threat modeling. Treat exported DBs as sensitive (chat content, tool history, shell commands).
| Skill | Role |
|---|---|
| sqlite | Engine and .db file semantics; sqlite3 CLI for direct SQL. |
| cursor-mirror | Source data and export; mirror CLI and YAML model docs. |
| schema | Schemapedia datasette mechanism points here. |
sqlite — file format, pragmas, JSON1 when you edit the DB outside Datasette.cursor-mirror — full introspection protocol and mirror commands.This skill's directory (browse and fetch everything): skills/datasette/