Agent skill

Drizzle Sqlite Scaffold

by pproenca in pproenca/dot-skills

Scaffolds Drizzle ORM + SQLite boilerplate — a new drizzle.config.ts, a singleton client with the right pragmas, per-table schema files with explicit primary keys/indexed foreign…

MITAuto-check passedDatabases

Install Drizzle Sqlite Scaffold

skills CLI
$ npx skills add pproenca/dot-skills --skill drizzle-sqlite-scaffold -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pproenca/dot-skills drizzle-sqlite-scaffold --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.experimental/drizzle-sqlite-scaffold .claude/skills/drizzle-sqlite-scaffold && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
drizzle-sqlite-scaffold
GitHub stars
214
Token cost
~4k tokens
SKILL.md length
1,475 words
Files
15 (incl. references, assets)
Skills in repo
182
Repo updated
First seen
Licence
MIT

At a glance

Scaffolds Drizzle ORM + SQLite boilerplate — a new drizzle.config.ts, a singleton client with the right pragmas, per-table schema files with explicit primary keys/indexed foreign…

  • Works in 6 steps: Resolve project parameters. Read… → Install runtime + tooling first so the… → Pick the config and client variants for… → …
  • Even when the user doesnt say scaffold — phrases like add a table for X
  • SKILL.md covers When to Apply, Setup, Available Templates and How to Use, plus 6 more sections
  • Calls npm and npx

What it does

Drizzle Sqlite Scaffold is an agent skill from pproenca/dot-skills. Scaffolds Drizzle ORM + SQLite boilerplate — a new drizzle.config.ts, a singleton client with the right pragmas, per-table schema files with explicit primary keys/indexed foreign keys/relations()/inferred types, per-table repository modules with .returning() + inArray() + .onConflictDoUpdate(), or drizzle-zod validators. Produces convention-enforced templates for three drivers (better-sqlite3, libsql/Turso, bun:sqlite). Trigger even when the user doesn't say "scaffold" — phrases like "add a table for X", "set up…

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files and assets (for example `config.json`, `gotchas.md` and `metadata.json`).

It sits in Databases, covering ORMs and data access, Project scaffolding and Forms and validation. It works with SQLite, Turso, Zod and Drizzle ORM. The repository describes itself as: A collection of AI agent skills following the Agent Skills open format. The licence is MIT.

When your agent uses it

  • Even when the user doesnt say scaffold — phrases like add a table for X
  • Set up Drizzle in this project
  • Create a CRUD module for X
  • Bootstrap the DB layer should pull this in

Example prompts

  • “t say”
  • “— phrases like”
  • “set up Drizzle in this project”
  • “/drizzle-sqlite-scaffold”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Resolve project parameters. Read config.json. For any required field that's empty, ask the user via AskUserQuestion (driver is the only…
  2. Install runtime + tooling first so the rendered files type-check immediately
  3. Pick the config and client variants for the resolved driver
  4. Render and write the project-init files
  5. For libsql: the client template uses top-level await migrate(...). Verify tsconfig.json has "module": "ESNext" (or "NodeNext") and…
  6. Save resolved values to config.json so subsequent table runs don't re-prompt.

What it can do on your machine

Read from SKILL.md and the folder at commit cf93c57. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • orm.drizzle.team

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Drizzle Sqlite Scaffold loads about 4k tokens when it runs, and up to ~6.6k if it reads all its reference files. Until then it costs about 200 tokens; SKILL.md has 1,475 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~200
When it runs · the whole SKILL.md, loaded when a task matches
~4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pproenca/dot-skills at commit cf93c57, republished under its MIT licence (© pproenca). 1,475 words, ~4,011 tokens.

Download SKILL.mdSave it as .claude/skills/drizzle-sqlite-scaffold/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.
name
drizzle-sqlite-scaffold
description
Scaffolds Drizzle ORM + SQLite boilerplate — a new `drizzle.config.ts`, a singleton client with the right pragmas, per-table schema files with explicit primary keys/indexed foreign keys/relations()/inferred types, per-table repository modules with `.returning()` + `inArray()` + `.onConflictDoUpdate()`, or drizzle-zod validators. Produces convention-enforced templates for three drivers (better-sqlite3, libsql/Turso, bun:sqlite). Trigger even when the user doesn't say "scaffold" — phrases like "add a table for X", "set up Drizzle in this project", "wire up SQLite", "create a CRUD module for X", or "bootstrap the DB layer" should pull this in. Pairs with the `drizzle-sqlite` skill, which covers the 45 rules these templates encode — read it when an exception is required.

