Read and write a Supabase Postgres database over PostgREST: list tables, query, insert, update, and delete rows. Trigger phrases: supabase, supabase table, query supabase.
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill supabase
Read and write the user's Supabase project database through PostgREST: list tables, query rows, and insert/update/delete rows. Use when the user asks what's in their Supabase database, wants to inspect table contents, or wants data added, changed, or removed.
All commands go through bin/supabase.py. Every command takes the global --project-ref (the 20-character ref in the project URL https://<ref>.supabase.co):
bin/supabase.py --project-ref abcdefghijklmnopqrst tables
bin/supabase.py --project-ref abcdefghijklmnopqrst query --table profiles --limit 20
# Writes need an exact --confirm string (the CLI prints the required string on refusal)
bin/supabase.py --project-ref abcdefghijklmnopqrst insert --table profiles \
--row '{"name":"Ada","email":"[email protected]"}' --confirm 'insert 1 row(s) into profiles'
bin/supabase.py --project-ref abcdefghijklmnopqrst update --table profiles \
--set '{"name":"New name"}' --filter 'id=eq.123' --confirm 'update rows in profiles where id=eq.123'
bin/supabase.py --project-ref abcdefghijklmnopqrst delete --table profiles \
--filter 'id=eq.123' --confirm 'delete rows in profiles where id=eq.123'
update and delete refuse to run without at least one equality (eq) filter (--filter 'id=eq.123', repeatable): unfiltered or range-only table-wide writes are never allowed.
supabase (credential is collected as custom.supabase)credentials.request_api_access)<ref>.supabase.co (per project ref)bin/supabase.py --project-ref <ref> tables (must return table names)insert, update, delete) need an exact --confirm string echoed by the CLI on every call; the CLI prints the required string when it refuses.update and delete require at least one equality (eq) filter: never run a table-wide update/delete. Filters use PostgREST syntax COLUMN=op.value (eq, neq, gt, gte, lt, lte, like, ilike, is, in).bin/supabase.py). Do not print, log, or transmit the key value.🧪 Draft: written from Supabase's public PostgREST docs (including the write endpoints); not yet live-tested end-to-end.
Take anil-matcha/supabase from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.