diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a6c5ff4..a579082 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: if: ${{ steps.release.outputs.release_created }} run: | tar -czvf "supabase-plugin.tar.gz" --dereference \ - .claude-plugin/ .cursor-plugin/ .codex-plugin/ \ + .claude-plugin/ .cursor-plugin/ .codex-plugin/ .kimi-plugin/ .grok-plugin/ \ .github/plugin/ agents/ \ gemini-extension.json SUPABASE.md \ skills/ assets/ || exit 1 diff --git a/.grok-plugin/plugin.json b/.grok-plugin/plugin.json new file mode 100644 index 0000000..b6c5760 --- /dev/null +++ b/.grok-plugin/plugin.json @@ -0,0 +1,26 @@ +{ + "name": "supabase", + "version": "0.1.12", + "description": "Official Supabase plugin for Grok Build with bundled Supabase skills and MCP access for project management, database work, auth, storage, and Postgres best practices.", + "author": { + "name": "Supabase", + "url": "https://supabase.com" + }, + "repository": "https://github.com/supabase-community/supabase-plugin", + "license": "MIT", + "skills": "./skills/", + "mcpServers": "./agents/grok/mcp.json", + "keywords": [ + "supabase", + "postgres", + "database", + "backend", + "mcp", + "auth", + "storage", + "realtime", + "edge-functions", + "migrations", + "rls" + ] +} diff --git a/.kimi-plugin/plugin.json b/.kimi-plugin/plugin.json new file mode 100644 index 0000000..5eaee54 --- /dev/null +++ b/.kimi-plugin/plugin.json @@ -0,0 +1,43 @@ +{ + "name": "supabase", + "version": "0.1.12", + "description": "Official Supabase plugin for Kimi Code with bundled Supabase skills and MCP access for project management, database work, auth, storage, and Postgres best practices.", + "author": { + "name": "Supabase", + "email": "support@supabase.io", + "url": "https://supabase.com" + }, + "homepage": "https://supabase.com", + "repository": "https://github.com/supabase-community/supabase-plugin", + "license": "MIT", + "keywords": [ + "supabase", + "postgres", + "database", + "backend", + "mcp", + "auth", + "storage", + "realtime", + "edge-functions", + "migrations", + "rls" + ], + "skills": "./skills/", + "mcpServers": { + "supabase": { + "type": "http", + "url": "https://mcp.supabase.com/mcp", + "headers": { + "X-Source-Name": "kimi-plugin", + "X-Source-Version": "0.1.12" + } + } + }, + "interface": { + "displayName": "Supabase", + "shortDescription": "Supabase skills and MCP tools for Kimi Code", + "developerName": "Supabase", + "websiteURL": "https://supabase.com" + } +} diff --git a/AGENTS.md b/AGENTS.md index 3ca02a9..dbe6e9c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,12 @@ # AGENTS.md -This repository is the plugin distribution repo for Supabase across Claude Code, Cursor, Codex, and Gemini. +This repository is the plugin distribution repo for Supabase across Claude Code, Cursor, Codex, GitHub Copilot, Gemini, Grok Build, and Kimi Code. + +These vendors are installable through the vendor-neutral [`plugins`](https://github.com/vercel-labs/plugins) CLI, which translates the shared plugin layout into each target's native format: + +```bash +npx plugins add supabase-community/supabase-plugin +``` ## Purpose @@ -9,8 +15,10 @@ Keep this repository focused on the shared multi-vendor plugin layout: - `.claude-plugin/plugin.json` defines the Claude Code plugin identity and metadata - `.cursor-plugin/plugin.json` defines the Cursor plugin surface - `.codex-plugin/plugin.json` defines the Codex plugin surface +- `.grok-plugin/plugin.json` defines the Grok Build plugin surface +- `.kimi-plugin/plugin.json` defines the Kimi Code plugin surface (with its MCP server declared inline) - `.github/plugin/plugin.json` defines the GitHub Copilot plugin surface -- `agents/claude/.mcp.json`, `agents/cursor/mcp.json`, `agents/codex/.app.json`, and `agents/copilot/.mcp.json` hold agent-specific MCP config files +- `agents/claude/.mcp.json`, `agents/cursor/mcp.json`, `agents/grok/mcp.json`, `agents/codex/.app.json`, and `agents/copilot/.mcp.json` hold agent-specific MCP config files - `gemini-extension.json` defines the Gemini extension manifest - `skills/` contains the shipped, real skill files consumed by the supported plugin surfaces @@ -26,7 +34,7 @@ npx claude plugin validate .claude-plugin/plugin.json ## Editing Rules -- Do not move `skills/`, `agents/`, `.claude-plugin/plugin.json`, `.cursor-plugin/plugin.json`, or `.codex-plugin/plugin.json` out of the repo root layout. +- Do not move `skills/`, `agents/`, `.claude-plugin/plugin.json`, `.cursor-plugin/plugin.json`, `.codex-plugin/plugin.json`, `.grok-plugin/plugin.json`, or `.kimi-plugin/plugin.json` out of the repo root layout. - Do not replace `skills/` with a symlink or submodule reference. - Keep the plugin name stable as `supabase` unless there is a deliberate migration plan. - When changing descriptions or keywords, update all relevant `plugin.json` files together. @@ -52,6 +60,16 @@ Known vendor documentation pages: - https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference - Gemini CLI: - https://geminicli.com/docs/extensions/writing-extensions/ +- Grok Build: + - https://x.ai/cli + - https://docs.x.ai/build/features/skills-plugins-marketplaces + - Uses a dedicated `.grok-plugin/plugin.json` (Grok prefers it over `.claude-plugin/`) pointing at `agents/grok/mcp.json`. Installable via the `plugins` CLI or `grok plugin install`. +- Kimi Code: + - https://www.kimi.com/code + - https://www.kimi.com/code/docs/en/kimi-code-cli/customization/plugins.html + - Installed via the `plugins` CLI into Kimi's native plugin store; uses `.kimi-plugin/plugin.json` with skills, commands, hooks, and MCP servers (no agents or LSP support). MCP servers must be declared inline — Kimi does not resolve external file references. +- `plugins` CLI (vendor-neutral installer): + - https://github.com/vercel-labs/plugins For vendors listed above, read the official documentation pages for the vendor you are working on and follow the plugin structure required by those docs. diff --git a/agents/grok/mcp.json b/agents/grok/mcp.json new file mode 100644 index 0000000..685cafa --- /dev/null +++ b/agents/grok/mcp.json @@ -0,0 +1,12 @@ +{ + "mcpServers": { + "supabase": { + "type": "http", + "url": "https://mcp.supabase.com/mcp", + "headers": { + "X-Source-Name": "grok-plugin", + "X-Source-Version": "0.1.12" + } + } + } +} diff --git a/release-please-config.json b/release-please-config.json index 0a6234c..0e8c1c8 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -20,6 +20,16 @@ "path": ".codex-plugin/plugin.json", "jsonpath": "$.version" }, + { + "type": "json", + "path": ".kimi-plugin/plugin.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".grok-plugin/plugin.json", + "jsonpath": "$.version" + }, { "type": "json", "path": ".github/plugin/plugin.json", @@ -40,6 +50,16 @@ "path": "agents/cursor/mcp.json", "jsonpath": "$.supabase.headers[\"X-Source-Version\"]" }, + { + "type": "json", + "path": ".kimi-plugin/plugin.json", + "jsonpath": "$.mcpServers.supabase.headers[\"X-Source-Version\"]" + }, + { + "type": "json", + "path": "agents/grok/mcp.json", + "jsonpath": "$.mcpServers.supabase.headers[\"X-Source-Version\"]" + }, { "type": "json", "path": "agents/copilot/.mcp.json",