Drizzle SQLite Scaffold

Parameterized templates for bootstrapping Drizzle + SQLite in a fresh project, or adding a new table/repository to an existing one. Every output bakes in the conventions documented in references/conventions.md — explicit primary keys, indexed foreign keys, relations() declarations, $inferSelect/$inferInsert exports, timestamp_ms dates, boolean-mode bools, WAL + foreign_keys=ON + busy_timeout pragmas, singleton client with HMR guard, and CRUD helpers using .returning() + inArray() + .onConflictDoUpdate().

When to Apply

Reach for these templates when:

  • Starting a new project that will use Drizzle with SQLite (any driver)
  • Adding a new table to an existing Drizzle project — the table file should match the existing patterns
  • Adding a CRUD repository module for an existing table
  • Refactoring a hand-rolled Drizzle setup that's missing pragmas, has no relations(), or has hand-written User types that drift from the schema
  • Migrating from another ORM (Prisma, Kysely) to Drizzle and wanting consistent shapes from the start

Setup

Required parameters (asked on first use, saved to config.json)
ParameterRequiredDefaultValues
driveryes—better-sqlite3 | libsql | bun-sqlite (D1 has a different lifecycle — see "Cloudflare D1" below)
db_url_envnoDATABASE_URLenv var name
schema_dirno./src/db/schemaper-table schema files
repository_dirno./src/db/repositoryper-table CRUD modules
validators_dirno./src/db/validatorsdrizzle-zod schemas (when with_zod=true)
client_pathno./src/db/client.tssingleton client module
migrations_dirno./drizzledrizzle-kit output

If config.json already exists with values, this skill uses them; otherwise it asks via AskUserQuestion.

Per-table parameters (asked each time a new table is scaffolded)
ParameterRequiredDefaultDescription
nameyes—Kebab-case singular: user, order-item. Used for filenames and TS identifiers (name_camel, name_pascal derived).
table_namenosnake_case plural of nameSQL table name: users, order_items
pknoserial-intserial-int | uuid | cuid2 | text
timestampsnotrueadds createdAt/updatedAt columns
soft_deletenofalseadds nullable deletedAt + partial index
relationsno[]list of related table names — expands relations() body
with_zodnotrueemits a drizzle-zod validators file

Available Templates

Project-init templates (emit once)
TemplateOutput FileWhen
drizzle.config.local.ts.templatedrizzle.config.tsdriver is better-sqlite3, bun-sqlite, or libsql with a file: URL
drizzle.config.turso.ts.templatedrizzle.config.tsdriver is libsql against Turso (remote libsql: URL)
client.better-sqlite3.ts.template{{client_path}}driver is better-sqlite3
client.libsql.ts.template{{client_path}}driver is libsql
client.bun-sqlite.ts.template{{client_path}}driver is bun-sqlite
schema-index.ts.template{{schema_dir}}/index.tsAlways (initially empty; append exports as tables are added)
gitignore.template.gitignore (append)Always
Per-table templates (emit once per table)
TemplateOutput FileWhen
table.ts.template{{schema_dir}}/{{name}}.tsPer table
repository.ts.template{{repository_dir}}/{{name}}.tsPer table
validators.ts.template{{validators_dir}}/{{name}}.tsPer table when with_zod=true

How to Use

