Antigravity-awesome-skills claimable-postgres
Provision instant temporary Postgres databases via Claimable Postgres by Neon (pg.new). No login or credit card required. Use for quick Postgres environments and throwaway DATABASE_URL for prototyping.
git clone https://github.com/sickn33/antigravity-awesome-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills/skills/claimable-postgres" ~/.claude/skills/sickn33-antigravity-awesome-skills-claimable-postgres-425d10 && rm -rf "$T"
plugins/antigravity-awesome-skills/skills/claimable-postgres/SKILL.md- makes HTTP requests (curl)
- references .env files
Claimable Postgres
Instant Postgres databases for local development, demos, prototyping, and test environments. No account required. Databases expire after 72 hours unless claimed to a Neon account.
Quick Start
curl -s -X POST "https://pg.new/api/v1/database" \ -H "Content-Type: application/json" \ -d '{"ref": "agent-skills"}'
Parse
connection_string and claim_url from the JSON response. Write connection_string to the project's .env as DATABASE_URL.
For other methods (CLI, SDK, Vite plugin), see Which Method? below.
Which Method?
- REST API: Returns structured JSON. No runtime dependency beyond
. Preferred when the agent needs predictable output and error handling.curl - CLI (
): Provisions and writesnpx get-db@latest --yes
in one command. Convenient when Node.js is available and the user wants a simple setup..env - SDK (
): Scripts or programmatic provisioning in Node.js.get-db/sdk - Vite plugin (
): Auto-provisions onvite-plugin-db
ifvite dev
is missing. Use when the user has a Vite project.DATABASE_URL - Browser: User cannot run CLI or API. Direct to https://pg.new.
REST API
Base URL:
https://pg.new/api/v1
Create a database
curl -s -X POST "https://pg.new/api/v1/database" \ -H "Content-Type: application/json" \ -d '{"ref": "agent-skills"}'
| Parameter | Required | Description |
|---|---|---|
| Yes | Tracking tag that identifies who provisioned the database. Use when provisioning through this skill. |
| No | Enable logical replication (default: false, cannot be disabled once enabled) |
The
connection_string returned by the API is a pooled connection URL. For a direct (non-pooled) connection (e.g. Prisma migrations), remove -pooler from the hostname. The CLI writes both pooled and direct URLs automatically.
Response:
{ "id": "019beb39-37fb-709d-87ac-7ad6198b89f7", "status": "UNCLAIMED", "neon_project_id": "gentle-scene-06438508", "connection_string": "postgresql://...", "claim_url": "https://pg.new/claim/019beb39-...", "expires_at": "2026-01-26T14:19:14.580Z", "created_at": "2026-01-23T14:19:14.580Z", "updated_at": "2026-01-23T14:19:14.580Z" }
Check status
curl -s "https://pg.new/api/v1/database/{id}"
Returns the same response shape. Status transitions:
UNCLAIMED -> CLAIMING -> CLAIMED. After the database is claimed, connection_string returns null.
Error responses
| Condition | HTTP | Message |
|---|---|---|
Missing or empty | 400 | |
| Invalid database ID | 400 | |
| Invalid JSON body | 500 | |
CLI
npx get-db@latest --yes
Provisions a database and writes the connection string to
.env in one step. Always use @latest and --yes (skips interactive prompts that would stall the agent).
Pre-run Check
Check if
DATABASE_URL (or the chosen key) already exists in the target .env. The CLI exits without provisioning if it finds the key.
If the key exists, offer the user three options:
- Remove or comment out the existing line, then rerun.
- Use
to write to a different file (e.g.--env
).--env .env.local - Use
to write under a different variable name.--key
Get confirmation before proceeding.
Options
| Option | Alias | Description | Default |
|---|---|---|---|
| | Skip prompts, use defaults | |
| | .env file path | |
| | Connection string env var key | |
| | Prefix for generated public env vars | |
| | Path to seed SQL file | none |
| | Enable logical replication | |
| | Referrer id (use when provisioning through this skill) | none |
Alternative package managers:
yarn dlx get-db@latest, pnpm dlx get-db@latest, bunx get-db@latest, deno run -A get-db@latest.
Output
The CLI writes to the target
.env:
DATABASE_URL=postgresql://... # pooled (use for application queries) DATABASE_URL_DIRECT=postgresql://... # direct (use for migrations, e.g. Prisma) PUBLIC_POSTGRES_CLAIM_URL=https://pg.new/claim/...
SDK
Use for scripts and programmatic provisioning flows.
import { instantPostgres } from 'get-db'; const { databaseUrl, databaseUrlDirect, claimUrl, claimExpiresAt } = await instantPostgres({ referrer: 'agent-skills', seed: { type: 'sql-script', path: './init.sql' }, });
Returns
databaseUrl (pooled), databaseUrlDirect (direct, for migrations), claimUrl, and claimExpiresAt (Date object). The referrer parameter is required.
Vite Plugin
For Vite projects,
vite-plugin-db auto-provisions a database on vite dev if DATABASE_URL is missing. Install with npm install -D vite-plugin-db. See the Claimable Postgres docs for configuration.
Agent Workflow
API path
- Confirm intent: If the request is ambiguous, confirm the user wants a temporary, no-signup database. Skip this if they explicitly asked for a quick or temporary database.
- Provision: POST to
withhttps://pg.new/api/v1/database
.{"ref": "agent-skills"} - Parse response: Extract
,connection_string
, andclaim_url
from the JSON response.expires_at - Write .env: Write
to the project'sDATABASE_URL=<connection_string>
(or the user's preferred file and key). Do not overwrite an existing key without confirmation..env - Seed (if needed): If the user has a seed SQL file, run it against the new database:
psql "$DATABASE_URL" -f seed.sql - Report: Tell the user where the connection string was written, which key was used, and share the claim URL. Remind them: the database works now; claim within 72 hours to keep it permanently.
- Optional: Offer a quick connection test (e.g.
).SELECT 1
CLI path
- Check .env: Check the target
for an existing.env
(or chosen key). If present, do not run. Offer remove,DATABASE_URL
, or--env
and get confirmation.--key - Confirm intent: If the request is ambiguous, confirm the user wants a temporary, no-signup database. Skip this if they explicitly asked for a quick or temporary database.
- Gather options: Use defaults unless context suggests otherwise (e.g., user mentions a custom env file, seed SQL, or logical replication).
- Run: Execute with
plus the confirmed options. Always use@latest --yes
to avoid stale cached versions.@latest
skips interactive prompts that would stall the agent.--yesnpx get-db@latest --yes --ref agent-skills --env .env.local --seed ./schema.sql - Verify: Confirm the connection string was written to the intended file.
- Report: Tell the user where the connection string was written, which key was used, and that a claim URL is in the env file. Remind them: the database works now; claim within 72 hours to keep it permanently.
- Optional: Offer a quick connection test (e.g.
).SELECT 1
Output Checklist
Always report:
- Where the connection string was written (e.g.
).env - Which variable key was used (
or custom key)DATABASE_URL - The claim URL (from
or API response).env - That unclaimed databases are temporary (72 hours)
Claiming
Claiming is optional. The database works immediately without it. To optionally claim, the user opens the claim URL in a browser, where they sign in or create a Neon account to claim the database.
- API/SDK: Give the user the
from the create response.claim_url - CLI:
reads the claim URL fromnpx get-db@latest claim
and opens the browser automatically..env
Users cannot claim into Vercel-linked orgs; they must choose another Neon org.
Defaults and Limits
| Parameter | Value |
|---|---|
| Provider | AWS |
| Region | us-east-2 |
| Postgres | 17 |
Region cannot be changed for claimable databases. Unclaimed databases have stricter quotas. Claiming resets limits to free plan defaults.
| Unclaimed | Claimed (Free plan) | |
|---|---|---|
| Storage | 100 MB | 512 MB |
| Transfer | 1 GB | ~5 GB |
| Branches | No | Yes |
| Expiration | 72 hours | None |
Auto-provisioning
If the agent needs a database to fulfill a task (e.g. "build me a todo app with a real database") and the user has not provided a connection string, provision one via the API and inform the user. Include the claim URL so they can keep it.
Safety and UX Notes
- Do not overwrite existing env vars. Check first, then use
or--env
(CLI) or skip writing (API) to avoid conflicts.--key - Ask before running destructive seed SQL (
,DROP
, massTRUNCATE
).DELETE - For production workloads, recommend standard Neon provisioning instead of temporary claimable databases.
- If users need long-term persistence, instruct them to open the claim URL right away.
- After writing credentials to an .env file, check that it's covered by .gitignore. If not, warn the user. Do not modify
without confirmation..gitignore
When to Use
Use this skill when tackling tasks related to its primary domain or functionality as described above.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.