@e9n/pi-supabase

Supabase integration for pi — read-only queries, table subscriptions, and pi-channels notifications

Package details

extension

Install @e9n/pi-supabase from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@e9n/pi-supabase
Package
@e9n/pi-supabase
Version
0.1.0
Published
Feb 17, 2026
Downloads
15/mo · 7/wk
Author
e9n
License
MIT
Types
extension
Size
34.2 KB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@e9n/pi-supabase

Supabase integration for pi — query tables, describe schemas, call RPC functions, and stream realtime change notifications.

Features

  • supabase tool — query, describe, count, rpc, and status actions with filter support
  • Realtime subscriptions — subscribe to table change events, forwarded as pi-channels notifications
  • Dual key support — anon key or service role key, switchable per project
  • Optional query audit log — persistent log via pi-kysely

Settings

Add to ~/.pi/agent/settings.json or .pi/settings.json:

{
  "pi-supabase": {
    "url": "https://xxx.supabase.co",
    "anonKey": "eyJ...",
    "serviceRoleKey": "eyJ...",
    "useServiceRole": false,
    "useKysely": false,
    "notifications": {
      "enabled": false,
      "route": "ops",
      "tables": ["users", "orders"]
    },
    "rpc": {
      "allowList": ["get_dashboard_stats"]
    }
  }
}
Setting Type Default Description
url string Supabase project URL (required)
anonKey string Supabase anon/public key
serviceRoleKey string Service role key for elevated access
useServiceRole boolean false Use service role key instead of anon key
useKysely boolean false Log queries via pi-kysely
notifications.enabled boolean false Enable realtime table change notifications
notifications.route string "ops" pi-channels route for notifications
notifications.tables string[] [] Tables to subscribe to
rpc.allowList string[] [] Allowed RPC function names (empty = all blocked)

Tool: supabase

Action Description
query Select rows with filters, ordering, and pagination
describe Show column names and types for a table
tables List all tables in the public schema
count Count rows matching optional filters
rpc Call a Postgres function (must be on allow-list)
status Show connection status and current config

Filter operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in

Install

pi install npm:@e9n/pi-supabase

License

MIT