Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/rajavijayach/electrobun-skillsnpx agentmods add skills/rajavijayach/electrobun-skills/electrobun-rpc-patternsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rajavijayach/electrobun-skills/electrobun-rpc-patterns)<a href="https://agentmods.dev/skills/rajavijayach/electrobun-skills/electrobun-rpc-patterns"><img src="https://agentmods.dev/badge/skills/rajavijayach/electrobun-skills/electrobun-rpc-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rajavijayach/electrobun-skills/electrobun-rpc-patterns"><img src="https://agentmods.dev/badge/skills/rajavijayach/electrobun-skills/electrobun-rpc-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00180 | $0.03626 |
| Opus 5 | $0.00090 | $0.01813 |
| Sonnet 5 | $0.00036 | $0.00725 |
| Haiku 4.5 | $0.00018 | $0.00363 |
Grade A, and why
electrobun-rpc-patterns scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 628 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Electrobun RPC Patterns
Advanced patterns for type-safe, performant RPC communication in Electrobun.
Type-Safe RPC
Shared Types Definition
Create a shared types file that both main and webview can import:
src/types/rpc.ts:
// Main process handlers (exposed to webview)
export interface MainRpcHandlers {
getUser(id: string): Promise<User>;
saveFile(path: string, content: string): Promise<SaveResult>;
listFiles(directory: string): Promise<FileInfo[]>;
executeCommand(cmd: string, args: string[]): Promise<CommandResult>;
}
// Webview handlers (exposed to main)
export interface WebviewRpcHandlers {
updateUI(data: UIUpdate): Promise<void>;
showNotification(message: string, type: NotificationType): Promise<void>;
refreshData(): Promise<void>;
}
export interface User {
id: string;
name: string;
email: string;
}
export interface SaveResult {
success: boolean;
path?: string;
error?: string;
}
export interface FileInfo {
name: string;
path: string;
size: number;
modified: Date;
}
export interface CommandResult {
stdout: string;
stderr: string;
exitCode: number;
}
export interface UIUpdate {
type: "data" | "status" | "error";
payload: any;
}
export type NotificationType = "info" | "success" | "warning" | "error";
Type-Safe Main Process
src/bun/main.ts:
import { BrowserWindow } from "electrobun/bun";
import type { MainRpcHandlers, WebviewRpcHandlers } from "../types/rpc";
const win = new BrowserWindow({ /* ... */ });
// Define handlers with type checking
win.defineRpc<MainRpcHandlers>({
handlers: {
async getUser(id: string) {
// Full type inference and checking
const user = await database.users.findById(id);
return {
id: user.id,
name: user.name,
email: user.email,
};
},
async saveFile(path: string, content: string) {
try {
await Bun.write(path, content);
return { success: true, path };
} catch (error) {
return { success: false, error: error.message };
}
},
async listFiles(directory: string) {
const entries = await fs.readdir(directory, { withFileTypes: true });
return entries.map(entry => ({
name: entry.name,
path: path.join(directory, entry.name),
size: entry.size,
modified: entry.mtime,
}));
},
async executeCommand(cmd: string, args: string[]) {
const proc = Bun.spawn([cmd, ...args]);
const stdout = await new Response(proc.stdout).text();
const stderr = await new Response(proc.stderr).text();
const exitCode = await proc.exited;
return { stdout, stderr, exitCode };
}
}
});
// Call webview methods with types
const webviewRpc = win.rpc as WebviewRpcHandlers;
await webviewRpc.updateUI({ type: "data", payload: data });
await webviewRpc.showNotification("File saved", "success");
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 628 lines · 180 tokens per session scan A 101de7696dbe
electrobun-rpc-patterns is a skill published in the GitHub repository rajavijayach/electrobun-skills (11 stars, last pushed 6mo ago), licensed MIT. It adds 180 tokens to every session and 3,626 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
fast-typescript-check
Keep www-sacred's TypeScript fast to type-check and fast to run. Use when touching the ASCII/canvas animation components (the only real per-frame code here), tightening type-check wall-clock, or auditing a change for runtime or compiler regressions. Scoped to this repo — a React 19 / Next.js 16 component library plus…
onejs-setup-and-overview
Use this skill whenever the user wants to build or set up user interface in a Unity project using OneJS, React, TypeScript, or JSX, e.g. 'add a main menu to my game', 'build a settings screen', 'make a HUD', 'set up OneJS', 'my OneJS panel is blank', 'the UI is not hot reloading'. Covers confirming OneJS is installed…
typescript-rules
React/TypeScript frontend development rules including type safety, component design, state management, and error handling. Use when implementing React components, TypeScript code, or frontend features.
coding-standards
A set of general coding standards and practical patterns for TypeScript, JavaScript, React, and Node.js. It covers readable naming, simple designs, avoiding repetition, and delaying unnecessary features.
electron-development
Electron development guidelines for building cross-platform desktop applications with JavaScript/TypeScript.
create-custom-widget
Build a Mendix pluggable widget from scratch with React and TypeScript and package it as an .mpk. Use when no marketplace or built-in widget covers what is needed and a custom React component has to be written.