skills$openclaw/supabase
mvanhorn5.0k

by mvanhorn

supabase – OpenClaw Skill

supabase is an OpenClaw Skills integration for coding workflows. Query Supabase projects - count users, list signups, check stats. Use for database queries and user analytics.

5.0k stars8.3k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namesupabase
descriptionQuery Supabase projects - count users, list signups, check stats. Use for database queries and user analytics. OpenClaw Skills integration.
ownermvanhorn
repositorymvanhorn/supabase-users
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @mvanhorn/supabase-users
last updatedFeb 7, 2026

Maintainer

mvanhorn

mvanhorn

Maintains supabase in the OpenClaw Skills directory.

View GitHub profile
File Explorer
4 files
.
scripts
supabase.py
13.1 KB
_meta.json
282 B
SKILL.md
4.4 KB
SKILL.md

name: supabase description: Query Supabase projects - count users, list signups, check stats. Use for database queries and user analytics. triggers:

  • supabase
  • database
  • how many users
  • new signups
  • user count metadata: clawdbot: emoji: "⚡"

Supabase ⚡

Query your Supabase projects directly from chat.

Setup

1. Get your credentials

Go to Supabase Dashboard → Project Settings → API

You'll see two tabs:

  • "Publishable and secret API keys" - New format (limited functionality)
  • "Legacy anon, service_role API keys" - JWT format (full functionality)

⚠️ Use the Legacy JWT key for full access!

The service_role JWT key (starts with eyJ...) gives full admin access including:

  • Listing users with details
  • Counting signups
  • Accessing auth.users

The new sb_secret_... keys have limited functionality and can't access the Admin API.

2. Find your keys

  1. Go to: Project Settings → API
  2. Click the "Legacy anon, service_role API keys" tab
  3. Find service_role (marked with red "secret" badge)
  4. Click Reveal and copy the eyJ... token

Direct link: https://supabase.com/dashboard/project/YOUR_PROJECT_REF/settings/api

3. Configure

Option A: Interactive setup

python3 {baseDir}/scripts/supabase.py auth

Option B: Manual config Create ~/.supabase_config.json:

{
  "url": "https://xxxxx.supabase.co",
  "service_key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Option C: Environment variables

export SUPABASE_URL="https://xxxxx.supabase.co"
export SUPABASE_SERVICE_KEY="eyJhbG..."

Commands

User Analytics

# Count total users
python3 {baseDir}/scripts/supabase.py users

# Count new users (24h)
python3 {baseDir}/scripts/supabase.py users-today

# Count new users (7 days)  
python3 {baseDir}/scripts/supabase.py users-week

# List users with details (name, email, provider, signup date)
python3 {baseDir}/scripts/supabase.py list-users

# List new users from last 24h
python3 {baseDir}/scripts/supabase.py list-users-today

# Limit results
python3 {baseDir}/scripts/supabase.py list-users --limit 5

Project Info

# Show project info and key type
python3 {baseDir}/scripts/supabase.py info

# List tables exposed via REST API
python3 {baseDir}/scripts/supabase.py tables

JSON Output

python3 {baseDir}/scripts/supabase.py list-users --json

Key Types Explained

Key TypeFormatUser ListingUser CountREST Tables
JWT service_roleeyJ...✅ Yes✅ Yes✅ Yes
New secretsb_secret_...❌ No❌ No✅ Yes

Recommendation: Always use the JWT service_role key for Clawdbot integration.

Daily Reports

Set up automated daily user reports via Clawdbot cron.

Example: Daily 5 PM Report

Ask Clawdbot:

Send me a report of how many new users signed up at 5 PM every day, 
show the last 5 signups with their names

This creates a cron job like:

{
  "name": "Daily Supabase User Report",
  "schedule": {
    "kind": "cron",
    "expr": "0 17 * * *",
    "tz": "America/Los_Angeles"
  },
  "payload": {
    "message": "Supabase daily report: Count new user signups in the last 24 hours, and list the 5 most recent signups with their name and email."
  }
}

Sample Report Output

📊 Supabase Daily Report

New signups (last 24h): 2

Last 5 signups:
• Jane Smith <jane@example.com> (google) - 2026-01-25
• Alex Johnson <alex.j@company.com> (google) - 2026-01-25
• Sam Wilson <sam@startup.io> (email) - 2026-01-24
• Chris Lee <chris.lee@email.com> (google) - 2026-01-23
• Jordan Taylor <jordan@acme.co> (github) - 2026-01-22

Troubleshooting

"list-users requires a JWT service_role key"

You're using an sb_secret_... key. Get the JWT key from: Project Settings → API → Legacy tab → service_role → Reveal

"No API key found in request"

The new sb_secret_ keys don't work with all endpoints. Switch to the JWT key.

Keys not showing

Make sure you're on the "Legacy anon, service_role API keys" tab, not the new API keys tab.

Security Note

The service_role key has full admin access to your database. Keep it secure:

  • Never commit to git
  • Don't expose in client-side code
  • Only use on trusted machines

The config file is automatically set to mode 600 (owner read/write only).

README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

The `service_role` key has **full admin access** to your database. Keep it secure: - Never commit to git - Don't expose in client-side code - Only use on trusted machines The config file is automatically set to mode 600 (owner read/write only).

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install supabase?

Run openclaw add @mvanhorn/supabase-users in your terminal. This installs supabase into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/mvanhorn/supabase-users. Review commits and README documentation before installing.