Flow A — Initialize a new project (run once)
  1. Resolve project parameters. Read config.json. For any required field that's empty, ask the user via AskUserQuestion (driver is the only strictly required one; the rest have sensible defaults).

  2. Install runtime + tooling first so the rendered files type-check immediately:

    bash
    # Pick the driver-specific runtime package:
    npm install drizzle-orm @libsql/client      # for libsql
    npm install drizzle-orm better-sqlite3      # for better-sqlite3
    npm install drizzle-orm                     # bun:sqlite is built into Bun
    
    # Dev tools (all drivers):
    npm install -D drizzle-kit
    npm install -D @types/better-sqlite3        # better-sqlite3 only
    npm install -D drizzle-zod zod              # if with_zod=true
  3. Pick the config and client variants for the resolved driver:

    • better-sqlite3 → drizzle.config.local.ts.template + client.better-sqlite3.ts.template
    • libsql with file: URL → drizzle.config.local.ts.template + client.libsql.ts.template
    • libsql with remote Turso URL → drizzle.config.turso.ts.template + client.libsql.ts.template
    • bun-sqlite → drizzle.config.local.ts.template + client.bun-sqlite.ts.template
  4. Render and write the project-init files:

    • drizzle.config.ts
    • {{client_path}} (typically src/db/client.ts)
    • {{schema_dir}}/index.ts (empty barrel)
    • Append the gitignore.template block to the project's .gitignore
  5. For libsql: the client template uses top-level await migrate(...). Verify tsconfig.json has "module": "ESNext" (or "NodeNext") and "target": "ES2022"+ for top-level await support. If the runtime is CommonJS, replace the top-level await with an exported async function init() the app calls during startup.

  6. Save resolved values to config.json so subsequent table runs don't re-prompt.

Flow B — Add a new table (run per table)
  1. Resolve per-table parameters. Ask the user for name, then offer defaults for table_name (snake_case plural), pk, timestamps, soft_delete, relations, with_zod. Use AskUserQuestion for any non-default the user wants.

  2. Compute derived identifiers:

    • name_camel — camelCase of name (user, orderItem)
    • name_pascal — PascalCase of name (User, OrderItem)
    • pk_field — the PK column name (id for all 4 pk modes)
    • pk_ts_type — TS type for the PK (number for serial-int, string for uuid/cuid2/text)
    • pk_definition — the actual line, e.g., id: integer().primaryKey({ autoIncrement: true }), (see PK Variants table below)
  3. Render the table template: Read table.ts.template, substitute {{name}}, {{name_camel}}, {{name_pascal}}, {{table_name}}, {{pk_definition}}, {{pk_extra_imports}}, etc. Expand {{timestamps_block}} and {{soft_delete_block}} per the parameters (see "Block Expansions" below). Write to {{schema_dir}}/{{name}}.ts.

  4. Render the repository template with the same parameters. Write to {{repository_dir}}/{{name}}.ts.

  5. If with_zod=true, render the validators template. Write to {{validators_dir}}/{{name}}.ts.

  6. Append to the schema barrel: Add export * from './{{name}}'; to {{schema_dir}}/index.ts.

  7. Generate the migration: Tell the user to run npx drizzle-kit generate to produce the SQL file. Remind them to answer rename prompts explicitly if this scaffold replaces an existing differently-named table.

  8. Apply the migration: Run npx drizzle-kit migrate against the dev database. The client templates also call migrate(...) on boot, but applying once in the dev loop confirms the SQL works before the next process restart.

Flow C — Add a CRUD module for an existing table (no schema change)

Same as Flow B steps 1-2, but skip the table.ts.template render and just emit the repository (and optionally validators) modules.

PK Variants

pk valuepk_definitionpk_ts_typeExtra imports
serial-int (default)id: integer().primaryKey({ autoIncrement: true }),number—
uuidid: text().primaryKey().$defaultFn(() => crypto.randomUUID()),string— (uses Web Crypto)
cuid2id: text().primaryKey().$defaultFn(() => createId()),stringimport { createId } from '@paralleldrive/cuid2';
textid: text().primaryKey(),string— (caller supplies the ID)
Show full SKILL.md (634 more words)Show less

Placeholder Reference

Every {{placeholder}} the templates use, with its derivation rule. Items marked simple sub are find-and-replace; items marked block require the agent to expand per the rules in the next section.

