This skill should be used when user asks to "query Supabase", "list Supabase tables", "get Supabase schema", "search Supabase records", "check Supabase database", "Supabase auth", "Supabase authentication", "RLS policy", "row level security", "Supabase foreign key", "table relationships", "Supabase join", "Supabase filter", "Supabase pagination", or needs guidance on Supabase database patterns, auth flows, RLS policies, or query best practices.
Provides Supabase database exploration tools and guidance on authentication, Row Level Security policies, table relationships, and query patterns. Use when users request to query Supabase, list tables, get schemas, search records, or need help with RLS, auth flows, or database best practices.
/plugin marketplace add fcakyon/claude-codex-settings/plugin install supabase-tools@claude-settingsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/auth.mdreferences/query-patterns.mdreferences/relationships.mdreferences/rls.mdPatterns for working with Supabase databases including Auth, Row Level Security, table relationships, and query best practices.
Available tools for database exploration:
mcp__supabase__list_tables - List all tables in the databasemcp__supabase__get_table_schema - Get schema for a specific tablemcp__supabase__execute_sql - Run read-only SQL queriesWorkflow:
list_tables to understand database structureget_table_schema to inspect columns and typesexecute_sql for custom queries (read-only)(select auth.uid()) in RLS policies for performanceTO authenticated in policieson delete cascade for foreign keys to auth.users.select('id, name') not .select('*')auth.uid() directly in policies (use (select auth.uid()))| Filter | JavaScript | Python |
|---|---|---|
| Equals | .eq('col', val) | .eq("col", val) |
| Not equals | .neq('col', val) | .neq("col", val) |
| Greater than | .gt('col', val) | .gt("col", val) |
| Greater or equal | .gte('col', val) | .gte("col", val) |
| Less than | .lt('col', val) | .lt("col", val) |
| Less or equal | .lte('col', val) | .lte("col", val) |
| Pattern match | .ilike('col', '%val%') | .ilike("col", "%val%") |
| In list | .in('col', [a,b]) | .in_("col", [a,b]) |
| Is null | .is('col', null) | .is_("col", "null") |
| OR | .or('a.eq.1,b.eq.2') | .or_("a.eq.1,b.eq.2") |
| Table | Key Columns |
|---|---|
auth.users | id, email, phone, created_at, last_sign_in_at, raw_user_meta_data |
auth.sessions | id, user_id, created_at, updated_at |
auth.identities | id, user_id, provider, identity_data |
create policy "policy_name" on table_name
to authenticated -- or anon, or specific role
for select -- select, insert, update, delete, or all
using ( (select auth.uid()) = user_id )
with check ( (select auth.uid()) = user_id ); -- for insert/update
For detailed patterns and code examples, consult:
references/auth.md - Authentication with JS/Python SDK, user profilesreferences/rls.md - Row Level Security policies and performance tipsreferences/relationships.md - Table relationships and nested queriesreferences/query-patterns.md - Filtering, pagination, counting, indexesUse when working with Payload CMS projects (payload.config.ts, collections, fields, hooks, access control, Payload API). Use when debugging validation errors, security issues, relationship queries, transactions, or hook behavior.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.