Neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, and the AI Gateway.
A skill your agent uses when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop…
$ npx skills add ericrisco/rsc-harness --skill neon -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness neon --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/neon .claude/skills/neon && rm -rf skills-srcUse ~/.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/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .claude/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/neonType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill neon -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness neon --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/neon .agents/skills/neon && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .agents/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill neon -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness neon --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/neon .cursor/skills/neon && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .cursor/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/neon--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill neon -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness neon --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/neon .gemini/skills/neon && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .gemini/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness neonInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill neon -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/neon .github/skills/neon && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .github/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill neon -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness neon --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/neon .opencode/skills/neon && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "neon" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/neon into .opencode/skills/neon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neon", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
neonA skill your agent uses when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop…
Neon is an agent skill from ericrisco/rsc-harness. Use when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop being burned by scale-to-zero cold starts and pooler limits — including choosing HTTP versus WebSocket connections and pooled versus direct endpoints for migrations. NOT generic Postgres schema, index, EXPLAIN, RLS or migration-engine work (that is postgresdb).
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/branching-ci.md`).
It sits in Backend & APIs, covering Serverless and Realtime and WebSockets. It works with PostgreSQL, Neon, Turso and Vercel. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Neon loads about 3.5k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 111 tokens; SKILL.md has 1,424 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,424 words, ~3,474 tokens.
.claude/skills/neon/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Neon is Postgres with three platform features the engine doesn't have: a serverless driver that
talks over HTTP/WebSocket (so you can query from edge runtimes), built-in connection pooling, and
copy-on-write branching that makes a fork of production data appear instantly. This skill owns
that platform layer. The Postgres engine underneath — schema, indexes, EXPLAIN, RLS, zero-downtime
DDL — is identical to any Postgres 16 and belongs to ../postgresdb/SKILL.md. Don't re-derive engine
craft here; connect correctly and branch correctly.
When to use:
@neondatabase/serverless, or DATABASE_URL points at *.neon.tech / *.aws.neon.tech.neon() vs WebSocket Pool.neonctl usage, the Neon + Vercel preview integration.When NOT to use — route to the sibling:
../postgresdb/SKILL.md. Neon adds nothing to the engine; defer.../drizzle-orm/SKILL.md; Prisma → prisma-orm. Neon supplies only the driver adapter line.supabase; PlanetScale → planetscale; Turso/libSQL → sqlite-turso.../vercel/SKILL.md / cloudflare / railway.backups (Neon branch-as-restore is mentioned here, not owned).Pool/Client is created and closed inside one request handler — never at module scope in a serverless function. Module scope = a connection that outlives the invocation and leaks.-pooler). Migrations / DDL / advisory locks / session features use the direct string (no -pooler). Mixing them is the #1 Neon foot-gun.neon() driver always uses the pooled endpoint — don't hand it a direct string and expect session state.neon() has no interactive transactions. Need BEGIN ... COMMIT across round-trips? Use sql.transaction([...]) (batched, non-interactive) or a WebSocket Pool.neonConfig.webSocketConstructor = ws before opening a Pool/Client. Node 22+ and edge runtimes have a global WebSocket; don't set it there.@neondatabase/serverless is at v1.1.0 (npm latest, 2026-04-17). It is a drop-in replacement for pg.Keyed by runtime and what the query needs. Pick the lightest transport that satisfies the need.
| You need | Use | Why |
|---|---|---|
| One independent read/write per request (edge, Lambda, RSC) | HTTP neon() | Single fetch round-trip (~3 round trips vs ~8 for TCP setup); no connection to manage or leak. |
| Several queries that must be atomic, no logic between them | sql.transaction([q1, q2]) over HTTP | One round-trip, real transaction, still no socket lifecycle. |
| Interactive transaction — read a row, branch in app code, then write | WebSocket Pool (open+close in handler) | HTTP can't hold BEGIN open; WebSocket keeps the session alive within the request. |
Full pg-API compatibility (cursors, LISTEN/NOTIFY, COPY) | WebSocket Client/Pool | HTTP is one-shot; node-postgres semantics need the socket. |
Migrations / DDL / pg_advisory_lock / session GUCs | direct (non--pooler) string with pg or WebSocket Client | PgBouncer transaction-pooling breaks session-level state. |
If you're behind Drizzle or Prisma, you don't call these directly — you pass the driver to the adapter. See the ORM pointers below.
Neon gives every branch two connection strings that differ in one thing: the host of the pooled
one contains -pooler.
pooled: postgresql://user:pass@ep-cool-name-123456-pooler.us-east-2.aws.neon.tech/db?sslmode=require
direct: postgresql://user:pass@ep-cool-name-123456.us-east-2.aws.neon.tech/db?sslmode=require| Use case | String | Reason |
|---|---|---|
| App runtime (queries from your functions) | pooled (-pooler) | PgBouncer fans many short-lived serverless invocations onto a small pool; up to 10,000 concurrent client connections per project. |
HTTP neon() driver | pooled (it forces it regardless) | The HTTP path is stateless; pooling is the right model. |
| Migrations, DDL, schema introspection | direct | Transaction pooling drops session state; advisory locks and prepared statements need a stable session. |
psql interactive / debugging | direct | You want one real session, not a pooled handle. |
Bad → Good for a typical setup:
# Bad: one string everywhere — migrations sporadically fail under PgBouncer.
DATABASE_URL="postgresql://...-pooler.../db?sslmode=require"
# Good: split them. App uses the pooled one; the migration tool uses DIRECT.
DATABASE_URL="postgresql://...-pooler.../db?sslmode=require" # app runtime
DIRECT_URL="postgresql://....../db?sslmode=require" # migrations/DDLAll examples assume @neondatabase/serverless@1.1.0.
HTTP one-shot — the default for edge/serverless reads and writes:
import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!); // pooled endpoint, no socket to manage
export async function getUser(id: string) {
const [row] = await sql`select id, email from users where id = ${id}`;
return row; // parameterized; ${id} is bound, not interpolated
}Batched atomic writes over HTTP — atomicity without a WebSocket and without interactivity:
import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!);
await sql.transaction([
sql`insert into orders (id, total) values (${id}, ${total})`,
sql`update inventory set qty = qty - 1 where sku = ${sku}`,
]); // one round-trip, both succeed or both roll backInteractive transaction — WebSocket Pool, opened and closed inside the handler:
import { Pool, neonConfig } from "@neondatabase/serverless";
import ws from "ws"; // Node ≤21 only; omit on edge / Node 22+
neonConfig.webSocketConstructor = ws; // required on Node ≤21; do NOT set on edge runtimes
export async function transfer(from: string, to: string, cents: number) {
const pool = new Pool({ connectionString: process.env.DATABASE_URL }); // inside the handler
const client = await pool.connect();
try {
await client.query("begin");
const { rows } = await client.query("select balance from accounts where id=$1 for update", [from]);
if (rows[0].balance < cents) throw new Error("insufficient");
await client.query("update accounts set balance=balance-$1 where id=$2", [cents, from]);
await client.query("update accounts set balance=balance+$1 where id=$2", [cents, to]);
await client.query("commit");
} catch (e) {
await client.query("rollback");
throw e;
} finally {
client.release();
await pool.end(); // close before the function returns — no leaked connection
}
}Edge runtime (Vercel Edge, Cloudflare Workers): use HTTP neon(); the global WebSocket exists, so a
Pool works without ws, but prefer HTTP unless you truly need an interactive transaction.
ORM adapters — you wire the driver, the ORM owns the query API:
neon()/Pool into drizzle-orm/neon-http or neon-serverless → ../drizzle-orm/SKILL.md.@prisma/adapter-neon driver adapter → prisma-orm.A Neon branch is copy-on-write: created instantly with no data copied, it forks production at a point in time, gets its own compute endpoint, and scales to zero independently. That makes a branch a cheap, isolated, full-data environment — not a backup substitute (test the restore).
| Situation | Do | Why |
|---|---|---|
| Per-developer or per-PR isolated data | branch off production | Instant, real prod-shaped data, separate endpoint, auto scale-to-zero → near-free idle. |
| A genuinely separate product/tenant with its own billing & limits | new project | Branches share the project's quotas and pooled-connection ceiling. |
| Throwaway query you can run against staging | same branch | Don't manufacture a branch for a one-off SELECT. |
neonctl (alias neon) drives create/connect/teardown:
neonctl branches create --name pr-$PR_NUMBER --parent main
neonctl connection-string pr-$PR_NUMBER --pooled # feed to the preview app
neonctl branches delete pr-$PR_NUMBER # on PR merge/closeVercel preview integration: with the Neon + Vercel integration, each preview deployment gets its
own branch forked from production, auto-deleted when the PR merges or closes — zero CI code. If you're
not on Vercel, replicate it in CI: create branch on PR open → run migrations (direct string) → seed →
expose the pooled connection string to the app → delete on PR close. Full GitHub Actions workflow,
neonctl reference, and the Neon API endpoints: branching-ci.
Branch-as-restore (PITR): to recover, branch from an earlier point in time and either read from it
or promote it. It's a fast undo, not a tested backup discipline — own that in backups.
Each branch's compute endpoint autoscales between a min and max CU (vCPU/RAM) on its own, with no noisy neighbors across branches. Idle compute scales to zero after 5 minutes of inactivity (default), then resumes on the next connection with a millisecond-to-sub-second cold start.
Cost mental model: non-prod branches sit at zero almost always, so a dozen PR branches cost close to nothing. The cold start is the price.
Prod endpoint sizing checklist:
| Anti-pattern | Why it bites | Do instead |
|---|---|---|
new Pool(...) at module scope in a serverless function | Connection outlives the invocation; you exhaust the pool → "too many connections". | Create and await pool.end() inside the handler, or use HTTP neon(). |
Pooled (-pooler) string for migrations/DDL | PgBouncer transaction-pooling drops session state; advisory locks/prepared statements fail intermittently. | Use the direct string for migrations; pooled only for app runtime. |
Direct (non--pooler) string as the app DATABASE_URL | No pooling → serverless concurrency exhausts raw connections fast. | App runtime always uses the pooled string. |
Expecting BEGIN/interactive txns from HTTP neon() | HTTP is one-shot, stateless — there's no open session to hold a transaction. | sql.transaction([...]) for batched atomicity, or a WebSocket Pool for interactive. |
Opening a Pool without neonConfig.webSocketConstructor = ws on Node ≤21 | No global WebSocket → the connection silently fails. | Set webSocketConstructor = ws on Node ≤21; omit on edge / Node 22+. |
| Ignoring scale-to-zero in p99 latency | First request after 5 min idle pays the resume cold start; users see a slow request. | Disable scale-to-zero or set min CU > 0 on latency-sensitive prod. |
| One shared branch for all PRs | PRs clobber each other's data; no isolation. | One branch per PR, deleted on close. |
| Treating a branch as a backup without testing restore | Branches share project quotas and aren't an exercised recovery path. | Verify branch-as-restore; own real backup strategy in backups. |
| Maxing CU "to be safe" | You pay for headroom you don't use; autoscaling already handles spikes. | Set a realistic min/max; let autoscaling expand. |
| Doing schema/index design in this skill | Engine craft is identical to any Postgres; duplicating it drifts. | Defer to ../postgresdb/SKILL.md. |
../postgresdb/SKILL.md.../nextjs/SKILL.md.../drizzle-orm/SKILL.md, prisma-orm.../vercel/SKILL.md, cloudflare, railway. Backups discipline: backups.supabase, planetscale, sqlite-turso.© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in skills/neon of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Neon 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Neon this skillericrisco/rsc-harness | 167 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Neonneondatabase/agent-skills | 100 | — | ~8.7k | Automated safety check: Notes | Apache-2.0 | |
| Neon Postgresusenotra/notra | 256 | — | ~4.1k | Automated safety check: Notes | AGPL-3.0 | |
| Neon Postgresneondatabase/agent-skills | 100 | — | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Neon Postgressmontlouis/bible-strong | 171 | 1 repos | ~2.3k | Automated safety check: Notes | GPL-3.0 | |
| Neon Postgresdavila7/claude-code-templates | 32k | 4 repos | ~396 | Automated safety check: Pass | MIT |
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, and the AI Gateway.
usenotra/notra
Guides and best practices for working with Lakebase Postgres, the database behind Neon.
neondatabase/agent-skills
Guides and best practices for working with Lakebase Postgres on Neon: connections, pooled vs direct, schema migrations, branching, autoscaling, scale-to-zero, instant restore, read replicas, IP…
smontlouis/bible-strong
Guides and best practices for working with Lakebase Postgres, the database behind Neon.
davila7/claude-code-templates
Expert patterns for Neon serverless Postgres, branching, connection pooling, and Prisma/Drizzle integration Use when: neon database, serverless postgres, database branching, neon postgres, postgres…
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Works with
Categories
A skill your agent uses when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop…. Neon is an agent skill from ericrisco/rsc-harness. Use when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop being burned by scale-to-zero cold starts and pooler limits — including choosing HTTP versus WebSocket connections and pooled versus direct endpoints for migrations.
Neon fits situations like: you have picked Neon (serverless Postgres) and need to connect correctly from a serverless; wire database branching into dev.
Run `npx skills add ericrisco/rsc-harness --skill neon -a claude-code`. Or copy the skill folder (skills/neon in ericrisco/rsc-harness) into .claude/skills/neon in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill neon -a codex`. Or copy the skill folder (skills/neon in ericrisco/rsc-harness) into .agents/skills/neon in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill neon -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neon, .gemini/skills/neon, .github/skills/neon and .opencode/skills/neon in your project.
Going by SKILL.md and its folder, Neon needs a shell for the scripts in its folder. Our summary lists: Node.js; A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Neon is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k 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 899 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Neon: Neon (neondatabase/agent-skills, 100 stars), Neon Postgres (usenotra/notra, 256 stars), Neon Postgres (neondatabase/agent-skills, 100 stars) and Neon Postgres (smontlouis/bible-strong, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.