oRPC Building Custom Plugins
Create powerful custom plugins to extend oRPC handlers and links with interceptors.
Skill by Ali Torki
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ali-master-orpc-building-custom-plugins
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/orpc-building-custom-plugins
What's inside
- Skill name
oRPC Building Custom Plugins- Description
- Create powerful custom plugins to extend oRPC handlers and links with interceptors.
- License
- MIT
- Metadata
- author: Ali Torki · version: 1.0.0 · homepage: https://github.com/ali-master
- Instructions
- 69 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "oRPC Building Custom Plugins" does not match folder "orpc-building-custom-plugins"
Files (2)
- SKILL.md
- metadata.json
SKILL.md (first lines)
# Building Custom Plugins
This guide explains how to create custom oRPC plugins for handlers and links.
## What is a Plugin?
In oRPC, a plugin is a collection of `interceptors` that can work together or independently.
```ts
export class ResponseHeadersPlugin<T extends ResponseHeadersPluginContext> implements StandardHandlerPlugin<T> {
init(options: StandardHandlerOptions<T>): void {
options.rootInterceptors ??= []
options.rootInterceptors.push(async (interceptorOptions) => {
const resHeaders = interceptorOptions.context.resHeaders ?? new Headers()
const result = await interceptorOptions.next({
...interceptorOptions,
context: { ...interceptorOptions.context, resHeaders },
})
if (!result.matched) return result
const responseHeaders = clone(result.response.headers)
for (const [key, value] of resHeaders) {
// merge headers
responseHeaders[key] = value
}
return { ...result, response: { ...result.response, headers: responseHeaders } }
})
}
}
```
### Handler Plugins
Extend server-side handlers (RPCHandler, OpenAPIHandler). Work with interceptors from the [Handler Lifecycle](/docs/rpc-handler#lifecycle).
### Link Plugins
Enhance client-side communication (RPCLink, OpenAPILink). Use interceptors from the [Link Lifecycle](/docs/client/rpc-link#lifecycle).
## Communication Between Interceptors
Use a unique symbol to inject context shared between interceptors. The [Strict Get Method Plugin](/docs/plugins/strict-get-method) demonstrates this — it uses `rootInterceptors` to collect HTTP methods and combines them with procedure info in `clientInterceptors`.
## Plugin Order
```ts
export class ExamplePlugin<T extends Context> implements StandardHandlerPlugin<T> {
order = 10
init(options: StandardHandlerOptions<T>): void {
options.rootInterceptors ??= []
options.clientInterceptors ??= []
options.rootInterceptors.push(async ({ next }) => next())
options.clientInterceptors.push(async ({ next }) => next())
}
}
```
`order` controls plugin loading order, not interceptor execution order. Higher order with `.unshift` to run earlier, or `.push` to run later.
> Avoid setting `order` unless necessary. Keep it below `1_000_000` to avoid conflicts with built-in plugins.From ali-master/skills, MIT.
More from ali-master/skills
- 0.532score
better-notify
betternotify
Context and API guidance for Better Notify — end-to-end typed notification infrastructure for Node.js
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Better Auth Integration
Ali Torki
Use Better Auth inside your oRPC projects without any extra overhead.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Bracket Notation
Ali Torki
Represent structured data in limited formats such as URL queries and form data.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Batch Requests Plugin
Ali Torki
A plugin for oRPC to batch requests and responses to reduce overhead.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC AI SDK Integration
Ali Torki
Seamlessly use AI SDK inside your oRPC projects without any extra overhead.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Browser Adapter
Ali Torki
Type-safe communication between browser scripts using Message Port Adapter.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Client Retry Plugin
Ali Torki
A plugin for oRPC that enables retrying client calls when errors occur.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Compression Plugin
Ali Torki
A plugin for oRPC that compresses response bodies to reduce bandwidth usage.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Client-Side Clients
Ali Torki
Call your oRPC procedures remotely as if they were local functions.
SkillCFreshness: C★ 9Claude Code +9 - 0.521score
oRPC Customizing Error Response
Ali Torki
Customize the error response format in oRPC OpenAPI.
SkillCFreshness: C★ 9Claude Code +9 - 0.521score
oRPC Astro Adapter
Ali Torki
Use oRPC inside an Astro project.
SkillCFreshness: C★ 9Claude Code +9 - 0.521score
oRPC Client Event Iterator
Ali Torki
Use event iterators in oRPC clients.
SkillCFreshness: C★ 9Claude Code +9
Signals
- Stars
- 9
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- May 15, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.0
- License
- MIT
- Repository
- github.com/ali-master/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Ali Torki
- 0.524score
oRPC Client Retry Plugin
Ali Torki
A plugin for oRPC that enables retrying client calls when errors occur.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Client-Side Clients
Ali Torki
Call your oRPC procedures remotely as if they were local functions.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Batch Requests Plugin
Ali Torki
A plugin for oRPC to batch requests and responses to reduce overhead.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC AI SDK Integration
Ali Torki
Seamlessly use AI SDK inside your oRPC projects without any extra overhead.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Browser Adapter
Ali Torki
Type-safe communication between browser scripts using Message Port Adapter.
SkillCFreshness: C★ 9Claude Code +9 - 0.524score
oRPC Better Auth Integration
Ali Torki
Use Better Auth inside your oRPC projects without any extra overhead.
SkillCFreshness: C★ 9Claude Code +9
Cite this page
oRPC Building Custom Plugins skill. Agent Mart. https://agentmart.dev/skills/ali-master-orpc-building-custom-plugins (last updated 2026-10-24)