add-rpc

Implement new WebSocket RPC commands across Wave Terminal layers.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/marrabld/waveterm --skill add-rpc-marrabld
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-rpc
Source: https://github.com/marrabld/waveterm/tree/main/.kilocode/skills/add-rpc
Command: npx skills add https://github.com/marrabld/waveterm --skill add-rpc-marrabld

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Establishes a standardized process for extending Wave Terminal with new WebSocket RPC commands, enabling consistent cross-layer communication between the frontend, Electron, and backend components. It clarifies how to define, document, implement, and bind new RPCs so teams can incrementally evolve the RPC surface without breaking existing flows.

Core Features & Use Cases

  • Define a new RPC by updating the WshRpcInterface with a Command-named method, and declare matching request/response types.
  • Generate language bindings and client stubs through the existing codegen, ensuring type-safety across Go and TypeScript.
  • Implement the new command in the appropriate layers (main server, Electron, frontend, and remote) following the documented patterns and best practices.

Quick Start

Define a new RPC by adding a Command to the WshRpcInterface, create matching data and response types, run task generate to refresh bindings, and implement the command in the appropriate layer.

Frequently Asked Questions about add-rpc

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

FAQPage Schema
How do I add a new WebSocket RPC command in Wave Terminal?

To add a new WebSocket RPC command, update the WshRpcInterface with a Command-named method, declare matching JSON-annotated request and response types, run task generate to refresh bindings, and implement the command across the main server, Electron, frontend, and remote layers.

How does Wave Terminal ensure type safety for RPC commands across Go and TypeScript?

Wave Terminal ensures type safety for RPC commands by using existing code generation to automatically create language bindings and client stubs from the defined WshRpcInterface and matching data types across Go and TypeScript environments.

What are the naming conventions required when extending the WshRpcInterface?

When extending the WshRpcInterface, you must enforce the Command suffix for method names, ensure the first parameter is always context.Context, use JSON-annotated types for data declarations, and include proper error handling and documentation.

Can I implement a new RPC command for only the frontend without updating the backend?

No, implementing a new RPC command requires a cross-layer implementation. You must define the interface and types, run code generation, and implement the command in the appropriate layers including the main server, Electron, frontend, and remote to ensure consistent RPC behavior.

Why do I need to run task generate after updating the WshRpcInterface?

You need to run task generate after updating the WshRpcInterface to trigger the existing codegen process, which automatically generates the necessary language bindings and client stubs ensuring type-safe communication between Go and TypeScript.