@meridiantoolkit/plugin
Plugin for Meridian — user-facing helpers to use the platform through your API key (mrd_). Ships as both a pi package (extensions + skills + prompts) and a Claude Code plugin (commands + hooks + skills + the meridian MCP server wired in). Codex CLI has no plugin/extension system — Codex users get the same status/guard behavior implicitly through the meridian MCP server's tool descriptions and their own AGENTS.md (see meridian-mcp's README).
What's included
| Status check | meridian-context extension → /meridian command, meridian_status tool | /meridian command (calls the meridian_status MCP tool) | API key setup + connectivity summary |
| Live-action safety | meridian-guard extension → interactive confirm before payment/request mutations | PreToolUse hook → dry-run calls auto-allowed, live calls get an additionalContext explainer and fall through to Claude Code's own permission prompt | Never silently fires a real payment or request mutation |
| Session notice | meridian-context → session_start notify | SessionStart hook | Flags a missing MERIDIAN_API_KEY at the start of a session |
| Router skill | skills/meridian | same file, works unmodified | Points at the right meridian-skills skill |
| Prompts | prompts/meridian-request.md | n/a (pi-only concept; use the skill/command instead) | Template for drafting a request |
Install
pi:
pi install ./meridian-plugin
pi install ./meridian-skills
pi install /absolute/path/to/meridian-plugin
pi install npm:@meridiantoolkit/plugin
pi install npm:@meridiantoolkit/skills
Add to .pi/settings.json for project-local installs that the team shares:
{
"packages": ["./meridian-plugin"]
}
Claude Code:
/plugin marketplace add meridian-silkdev/meridian-plugin
/plugin install meridian-plugin@meridian
/plugin install meridian-skills@meridian
Or locally while iterating: claude plugin marketplace add /absolute/path/to/meridian-plugin, then claude plugin install meridian-plugin@meridian.
Extensions (pi only)
Loaded from extensions/ automatically when the package is installed via pi.
/meridian — check API key setup and show available skills.
meridian_status tool — LLM-callable, no params, returns API connectivity and account summary.
Note: meridian_status also exists as a plain MCP tool on the meridian server (meridian-mcp's meridian_status), so it works in Claude Code/Codex too without any pi-specific code — the extension's copy is pi's own UI-integrated version (shows up as a native tool/command instead of routing through MCP).
Commands (Claude Code only)
/meridian — calls the meridian_status MCP tool and reports which skill to load next.
Hooks (Claude Code only)
SessionStart — flags a missing MERIDIAN_API_KEY.
PreToolUse (on verify_payment, create_service_request, update_request_status) — dry-run calls (no API key) are explicitly allowed with no prompt; live calls get an explanatory additionalContext note and otherwise fall through to Claude Code's normal tool-permission prompt. Hooks can't open their own confirmation dialog — that's what the built-in permission system is for.
Skills
meridian — router: tells you which user-facing skill to load (api → services → requests → payments → meetings).
Load the focused skill directly: meridian-api, meridian-services, meridian-requests, meridian-payments, meridian-meetings (provided by meridian-skills). Invocation is /skill:meridian-api in pi, /meridian-api in Claude Code — see meridian-skills's README for the full table.
Prompts (pi only)
meridian-request — template for drafting a service request via API.
Development
No build step for the pi extensions (loaded via jiti, TypeScript directly) or the Claude Code hooks (plain Node scripts, run directly). Skills, commands, and prompts are Markdown.
node hooks/session-start.mjs
echo '{"tool_name":"mcp__meridian__verify_payment","tool_input":{}}' | node hooks/guard.mjs
claude plugin validate .