一键导入
supabase
Run SQL queries, store data, and do vector/similarity search on Supabase. Use for "save this to the database", "search similar items", or "create a table".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run SQL queries, store data, and do vector/similarity search on Supabase. Use for "save this to the database", "search similar items", or "create a table".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Contacts, Tasks, People, Groups, Keep — all via gog CLI.
Check stock prices, crypto quotes, option chains, and market history via Alpaca.
Create, edit, delete, and search calendar events in Apple Calendar on macOS. Use for "add a meeting", "what's on my calendar", or "move my 3pm".
Add, edit, complete, and list reminders on macOS via remindctl. Use for "remind me to…", "show my todos", or "mark X done".
Track live flight status, delays, gates, and position. Use for "track AA100", "is my flight on time?", or "where is BA123 right now?".
Fetch airport weather (METAR, TAF, PIREPs) for flight planning and briefings. Use for "weather at KJFK", "TAF for EGLL", or pre-flight weather checks.
| name | supabase |
| description | Run SQL queries, store data, and do vector/similarity search on Supabase. Use for "save this to the database", "search similar items", or "create a table". |
| metadata | {"homepage":"https://supabase.com/"} |
Interact with Supabase projects: queries, CRUD, vector search, and table management.
# Required
export SUPABASE_URL="https://yourproject.supabase.co"
export SUPABASE_SERVICE_KEY="eyJhbGciOiJIUzI1NiIs..."
# Optional: for management API
export SUPABASE_ACCESS_TOKEN="sbp_xxxxx"
# SQL query
{baseDir}/supabase.sh query "SELECT * FROM users LIMIT 5"
# Insert data
{baseDir}/supabase.sh insert users '{"name": "John", "email": "john@example.com"}'
# Select with filters
{baseDir}/supabase.sh select users --eq "status:active" --limit 10
# Update
{baseDir}/supabase.sh update users '{"status": "inactive"}' --eq "id:123"
# Delete
{baseDir}/supabase.sh delete users --eq "id:123"
# Vector similarity search
{baseDir}/supabase.sh vector-search documents "search query" --match-fn match_documents --limit 5
# List tables
{baseDir}/supabase.sh tables
# Describe table
{baseDir}/supabase.sh describe users
{baseDir}/supabase.sh query "<SQL>"
# Examples
{baseDir}/supabase.sh query "SELECT COUNT(*) FROM users"
{baseDir}/supabase.sh query "CREATE TABLE items (id serial primary key, name text)"
{baseDir}/supabase.sh query "SELECT * FROM users WHERE created_at > '2024-01-01'"
{baseDir}/supabase.sh select <table> [options]
Options:
--columns <cols> Comma-separated columns (default: *)
--eq <col:val> Equal filter (can use multiple)
--neq <col:val> Not equal filter
--gt <col:val> Greater than
--lt <col:val> Less than
--like <col:val> Pattern match (use % for wildcard)
--limit <n> Limit results
--offset <n> Offset results
--order <col> Order by column
--desc Descending order
# Examples
{baseDir}/supabase.sh select users --eq "status:active" --limit 10
{baseDir}/supabase.sh select posts --columns "id,title,created_at" --order created_at --desc
{baseDir}/supabase.sh select products --gt "price:100" --lt "price:500"
{baseDir}/supabase.sh insert <table> '<json>'
# Single row
{baseDir}/supabase.sh insert users '{"name": "Alice", "email": "alice@test.com"}'
# Multiple rows
{baseDir}/supabase.sh insert users '[{"name": "Bob"}, {"name": "Carol"}]'
{baseDir}/supabase.sh update <table> '<json>' --eq <col:val>
# Example
{baseDir}/supabase.sh update users '{"status": "inactive"}' --eq "id:123"
{baseDir}/supabase.sh update posts '{"published": true}' --eq "author_id:5"
{baseDir}/supabase.sh upsert <table> '<json>'
# Example (requires unique constraint)
{baseDir}/supabase.sh upsert users '{"id": 1, "name": "Updated Name"}'
{baseDir}/supabase.sh delete <table> --eq <col:val>
# Example
{baseDir}/supabase.sh delete sessions --lt "expires_at:2024-01-01"
{baseDir}/supabase.sh vector-search <table> "<query>" [options]
Options:
--match-fn <name> RPC function name (default: match_<table>)
--limit <n> Number of results (default: 5)
--threshold <n> Similarity threshold 0-1 (default: 0.5)
--embedding-model <m> Model for query embedding (default: uses OpenAI)
# Example
{baseDir}/supabase.sh vector-search documents "How to set up authentication" --limit 10
# Requires a match function like:
# CREATE FUNCTION match_documents(query_embedding vector(1536), match_threshold float, match_count int)
{baseDir}/supabase.sh tables
{baseDir}/supabase.sh describe <table>
{baseDir}/supabase.sh rpc <function_name> '<json_params>'
# Example
{baseDir}/supabase.sh rpc get_user_stats '{"user_id": 123}'
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE documents (
id bigserial PRIMARY KEY,
content text,
metadata jsonb,
embedding vector(1536)
);
CREATE OR REPLACE FUNCTION match_documents(
query_embedding vector(1536),
match_threshold float DEFAULT 0.5,
match_count int DEFAULT 5
)
RETURNS TABLE (
id bigint,
content text,
metadata jsonb,
similarity float
)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
documents.id,
documents.content,
documents.metadata,
1 - (documents.embedding <=> query_embedding) AS similarity
FROM documents
WHERE 1 - (documents.embedding <=> query_embedding) > match_threshold
ORDER BY documents.embedding <=> query_embedding
LIMIT match_count;
END;
$$;
CREATE INDEX ON documents
USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);
| Variable | Required | Description |
|---|---|---|
| SUPABASE_URL | Yes | Project URL (https://xxx.supabase.co) |
| SUPABASE_SERVICE_KEY | Yes | Service role key (full access) |
| SUPABASE_ANON_KEY | No | Anon key (restricted access) |
| SUPABASE_ACCESS_TOKEN | No | Management API token |
| OPENAI_API_KEY | No | For generating embeddings |