PlaceholderTypeSource / derivation
{{driver}}simple subconfig.json:driver
{{db_url_env}}simple subconfig.json:db_url_env
{{schema_dir}}simple subconfig.json:schema_dir
{{repository_dir}}simple subconfig.json:repository_dir
{{validators_dir}}simple subconfig.json:validators_dir
{{client_path}}simple subconfig.json:client_path
{{migrations_dir}}simple subconfig.json:migrations_dir
{{schema_index_import}}simple subderived: client_path → relative path to {{schema_dir}}/index.ts (typically './schema')
{{client_import}}simple subderived: from a repository file, relative path back to client_path (typically '../client')
{{schema_import}}simple subderived: from a repository or validators file, relative path to the matching table file (typically '../schema/{{name}}')
{{name}}simple subper-table param — kebab-case singular (user)
{{name_camel}}simple subderived from name (user, orderItem)
{{name_pascal}}simple subderived from name (User, OrderItem)
{{table_name}}simple subper-table param, default = snake_case plural of name (users, order_items)
{{pk}}metadataper-table param — serial-int | uuid | cuid2 | text (drives the rows below)
{{pk_definition}}blockthe actual PK column line — see "PK Variants" table
{{pk_field}}simple subalways id for the four PK variants this skill ships
{{pk_ts_type}}simple subnumber for serial-int, string for uuid / cuid2 / text
{{pk_extra_imports}}blockempty for serial-int / uuid / text; import { createId } from '@paralleldrive/cuid2'; for cuid2
{{relation_imports}}blockfor each table in relations[], emit import { {{relatedCamel}} } from './{{related-kebab}}';
{{domain_columns}}blockthe agent (or user) replaces this with the actual non-PK, non-timestamp columns for the entity. Leave as a TODO comment if the user hasn't provided them yet.
{{timestamps_block}}blocksee expansion below — emit when timestamps=true, remove the line entirely when false
{{soft_delete_block}}blocksee expansion below — emit in the columns block when soft_delete=true
{{indexes}}blockone index(...) line per foreign key column (and any composite (authorId, publishedAt)-style indexes the user wants)
{{soft_delete_index}}blockthe partial index on deletedAt (see expansion below); emit only when soft_delete=true
{{relations_body}}blockone one(...) / many(...) line per related table; see expansion below
{{insert_refinements}}blockdrizzle-zod refinement callbacks for the INSERT shape; leave the example comment if none provided
{{update_refinements}}blocksame for the partial UPDATE shape
{{exports}}blockinside schema-index.ts.template: one export * from './{{name}}'; line per table; append on each new-table run

If a template emits a {{placeholder}} not in this table, that's a bug — file it under gotchas.md.

Block Expansions

The table.ts.template uses placeholder blocks for variable-shaped sections — the agent must expand them per parameters, not just text-substitute.

{{timestamps_block}} (when timestamps=true)
typescript
createdAt: integer({ mode: 'timestamp_ms' })
  .notNull()
  .$defaultFn(() => new Date()),
updatedAt: integer({ mode: 'timestamp_ms' })
  .notNull()
  .$defaultFn(() => new Date())
  .$onUpdateFn(() => new Date()),

