Agent skill

Neon

by ericrisco in ericrisco/rsc-harness

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…

MITAuto-check passedBackend & APIs

Install Neon

skills CLI
$ npx skills add ericrisco/rsc-harness --skill neon -a claude-code

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

GitHub CLI
$ gh skill install ericrisco/rsc-harness neon --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/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/neon .claude/skills/neon && 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
neon
GitHub stars
167
Token cost
~3.5k tokens
SKILL.md length
1,424 words
Files
5 (incl. scripts, references)
Skills in repo
227
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 6 steps: A WebSocket Pool/Client is created and… → App queries use the pooled string (host… → The HTTP neon() driver always uses the… → …
  • You have picked Neon (serverless Postgres) and need to connect correctly from a serverless
  • SKILL.md covers When to use / When NOT to use, Non-negotiables, Pick your connection method and Connection strings: pooled vs…, plus 5 more sections
  • Runs Shell scripts from its folder

What it does

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.

When your agent uses it

  • You have picked Neon (serverless Postgres) and need to connect correctly from a serverless
  • Wire database branching into dev

Example prompts

  • “/neon”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

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

  1. A WebSocket Pool/Client is created and closed inside one request handler — never at module scope in a serverless function. Module scope =…
  2. App queries use the pooled string (host contains -pooler). Migrations / DDL / advisory locks / session features use the direct string (no…
  3. The HTTP neon() driver always uses the pooled endpoint — don't hand it a direct string and expect session state.
  4. HTTP neon() has no interactive transactions. Need BEGIN ... COMMIT across round-trips? Use sql.transaction([...]) (batched…
  5. On Node.js ≤ 21 you must set neonConfig.webSocketConstructor = ws before opening a Pool/Client. Node 22+ and edge runtimes have a global…
  6. Pin the driver: @neondatabase/serverless is at v1.1.0 (npm latest, 2026-04-17). It is a drop-in replacement for pg.

What it can do on your machine

Read from SKILL.md and the folder at commit e3d5b33. 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

    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.

  • Network

    No URLs in SKILL.md.

    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

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.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,424 words, ~3,474 tokens.

Download SKILL.mdSave it as .claude/skills/neon/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
neon
description
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`).
tags
neon, postgres, serverless, database, branching, edge
recommends
postgresdb, drizzle-orm, prisma-orm, vercel
origin
risco

Neon — serverless Postgres as a platform

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 / When NOT to use

When to use:

  • Code imports @neondatabase/serverless, or DATABASE_URL points at *.neon.tech / *.aws.neon.tech.
  • Connecting from Vercel (Edge/Node), Cloudflare Workers, AWS Lambda, or any serverless/edge function — choosing HTTP neon() vs WebSocket Pool.
  • Setting up branching: dev branch off production, a branch per PR in CI, neonctl usage, the Neon + Vercel preview integration.
  • Neon-specific symptoms: cold start after scale-to-zero, "too many connections" despite being serverless, pooled-vs-direct string confusion, autoscaling CU sizing/cost.
  • Picking the connection string for migrations (direct) vs app queries (pooled).

When NOT to use — route to the sibling:

  • Schema design, index choice, EXPLAIN/ANALYZE, query tuning, RLS, VACUUM, partitioning, expand-contract migrations → ../postgresdb/SKILL.md. Neon adds nothing to the engine; defer.
  • Drizzle schema/migrations → ../drizzle-orm/SKILL.md; Prisma → prisma-orm. Neon supplies only the driver adapter line.
  • A different managed Postgres/BaaS: Supabase (auth + storage + realtime) → supabase; PlanetScale → planetscale; Turso/libSQL → sqlite-turso.
  • Where to deploy the app talking to Neon → ../vercel/SKILL.md / cloudflare / railway.
  • Backup/PITR strategy as a discipline → backups (Neon branch-as-restore is mentioned here, not owned).

Non-negotiables

  1. A WebSocket 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.
  2. App queries use the pooled string (host contains -pooler). Migrations / DDL / advisory locks / session features use the direct string (no -pooler). Mixing them is the #1 Neon foot-gun.
  3. The HTTP neon() driver always uses the pooled endpoint — don't hand it a direct string and expect session state.
  4. HTTP neon() has no interactive transactions. Need BEGIN ... COMMIT across round-trips? Use sql.transaction([...]) (batched, non-interactive) or a WebSocket Pool.
  5. On Node.js ≤ 21 you must set neonConfig.webSocketConstructor = ws before opening a Pool/Client. Node 22+ and edge runtimes have a global WebSocket; don't set it there.
  6. Pin the driver: @neondatabase/serverless is at v1.1.0 (npm latest, 2026-04-17). It is a drop-in replacement for pg.

Pick your connection method

Keyed by runtime and what the query needs. Pick the lightest transport that satisfies the need.

You needUseWhy
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 themsql.transaction([q1, q2]) over HTTPOne round-trip, real transaction, still no socket lifecycle.
Interactive transaction — read a row, branch in app code, then writeWebSocket 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/PoolHTTP is one-shot; node-postgres semantics need the socket.
Migrations / DDL / pg_advisory_lock / session GUCsdirect (non--pooler) string with pg or WebSocket ClientPgBouncer 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.

Connection strings: pooled vs direct

Neon gives every branch two connection strings that differ in one thing: the host of the pooled one contains -pooler.

text
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 caseStringReason
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() driverpooled (it forces it regardless)The HTTP path is stateless; pooling is the right model.
Migrations, DDL, schema introspectiondirectTransaction pooling drops session state; advisory locks and prepared statements need a stable session.
psql interactive / debuggingdirectYou want one real session, not a pooled handle.

Bad → Good for a typical setup:

bash
# 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/DDL

Serverless driver patterns

All examples assume @neondatabase/serverless@1.1.0.

HTTP one-shot — the default for edge/serverless reads and writes:

ts
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:

ts
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 back

Interactive transaction — WebSocket Pool, opened and closed inside the handler:

ts
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:

  • Drizzle: pass neon()/Pool into drizzle-orm/neon-http or neon-serverless → ../drizzle-orm/SKILL.md.
  • Prisma: use the @prisma/adapter-neon driver adapter → prisma-orm.
Show full SKILL.md (671 more words)Show less

Branching for dev / preview / CI

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).

SituationDoWhy
Per-developer or per-PR isolated databranch off productionInstant, real prod-shaped data, separate endpoint, auto scale-to-zero → near-free idle.
A genuinely separate product/tenant with its own billing & limitsnew projectBranches share the project's quotas and pooled-connection ceiling.
Throwaway query you can run against stagingsame branchDon't manufacture a branch for a one-off SELECT.

neonctl (alias neon) drives create/connect/teardown:

bash
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/close

Vercel 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.

Autoscaling & scale-to-zero

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:

  • Set a sane min/max CU for the prod branch — not maxed "just in case" (you pay for the max headroom you actually use).
  • Latency-sensitive prod with sparse traffic? Disable scale-to-zero or set min CU > 0 so there's no cold start in p99.
  • Treat the cold start as real: warm the connection on deploy, or accept it on non-prod and account for it in latency SLOs.
  • Keep non-prod branches on scale-to-zero — that's where the near-free economics come from.

Anti-patterns

Anti-patternWhy it bitesDo instead
new Pool(...) at module scope in a serverless functionConnection 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/DDLPgBouncer 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_URLNo 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 ≤21No global WebSocket → the connection silently fails.Set webSocketConstructor = ws on Node ≤21; omit on edge / Node 22+.
Ignoring scale-to-zero in p99 latencyFirst 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 PRsPRs clobber each other's data; no isolation.One branch per PR, deleted on close.
Treating a branch as a backup without testing restoreBranches 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 skillEngine craft is identical to any Postgres; duplicating it drifts.Defer to ../postgresdb/SKILL.md.

Cross-references

  • Engine craft (schema, indexes, EXPLAIN, RLS, zero-downtime DDL): ../postgresdb/SKILL.md.
  • Next.js App Router data layer that calls Neon: ../nextjs/SKILL.md.
  • ORM query APIs over the Neon driver: ../drizzle-orm/SKILL.md, prisma-orm.
  • Deployment targets: ../vercel/SKILL.md, cloudflare, railway. Backups discipline: backups.
  • Other managed DBs (route away): 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

Files

SKILL.md and 4 other files (scripts, references) in skills/neon of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/branching-ci.md
  • scripts/verify.sh

Open the folder on GitHubat commit e3d5b33

Compare with similar skills

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.

Neon compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neon this skillericrisco/rsc-harness167—~3.5kAutomated safety check: PassMIT
Neonneondatabase/agent-skills100—~8.7kAutomated safety check: NotesApache-2.0
Neon Postgresusenotra/notra256—~4.1kAutomated safety check: NotesAGPL-3.0
Neon Postgresneondatabase/agent-skills100—~4.1kAutomated safety check: NotesApache-2.0
Neon Postgressmontlouis/bible-strong1711 repos~2.3kAutomated safety check: NotesGPL-3.0
Neon Postgresdavila7/claude-code-templates32k4 repos~396Automated safety check: PassMIT

Similar skills

  • Neon

    neondatabase/agent-skills

    Official

    Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, and the AI Gateway.

    100 GitHub stars~8.7k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Neon Postgres

    usenotra/notra

    Guides and best practices for working with Lakebase Postgres, the database behind Neon.

    256 GitHub stars~4.1k tokensUpdated today
    DatabasesAuto-check: notes
  • Neon Postgres

    neondatabase/agent-skills

    Official

    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…

    100 GitHub stars~4.1k tokensUpdated yesterday
    DatabasesAuto-check: notes
  • Neon Postgres

    smontlouis/bible-strong

    Guides and best practices for working with Lakebase Postgres, the database behind Neon.

    171 GitHub starsUsed in 1 repo~2.3k tokens
    DatabasesAuto-check: notes
  • Neon Postgres

    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…

    32k GitHub starsUsed in 4 repos~396 tokens
    DatabasesAuto-check passed
  • Official

    General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.

    2.7k GitHub starsUsed in 3 repos~3.6k tokens
    Backend & APIsAuto-check passed

More from ericrisco/rsc-harness

All 227 skills in this repo
  • Ab Testing

    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…

    167 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    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…

    167 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    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…

    167 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    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…

    167 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    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…

    167 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    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.

    167 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Neon

What does Neon do?

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.

When should I use Neon?

Neon fits situations like: you have picked Neon (serverless Postgres) and need to connect correctly from a serverless; wire database branching into dev.

How do I install Neon in Claude Code?

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.

How do I install Neon in Codex?

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.

Can I use Neon 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 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.

What does Neon need to run?

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.

Does Neon access the network?

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.

Is Neon 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Neon use?

Neon 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 Neon use?

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.

What are the alternatives to Neon?

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.

Who maintains Neon?

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.