Borrowing it
Nothing to install: this file belongs to Gkrumbach07/openshell-dashboard. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Gkrumbach07/openshell-dashboard/main/.claude/skills/add-rpc/SKILL.mdgit clone --depth 1 https://github.com/Gkrumbach07/openshell-dashboardWrote 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/gkrumbach07/openshell-dashboard/add-rpc)<a href="https://agentmods.dev/skills/gkrumbach07/openshell-dashboard/add-rpc"><img src="https://agentmods.dev/badge/skills/gkrumbach07/openshell-dashboard/add-rpc.svg" alt="Measured on agentmods" 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.00044 | $0.01125 |
| Opus 5 | $0.00022 | $0.00562 |
| Sonnet 5 | $0.00009 | $0.00225 |
| Haiku 4.5 | $0.00004 | $0.00112 |
Grade A, and why
add-rpc 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 3d 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 — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add API Capability
Wire a new OpenShell gateway capability through the full stack: SDK surface check → models/request shape → REST handler → route → frontend API function → hook → types.
Arguments
$ARGUMENTS — SDK method or gateway capability name. Example:
CreateWorkspace, ListProviders, GetInferenceRoute
Steps
1. Find the capability in the SDK
Read the vendored SDK surface described in .claude/rules/openshell-api.md.
Start with openshell/v1/ and types/ in the pinned module version. Note:
- Which SDK sub-client owns the capability (
Sandboxes(),Workspaces(),Providers(),Exec(),Inference(),Policy(),Services(), ...) - Workspace scoping
- Whether the API addresses a sandbox by name or UUID
- Secret-bearing fields or write-only fields that must not be sent back to the frontend
- Whether the public SDK is actually missing what you need; if so, document the gap before adding any escape hatch
2. Update models / request parsing
If the gateway response needs JSON shaping, add or extend DTO converters in
backend/internal/models/. Never serialize SDK objects directly.
func FromSDKWorkspace(ws *openshell.Workspace) Workspace { ... }
For request bodies:
- Simple request structs live in the handler file.
- Complex SDK-building logic lives in
models/sdk_converters.goormodels/builders.go. - Policy payloads must keep using
ParseSDKPolicy/marshalSDKPolicyso the frontend's protojson contract stays intact.
3. REST handler
Add a handler in backend/internal/api/. Use package-level helpers from respond.go:
// backend/internal/api/workspaces_handler.go
func (app *App) CreateWorkspace(w http.ResponseWriter, r *http.Request) {
var body CreateWorkspaceRequest
if !decodeBody(w, r, &body) {
return
}
if !validDNS1123(body.Name) {
writeError(w, http.StatusBadRequest, "invalid_name", "name must be a valid DNS-1123 label")
return
}
workspace, err := app.sdk.Workspaces().Create(r.Context(), body.Name, body.Labels)
if err != nil {
writeSDKError(w, err)
return
}
writeJSON(w, http.StatusCreated, models.FromSDKWorkspace(workspace))
}
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.
- 3d ago Changed · -35 lines · -1 tokens per session 146c45c03777
- 7d ago First seen · 180 lines · 45 tokens per session scan A 099e5f372c51
add-rpc is a skill published in the GitHub repository Gkrumbach07/openshell-dashboard (2 stars, last pushed 3d ago), licensed Apache-2.0. It adds 44 tokens to every session and 1,125 once invoked, about $0.0002 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-31.
Other skills, from other repositories
nextjs-pages-router
Set up tRPC in Next.js Pages Router with createNextApiHandler, createTRPCNext, withTRPC HOC, SSR via ssr option and ssrPrepass, SSG via createServerSideHelpers with getStaticProps, and server-side helpers for getServerSideProps prefetching.
copilotkit-upgrade
Use when migrating a CopilotKit v1 application to v2 -- updating package imports, replacing deprecated hooks and components, switching from GraphQL runtime to AG-UI protocol runtime, and resolving breaking API changes.
with-tanstack-query
Compose Angular Query with signal-owned Table filtering, sorting, and pagination state using reactive query options, manual row-model boundaries, direct query data, server counts, and valid injection context.
auth-web-cloudbase
CloudBase Web Authentication Quick Guide for frontend integration after auth-tool has already been checked. Provides concise and practical Web authentication solutions with multiple login methods and complete user management.
service-digital-engagement-channel-configure
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Use when the user needs to create, deploy, and activate a messaging channel configured with Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service Agent routing. Generates MessagingChannel metadata, deploys it…
om-system-extension
Extend installed Open Mercato modules through UMES enrichers, interceptors, mutation guards, widgets, menus, entity extensions, events, component/page replacements, and overrides. Use for "extend core", "add field/column/action", "hide page", "intercept API", "UMES", or "rozszerz moduł".