When timestamps=false, remove the line entirely (don't leave the comment marker).

{{soft_delete_block}} (when soft_delete=true)

In the columns block:

typescript
deletedAt: integer({ mode: 'timestamp_ms' }),

In the indexes block:

typescript
index('{{table_name}}_active_idx').on(table.deletedAt).where(sql`deleted_at IS NULL`),

(Adjust the sql import accordingly.)

{{relations_body}} (when relations is non-empty)

For each related table in relations[], the agent decides whether it's a one or many based on whether the FK lives on the current table (then it's one) or on the related table (then it's many):

typescript
// FK on current table — `one`:
parent: one(parents, { fields: [users.parentId], references: [parents.id] }),

// FK on related table — `many`:
posts: many(posts),

If the user can't easily tell, default to one example of each and leave a comment.

{{indexes}} block

For each FK column, emit:

typescript
index('{{table_name}}_{{column}}_idx').on(table.{{columnCamel}}),

Cloudflare D1 note

D1 has a different lifecycle: the client is constructed per request from env.DB (the binding), not as a module-level singleton. This skill doesn't ship a D1 client template — follow the official D1 + Drizzle guide for the wiring. The table.ts.template, repository.ts.template, and validators.ts.template are still usable with D1 — only the client module differs.

Reference Files

FileDescription
references/conventions.mdThe 11 conventions enforced, with WHY and rule cross-references
gotchas.mdEdge cases discovered over time
metadata.jsonVersion + driver references
config.jsonProject-level parameter store
  • drizzle-sqlite — The library-reference rules these templates encode. The conventions doc cites specific rule filenames from it. Read it when you need to make an informed exception, debug a generated file, or scaffold something outside the templates' scope (custom migrations, complex queries, performance work).
  • better-auth-scaffold — Scaffolds Better Auth on top of a Drizzle DB; can be run after this skill provides the client.

© pproenca, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 14 other files (references, assets) in skills/.experimental/drizzle-sqlite-scaffold of pproenca/dot-skills.

  • SKILL.md
  • assets/templates/client.better-sqlite3.ts.template
  • assets/templates/client.bun-sqlite.ts.template
  • assets/templates/client.libsql.ts.template
  • assets/templates/drizzle.config.local.ts.template
  • assets/templates/drizzle.config.turso.ts.template
  • assets/templates/gitignore.template
  • assets/templates/repository.ts.template
  • assets/templates/schema-index.ts.template
  • assets/templates/table.ts.template
  • assets/templates/validators.ts.template
  • config.json
  • gotchas.md
  • metadata.json
  • references/conventions.md

Open the folder on GitHubat commit cf93c57

Compare with similar skills

Drizzle Sqlite Scaffold next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Drizzle Sqlite Scaffold compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Drizzle Sqlite Scaffold this skillpproenca/dot-skills214—~4kAutomated safety check: PassMIT
Better Drizzlealmeidazs/better-drizzle347—~1.7kAutomated safety check: PassApache-2.0
Nestjs Drizzle Crud Generatorgiuseppe-trisciuoglio/developer-kit355—~1.3kAutomated safety check: NotesMIT
DB Schemazhe-qi/clhoria-template193—~620Automated safety check: PassMIT
Sqlite Tursoericrisco/rsc-harness156—~2.9kAutomated safety check: PassMIT
Drizzle Migrationsbretzel-app/crumbs1271 repos~2.6kAutomated safety check: PassMIT

Similar skills

  • Better Drizzle

    almeidazs/better-drizzle

    Write, review, and debug code that uses better-drizzle, the typed repository layer over Drizzle ORM 1.x (better(db), client.users.findMany, paginate, cursor, upsertMany, relation include/connect…

    347 GitHub stars~1.7k tokensUpdated 2 days ago
    DatabasesAuto-check passed
  • Nestjs Drizzle Crud Generator

    giuseppe-trisciuoglio/developer-kit

    Generates complete CRUD modules for NestJS applications with Drizzle ORM.

    355 GitHub stars~1.3k tokensUpdated 27 days ago
    DatabasesAuto-check: notes
  • DB Schema

    zhe-qi/clhoria-template

    创建或修改数据库 Schema。当需要创建新表、修改表结构、定义字段、设置索引约束、或涉及 Drizzle ORM / drizzle-zod 操作时使用

    193 GitHub stars~620 tokensUpdated 2 mo ago
    DatabasesAuto-check passed
  • Sqlite Turso

    ericrisco/rsc-harness

    A skill your agent uses when deciding whether plain SQLite is enough, or wiring SQLite, Turso or libSQL for local-first, edge and embedded-replica apps — a local file DB, a remote Turso URL, or a…

    156 GitHub stars~2.9k tokensUpdated today
    DatabasesAuto-check passed
  • Drizzle Migrations

    bretzel-app/crumbs

    Drizzle ORM schema management and SQLite migrations — adding tables, modifying columns, creating indexes, generating and running migrations, Drizzle query patterns.

    127 GitHub starsUsed in 1 repo~2.6k tokens
    DatabasesAuto-check passed
  • Uql Orm

    rogerpadilla/uql

    Write code with UQL (the uql-orm package), the TypeScript ORM whose queries are plain JSON objects, on PostgreSQL, MySQL, MariaDB, SQLite, CockroachDB, SQL Server, MongoDB, Turso, Neon, D1 and PGlite.

    125 GitHub stars~3.5k tokensUpdated today
    DatabasesAuto-check passed

More from pproenca/dot-skills

All 182 skills in this repo
  • Audio Voice Recovery

    pproenca/dot-skills

    Audio forensics and voice recovery guidelines for CSI-level audio analysis.

    214 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Codemod React Pipeline

    pproenca/dot-skills

    Guided, scripted pipeline for running JSX/TSX/React codemods safely across large legacy codebases.

    214 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Dev Rfc

    pproenca/dot-skills

    Create well-structured RFCs and technical proposals for software projects.

    214 GitHub stars~3.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Dx Harness

    pproenca/dot-skills

    Developer-experience friction auditing and fixing — slow onboarding, repeated manual setup steps, missing bootstrap/reset/seed scripts, undiscoverable conventions.

    214 GitHub stars~1.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Language Spec Author

    pproenca/dot-skills

    Turn a rough idea for a language into a complete, implementable specification — a DSL, query, config/data, template, or protocol language — by interviewing the author dimension by dimension until…

    214 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Python Pep Author

    pproenca/dot-skills

    Drafting Python Enhancement Proposals (PEPs) — proposing a Python language feature, a standard library change, an interoperability standard, or an informational/process document for the Python…

    214 GitHub stars~2.1k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Drizzle Sqlite Scaffold

What does Drizzle Sqlite Scaffold do?

Scaffolds Drizzle ORM + SQLite boilerplate — a new drizzle.config.ts, a singleton client with the right pragmas, per-table schema files with explicit primary keys/indexed foreign…. Drizzle Sqlite Scaffold is an agent skill from pproenca/dot-skills.onConflictDoUpdate(), or drizzle-zod validators.

When should I use Drizzle Sqlite Scaffold?

Drizzle Sqlite Scaffold fits situations like: even when the user doesnt say scaffold — phrases like add a table for X; set up Drizzle in this project; create a CRUD module for X; bootstrap the DB layer should pull this in.

How do I install Drizzle Sqlite Scaffold in Claude Code?

Run `npx skills add pproenca/dot-skills --skill drizzle-sqlite-scaffold -a claude-code`. Or copy the skill folder (skills/.experimental/drizzle-sqlite-scaffold in pproenca/dot-skills) into .claude/skills/drizzle-sqlite-scaffold in your project. Claude Code loads it when a task matches its description.

How do I install Drizzle Sqlite Scaffold in Codex?

Run `npx skills add pproenca/dot-skills --skill drizzle-sqlite-scaffold -a codex`. Or copy the skill folder (skills/.experimental/drizzle-sqlite-scaffold in pproenca/dot-skills) into .agents/skills/drizzle-sqlite-scaffold in your project. Codex loads it when a task matches its description.

Can I use Drizzle Sqlite Scaffold in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pproenca/dot-skills --skill drizzle-sqlite-scaffold -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drizzle-sqlite-scaffold, .gemini/skills/drizzle-sqlite-scaffold, .github/skills/drizzle-sqlite-scaffold and .opencode/skills/drizzle-sqlite-scaffold in your project.

What does Drizzle Sqlite Scaffold need to run?

Going by SKILL.md and its folder, Drizzle Sqlite Scaffold needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.

Does Drizzle Sqlite Scaffold access the network?

SKILL.md names 1 domain. As links in the text: orm.drizzle.team. This is read from the text; nothing was executed.

Is Drizzle Sqlite Scaffold safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Drizzle Sqlite Scaffold use?

Drizzle Sqlite Scaffold is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Drizzle Sqlite Scaffold use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Drizzle Sqlite Scaffold?

Skills that share tags, products or a category with Drizzle Sqlite Scaffold: Better Drizzle (almeidazs/better-drizzle, 347 stars), Nestjs Drizzle Crud Generator (giuseppe-trisciuoglio/developer-kit, 355 stars), DB Schema (zhe-qi/clhoria-template, 193 stars) and Sqlite Turso (ericrisco/rsc-harness, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Drizzle Sqlite Scaffold?

pproenca (a GitHub user) maintains it in pproenca/dot-skills, which has 214 GitHub stars. The repository holds 182 skills in this directory. The repository was last updated on August 15, 2026.

Source: pproenca/dot-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.