Supabase
The robomotion supabase CLI connects to Supabase projects for database and storage operations. It queries and modifies table data with filters, manages files in Supabase storage buckets, and calls server-side remote procedure calls (RPCs).
When to use
- Select, insert, update, or delete rows in Supabase tables with filters
- Upload, download, and manage files in Supabase storage
- Call remote procedure calls (RPCs) on Supabase
- Manage Supabase project connections
Prerequisites
robomotionCLI installed- Package installed:
robomotion install supabase - Supabase project URL and API key configured via Robomotion vault
IMPORTANT: Session Mode Required for Multi-Step Operations
Each CLI command runs as a separate process — connection IDs from connect do NOT persist across calls.
You MUST use --session on connect and pass --session-id to all subsequent commands.
Workflow
- Install (once):
robomotion install supabase - Connect with session:
robomotion supabase supabase_connect --session --output json # → {"outClientId":"<client-id>","session_id":"<session-id>"} - Use the returned
client-idandsession-idin all subsequent commands:robomotion supabase supabase_select --client-id "<client-id>" --table <table> --columns <cols> --session-id "<session-id>" --output json - Disconnect when done:
robomotion supabase supabase_disconnect --client-id "<client-id>" --session-id "<session-id>" --output json
Always append --output json to get structured JSON results.
Commands Reference
robomotion supabase supabase_connect --project-url --session --output jsonConnects to Supabase and returns a client ID for subsequent operationsrobomotion supabase supabase_disconnect --client-id --session-id "<session-id>" --output jsonDisconnects from Supabase and releases the clientrobomotion supabase supabase_insert --client-id --table --data [--project-url] --session-id "<session-id>" --output jsonInserts a new row into a Supabase tablerobomotion supabase supabase_select --client-id --table [--project-url] [--columns] [--filter] [--order-by] [--limit] [--offset] --session-id "<session-id>" --output jsonQueries rows from a Supabase tablerobomotion supabase supabase_update --client-id --table --filter --data [--project-url] --session-id "<session-id>" --output jsonUpdates rows in a Supabase tablerobomotion supabase supabase_delete --client-id --table --filter [--project-url] --session-id "<session-id>" --output jsonDeletes rows from a Supabase tablerobomotion supabase supabase_upsert --client-id --table --data [--project-url] [--on-conflict] --session-id "<session-id>" --output jsonInserts a row or updates it if it already exists (based on primary key or unique constraint)robomotion supabase supabase_storage_upload --client-id --bucket --path --local-file-path --base-64-data [--project-url] [--content-type] --session-id "<session-id>" --output jsonUploads a file to Supabase Storagerobomotion supabase supabase_storage_download --client-id --bucket --path --save-to-path [--project-url] --session-id "<session-id>" --output jsonDownloads a file from Supabase Storage and saves it to diskrobomotion supabase supabase_storage_list --client-id --bucket [--project-url] [--prefix] [--limit] [--offset] --session-id "<session-id>" --output jsonLists files in a Supabase Storage bucketrobomotion supabase supabase_storage_delete --client-id --bucket --file-paths [--project-url] --session-id "<session-id>" --output jsonDeletes one or more files from Supabase Storagerobomotion supabase supabase_rpc --client-id --function-name --parameters [--project-url] --session-id "<session-id>" --output jsonCalls a PostgreSQL function (stored procedure) in Supabase
Environment
- ROBOMOTION_API_TOKEN (if vault credentials are needed)