From theclauu
Use for Neon PostgreSQL operations — branches, queries, and database info. Replaces /neon-branch, /neon-info, /neon-query.
npx claudepluginhub artemis-xyz/theclauu --plugin theclauuThis skill uses the workspace's default tool permissions.
Three modes. Pick based on intent:
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Three modes. Pick based on intent:
========================================
Create, list, and manage Neon database branches. Branches are instant copy-on-write snapshots — use them for safe experimentation, pre-migration testing, and disposable dev environments.
Before running any command, discover connection details:
.env in the project root (and .env.local if it exists)DATABASE_URL, NEON_PROD_URL, NEON_DATABASE_URL, POSTGRES_URL, PG_URL, NEON_DEV_URLNEON_PROJECT_ID, NEON_ORG_IDNEON_API_KEYNEON_PROJECT_ID or NEON_ORG_ID is missing, ask the userNEON_API_KEY is found, include --api-key "<API_KEY>" in all neonctl commands. If not found, omit the flag entirely.Store all discovered values and use them directly in commands — never use source .env.
The neonctl CLI supports multiple auth methods. Try them in this order — stop at the first one that works:
With API key (if found in .env):
timeout 10 npx neonctl me --api-key "<API_KEY>"
Without API key:
timeout 10 npx neonctl me
Tell the user auth is needed, then run:
npx neonctl auth
This opens a browser window (60-second timeout). After auth completes, re-run the check from Step 1.
Tell the user:
No valid Neon credentials found. Options:
- Run
npx neonctl authto authenticate via browser- Create an API key at https://console.neon.tech/app/settings/api-keys and add
NEON_API_KEY=<key>to.envAn API key enables fully headless operation (no browser needed).
Project: foxxed
Project ID: morning-bonus-59275905 ($NEON_PROJECT_ID)
Org ID: org-ancient-base-30492340 ($NEON_ORG_ID)
Production branch: production (default, primary)
Development branch: development
All neonctl commands require --project-id and --org-id. Use the values discovered from .env.
In all examples below, include --api-key "<API_KEY>" only if NEON_API_KEY was found in .env. Otherwise omit that flag.
npx neonctl branches list --project-id "<PROJECT_ID>" --org-id "<ORG_ID>"
npx neonctl branches create --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --name "<branch-name>" --output json
Name conventions:
claude/<purpose> — for agent-created branches (e.g., claude/debug-supply-2026-02-12)dev/<feature> — for development worktest/<description> — for testingnpx neonctl branches create --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --name "<branch-name>" --parent "production@2026-02-12T00:00:00Z" --output json
Note: Point-in-time branching is limited by the project's history retention window (currently ~6 hours for foxxed).
npx neonctl connection-string "<branch-name>" --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --pooled --database-name foxxed --role-name neondb_owner
Then use the returned URL to query the branch:
psql "<BRANCH_URL>" -c "SELECT count(*) FROM addresses WHERE is_current = true;"
npx neonctl branches delete "<branch-name>" --project-id "<PROJECT_ID>" --org-id "<ORG_ID>"
Always clean up agent-created branches when done.
When the user asks to manage branches:
.env (and .env.local) with the Read tool. Extract NEON_PROJECT_ID, NEON_ORG_ID, and optionally NEON_API_KEY.source .env, no shell variables)claude/* branch the agent created in this sessionThis workflow uses multiple separate commands. Run each as its own Bash call (do not chain with &&).
Step 1: Create a branch
npx neonctl branches create --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --name "claude/experiment-YYYYMMDD-HHMM" --output json
Step 2: Get connection string
npx neonctl connection-string "claude/experiment-..." --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --pooled --database-name foxxed --role-name neondb_owner
Step 3: Run experimental queries (read-write OK on branches)
psql "<BRANCH_URL>" -c "DELETE FROM label_proposals WHERE ..."
psql "<BRANCH_URL>" -c "UPDATE addresses SET ..."
Step 4: Clean up when done
npx neonctl branches delete "claude/experiment-..." --project-id "<PROJECT_ID>" --org-id "<ORG_ID>"
Neon free tier allows up to 10 branches. Check current branch count before creating new ones. Always delete claude/* branches when analysis is complete.
$ARGUMENTS
========================================
Quick database dashboard for Neon PostgreSQL. Shows connection status, table inventory, database size, and branch overview at a glance.
Before running any command, discover connection details:
.env in the project root (and .env.local if it exists)DATABASE_URL, NEON_PROD_URL, NEON_DATABASE_URL, POSTGRES_URL, PG_URL, NEON_DEV_URLNEON_PROJECT_ID, NEON_ORG_ID, and NEON_API_KEYStore all discovered values and use them directly in commands — never use source .env.
.env (and .env.local) with the Read toolpg_isready -d "<DB_URL>"
psql "<DB_URL>" <<'EOF'
BEGIN TRANSACTION READ ONLY;
-- Database size
SELECT pg_size_pretty(pg_database_size(current_database())) AS database_size;
-- PostgreSQL version
SELECT version();
-- Table inventory: name, row count, total size
SELECT
relname AS table_name,
n_live_tup AS row_count,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM pg_stat_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
-- Active connections
SELECT count(*) AS active_connections FROM pg_stat_activity WHERE state = 'active';
COMMIT;
EOF
Try to list branches. This step requires NEON_PROJECT_ID and NEON_ORG_ID from the .env file. If either is missing, skip this step.
If NEON_API_KEY was found in .env, include the --api-key flag. Otherwise omit it.
With API key:
timeout 10 npx neonctl branches list --project-id "<PROJECT_ID>" --org-id "<ORG_ID>" --api-key "<API_KEY>"
Without API key:
timeout 10 npx neonctl branches list --project-id "<PROJECT_ID>" --org-id "<ORG_ID>"
If the output contains "Awaiting authentication", skip and note "Branch listing: neonctl auth required".
Format the output as a summary:
## Neon Database Dashboard
**Connection:** [OK/FAILED]
**Database size:** [size]
**PostgreSQL version:** [version]
**Active connections:** [count]
### Tables
| Table | Rows | Size |
|-------|------|------|
| ... | ... | ... |
| **Total** | **N** | **size** |
### Branches
| Name | State | Created |
|------|-------|---------|
| ... | ... | ... |
(or "neonctl auth required — run `npx neonctl auth` to enable branch listing")
========================================
Run ad-hoc SQL queries against Neon PostgreSQL databases using psql.
Before running any command, discover the database connection URL:
.env in the project root (and .env.local if it exists)DATABASE_URL, NEON_PROD_URL, NEON_DATABASE_URL, POSTGRES_URL, PG_URL, NEON_DEV_URLWhen the user says "dev database" or "development", look for variables containing DEV (e.g., NEON_DEV_URL, DATABASE_DEV_URL). Otherwise default to the first URL found (typically production).
Store the discovered URL and use it directly in all psql commands — never use source .env.
CRITICAL: All production queries MUST be wrapped in a read-only transaction:
psql "<DB_URL>" -c "BEGIN TRANSACTION READ ONLY; YOUR SQL HERE; COMMIT;"
For multi-line or complex queries, use a heredoc:
psql "<DB_URL>" <<'EOF'
BEGIN TRANSACTION READ ONLY;
SELECT
schemaname,
tablename,
n_live_tup AS row_count
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC
LIMIT 10;
COMMIT;
EOF
For development database (read-write allowed):
psql "<DB_URL>" -c "YOUR SQL HERE;"
--csv - CSV output-x - Expanded/vertical format (one column per line)-t - Tuples only (no headers/footers)-A - Unaligned output (useful with --csv)Examples:
psql "<DB_URL>" --csv -c "BEGIN TRANSACTION READ ONLY; SELECT * FROM addresses WHERE is_current = true LIMIT 10; COMMIT;"
psql "<DB_URL>" -x -c "BEGIN TRANSACTION READ ONLY; SELECT * FROM addresses WHERE is_current = true LIMIT 1; COMMIT;"
IMPORTANT: psql meta-commands (\dt, \d+, etc.) do NOT work with the -c flag when using a connection URL. Use heredoc or SQL equivalents instead.
List all tables with sizes:
psql "<DB_URL>" -c "BEGIN TRANSACTION READ ONLY;
SELECT
relname AS table_name,
n_live_tup AS row_count,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM pg_stat_user_tables
ORDER BY pg_total_relation_size(relid) DESC;
COMMIT;"
Describe a table (columns, types, nullability):
psql "<DB_URL>" -c "BEGIN TRANSACTION READ ONLY;
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'addresses'
ORDER BY ordinal_position;
COMMIT;"
List indexes on a table:
psql "<DB_URL>" -c "BEGIN TRANSACTION READ ONLY;
SELECT indexname, indexdef
FROM pg_indexes
WHERE tablename = 'addresses';
COMMIT;"
Sample data from a table:
psql "<DB_URL>" -c "BEGIN TRANSACTION READ ONLY; SELECT * FROM addresses WHERE is_current = true LIMIT 5; COMMIT;"
If you need psql meta-commands (\dt+, \d+ tablename, etc.), use heredoc:
psql "<DB_URL>" <<'EOF'
\dt+
EOF
When the user asks to query Neon:
.env (and .env.local if it exists) with the Read tool. Look for DATABASE_URL, NEON_PROD_URL, NEON_DATABASE_URL, POSTGRES_URL, PG_URL, or NEON_DEV_URL. If none found, ask the user.BEGIN TRANSACTION READ ONLY; ... COMMIT;\dt, \d+) — meta-commands don't work with -c + URLpsql command with the URL inlined directly (no source .env, no shell variables)$ARGUMENTS
========================================
Consolidated from legacy claudefather skills. Pick the mode based on intent.