
Realtime
This connects Claude to Butterbase's realtime WebSocket layer so it can configure live database subscriptions and debug connection issues. The main gotcha is that RLS policies filter every event per user, so if clients connect but receive nothing, it's almost always missing or overly restrictive row-level security, not a broken WebSocket. The skill exposes manage_realtime for enabling tables and inspecting trigger state, plus detailed protocol docs for presence tracking and multiplayer state. Most valuable when you're adding collaborative features or chasing down why events aren't flowing, since the RLS enforcement model is silent by design and trips up everyone at least once.
- GitHub stars
- 532
- last updated
- Jun 11, 2026
Install
$ npx -y skills add butterbase-ai/butterbase-skills --skill realtime --agent claude-codeInstalls into .claude/skills of the current project.
Files
Butterbase Realtime
Live database change notifications over WebSocket, with per-row RLS enforcement. Once a table is enabled, INSERT/UPDATE/DELETE events stream to subscribed clients filtered by the same RLS policies that gate reads.
One tool: manage_realtime with two actions: configure and get.
1. The mental model
Postgres (data plane) Control API Browser
───────────────────── ──────────── ────────
INSERT/UPDATE/DELETE ──trigger──► realtime.changes ──WAL listener─► WebSocket ──► client
│
└── RLS check per (role, user) ──► filter rows
When you configure a table:
- A Postgres trigger is installed → writes every change to
realtime.changes. - A LISTEN connection in
RealtimeManagerreads those changes. - For each connected client, the change is RLS-checked as that user before broadcasting.
- Clients only receive events for rows they could read with a regular SELECT.
2. Prerequisites
Before calling configure, the table must:
Sponsors
Details
- Repository
- github.com/butterbase-ai/butterbase-skills
- Categories
- Backend & APIs, Debugging, Databases
- License
- MIT
- First seen
- Jun 11, 2026