rpcgen

Generate strongly-typed RPC clients from OpenRPC/SMD schemas in multiple languages.

6|Updated Apr 5, 2026
One-click install
npx skills add https://github.com/vmkteam/claude-plugins --skill rpcgen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rpcgen
Source: https://github.com/vmkteam/claude-plugins/tree/main/plugins/developer/skills/rpcgen
Command: npx skills add https://github.com/vmkteam/claude-plugins --skill rpcgen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Generates strongly-typed RPC clients from OpenRPC or SMD schemas to simplify integration with external services and reduce boilerplate across languages.

Core Features & Use Cases

  • Language multipliers: Go, TypeScript, PHP, Swift, Kotlin, and Dart client generation from a single OpenRPC or SMD source.
  • On-demand client provisioning: generate language-specific clients for internal services or published contracts without manual stubs.
  • CI-friendly: supports diff tooling with OpenRPC schemas (rpcdiff) to catch breaking changes early.

Quick Start

Run rpcgen with -lang go -url http://localhost/rpc/ to generate a Go client from your OpenRPC endpoint.

Frequently Asked Questions about rpcgen

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate typed RPC clients from an OpenRPC schema?

You can generate strongly-typed RPC clients from OpenRPC or SMD schemas by running the rpcgen CLI with the -lang flag and providing a source via -url or -file to output client code for your target language.

What programming languages are supported for OpenRPC client generation?

OpenRPC client generation supports Go, TypeScript, PHP, Swift, Kotlin, and Dart, allowing you to generate strongly-typed clients from a single schema across multiple languages.

Can I check OpenRPC schema compatibility for breaking changes in CI?

Yes, you can check OpenRPC schema compatibility in your CI pipeline by using the rpcdiff tool to compare schemas and catch breaking changes early before deploying updates.

Do I need a local file to generate a Go client from OpenRPC?

No, you do not need a local file to generate a Go client; you can use the rpcgen CLI with the -url flag to fetch the OpenRPC schema directly from a live HTTP endpoint.

What is the best way to maintain consistent RPC contracts across multiple languages?

The best way to maintain consistent RPC contracts is to generate strongly-typed clients from a single OpenRPC or SMD schema, eliminating manual stubs and reducing boilerplate across multiple languages.

Why use SMD schemas for client generation instead of writing manual stubs?

Using SMD schemas for client generation eliminates manual stubs by automatically producing strongly-typed, language-specific clients, ensuring consistent service contracts and reducing integration boilerplate.