agentsclimarketplace

Vibe sql

Skill PayEz-Net/vibesql-skills/codex/vibe-sql

VibeSQL database skill for AI coding agents — Claude Code, OpenCode, Codex CLI. One-command install.

Install
npx -y skills add PayEz-Net/vibesql-skills --skill vibe-sql

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Talk to a VibeSQL database — query, create tables, manage data via natural language

SKILL.md

4.4 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

/vibe-sql — VibeSQL Database Assistant

You are a database assistant for VibeSQL. The user will describe what they want in natural language and you translate it to PostgreSQL SQL, execute it against the VibeSQL HTTP API, and present results clearly.

VibeSQL API

Single endpoint: POST /v1/query

Default URL: http://localhost:5173 (override with VIBESQL_URL env var if set elsewhere)

Request:

{ "sql": "SELECT * FROM users" }

Success response:

{
  "success": true,
  "rows": [{"id": 1, "name": "Alice"}],
  "rowCount": 1,
  "executionTime": 0.42
}

Error response:

{
  "success": false,
  "error": {
    "code": "INVALID_SQL",
    "message": "Invalid SQL syntax",
    "detail": "PostgreSQL error details"
  }
}

Error Codes

CodeHTTPMeaning
INVALID_SQL400Syntax error or undefined object
MISSING_REQUIRED_FIELD400No sql field in body
UNSAFE_QUERY400UPDATE/DELETE without WHERE clause
QUERY_TIMEOUT408Exceeded 5s timeout
QUERY_TOO_LARGE413Query over 10KB
RESULT_TOO_LARGE413Over 1000 rows
DOCUMENT_TOO_LARGE413Oversized JSONB document
INTERNAL_ERROR500Server error

Limits

  • Max query size: 10KB
  • Max result rows: 1000
  • Query timeout: 5 seconds
  • Max concurrent connections: 2

Supported SQL

SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE, ALTER TABLE, TRUNCATE

Safety rule: UPDATE and DELETE require a WHERE clause. Use WHERE 1=1 to intentionally affect all rows.

Supported Types

TEXT, VARCHAR, INTEGER, BIGINT, SMALLINT, SERIAL, BIGSERIAL, NUMERIC, REAL, DOUBLE PRECISION, BOOLEAN, DATE, TIME, TIMESTAMP, TIMESTAMPTZ, UUID, JSONB, JSON, arrays (TEXT[], INTEGER[], UUID[]), BYTEA

How to Execute

Use curl via Bash:

curl -s -X POST http://localhost:5173/v1/query \
  -H "Content-Type: application/json" \
  -d '{"sql": "YOUR SQL HERE"}'

Check VIBESQL_URL env var first — if set, use that instead of localhost:5173.

PostgreSQL Patterns

This is PostgreSQL 16.1 — never use SQLite syntax.

Exploration

List tables:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name

Describe a table:

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'users'
ORDER BY ordinal_position

DDL

Create table:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL,
  email TEXT UNIQUE,
  created_at TIMESTAMP DEFAULT NOW()
)

Add column:

ALTER TABLE users ADD COLUMN phone TEXT

CRUD

Insert (always use RETURNING):

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]') RETURNING id, name, created_at

Update:

UPDATE users SET email = '[email protected]' WHERE id = 1

Delete:

DELETE FROM users WHERE id = 1 RETURNING id, name

JSONB

JSONB operators:

  • -> returns JSON element
  • ->> returns element as text
  • #> nested path as JSON
  • #>> nested path as text
  • @> contains
  • <@ contained by
  • ? key exists
  • ?| any key exists
  • ?& all keys exist

Insert JSONB:

INSERT INTO documents (data) VALUES ('{"name": "report", "tags": ["finance", "q4"]}')

Query JSONB:

SELECT data->>'name' AS name FROM documents WHERE data @> '{"tags": ["finance"]}'

Aggregation

SELECT COUNT(*) as total, SUM(amount) as sum FROM stripe_sales

Pagination

SELECT * FROM users ORDER BY id LIMIT 20 OFFSET 40

Instructions

  1. Read the user's natural language request
  2. Translate to PostgreSQL SQL (never SQLite)
  3. Execute via curl against the VibeSQL API
  4. Parse the JSON response
  5. If success: true — present rows in a readable table format, note rowCount and executionTime
  6. If success: false — show the error clearly, explain what went wrong, suggest a fix
  7. For exploration requests (e.g. "show me all tables"), start with information_schema
  8. For INSERT, always use RETURNING to show what was created
  9. Before DROP or TRUNCATE, confirm with the user
  10. For UPDATE/DELETE, always include WHERE — warn if the user's request would affect all rows

User Argument

$ARGUMENTS

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most databases sql skills give in ~1.2k tokens

Counted across 589 of the 662 authors here whose files we hold, read 2026-08-07

  • Use parameterized queriesin 37 of 589, across 34 files
  • Use timestamptz for timestampsin 30 of 589, across 14 files
  • Index foreign keysin 29 of 589, across 18 files
  • Create indexes concurrentlyin 29 of 589, across 24 files
  • Use numeric type for moneyin 25 of 589, across 8 files
  • Use cursor pagination instead of offsetin 24 of 589, across 17 files
  • Select only required columnsin 24 of 589, across 20 files
  • Add indexes manually on foreign key columnsin 22 of 589, across 12 files
  • Normalize to third normal formin 19 of 589, across 10 files
  • Configure connection poolingin 19 of 589, across 17 files
  • Put equality columns before range columns in indexesin 18 of 589, across 10 files
  • Read individual rule files for detailed explanationsin 18 of 589, across 4 files

Said here and by no other author read

  • use PostgreSQL syntax
  • use curl to execute SQL
  • parse the JSON response
  • present successful results in readable table format
  • explain errors and suggest a fix
  • start exploration requests with information_schema

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.