Implementing Realtime Sync
ancoleman/ai-design-components
Real-time communication patterns for live updates, collaboration, and presence.
A skill your agent uses when implementing kkrpc clients or servers in non-TypeScript languages, speaking the stable compact protocol, transports, and reference implementations in Go, Python, Rust…
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kunkunsh/kkrpc kkrpc-interop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/interop .claude/skills/kkrpc-interop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .claude/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kunkunsh/kkrpc/tree/main/skills/interopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kunkunsh/kkrpc kkrpc-interop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/interop .agents/skills/kkrpc-interop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .agents/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kunkunsh/kkrpc kkrpc-interop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/interop .cursor/skills/kkrpc-interop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .cursor/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kunkunsh/kkrpc.git --path skills/interop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kunkunsh/kkrpc kkrpc-interop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/interop .gemini/skills/kkrpc-interop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .gemini/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kunkunsh/kkrpc kkrpc-interopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/interop .github/skills/kkrpc-interop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .github/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kunkunsh/kkrpc kkrpc-interop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunkunsh/kkrpc.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/interop .opencode/skills/kkrpc-interop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "kkrpc-interop" agent skill from https://github.com/kunkunsh/kkrpc/tree/main/skills/interop into .opencode/skills/kkrpc-interop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kkrpc-interop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
kkrpc-interopA skill your agent uses when implementing kkrpc clients or servers in non-TypeScript languages, speaking the stable compact protocol, transports, and reference implementations in Go, Python, Rust…
Kkrpc Interop is an agent skill from kunkunsh/kkrpc. Use when implementing kkrpc clients or servers in non-TypeScript languages, speaking the stable compact protocol, transports, and reference implementations in Go, Python, Rust, or Swift.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Works with any language that can parse JSON and implement stdio/WebSocket transports
It sits in Backend & APIs, covering iOS development and Realtime and WebSockets. It works with Python, Rust, TypeScript and Hono. The repository describes itself as: A TypeScript RPC protocol for multiple environments (iframe, web worker, stdio, http, WebSocket). The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e558873. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Works with any language that can parse JSON and implement stdio/WebSocket transports
From compatibility in the SKILL.md frontmatter.
Kkrpc Interop loads about 1.8k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 644 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from kunkunsh/kkrpc at commit e558873, republished under its MIT licence (© kunkunsh). 644 words, ~1,765 tokens.
.claude/skills/kkrpc-interop/SKILL.md (or your agent's skills folder).Implement kkrpc clients and servers in non-JS languages by speaking the stable compact JSON protocol used by TypeScript kkrpc endpoints. Start with the default value-oriented protocol. Async iterable streaming and remote references are opt-in advanced protocols; implement them only when the interop boundary explicitly needs them.
| Language | Location | Transports |
|---|---|---|
| Go | interop/go/kkrpc/ | stdio, WebSocket |
| Python | interop/python/kkrpc/ | stdio, WebSocket |
| Rust | interop/rust/src/ | stdio, WebSocket |
| Swift | interop/swift/Sources/kkrpc/ | stdio, WebSocket |
Interop uses JSON records. Stdio transports send newline-delimited UTF-8 JSON. WebSocket transports send the same JSON in text frames.
{
"t": "q",
"id": "a1b2-c3d4",
"op": "call",
"p": ["math", "add"],
"a": [1, 2]
}Fields:
t: message tag, always q for requests.id: unique request identifier.op: one of call, get, set, or new.p: method or property path as string segments.a: argument array for calls and constructors.v: value for property writes.{
"t": "r",
"id": "a1b2-c3d4",
"v": 3
}Errors use e with compact error fields:
{
"t": "r",
"id": "a1b2-c3d4",
"e": {
"n": "Error",
"m": "Division by zero",
"s": "optional stack"
}
}{
"t": "cb",
"id": "callback-id",
"a": ["progress", 50]
}When sending a callable argument, generate an ID, store the callable locally, and replace the argument with a marker object.
{
"__kkrpc_next_arg__": "callback",
"id": "callback-id"
}When receiving this marker, create a wrapper function. Invoking the wrapper sends t: "cb" with the marker ID and argument array.
When receiving callback arguments from JS, unwrap value envelopes before invoking local callbacks.
{
"__kkrpc_next_arg__": "value",
"v": "actual value"
}Default callback invocation is fire-and-forget. If a non-JS implementation needs callback return values, object handles, or releaseProxy() behavior, it must also implement the kkrpc/remote-refs envelope and internal op: "ref" request flow.
kkrpc/streaming adds async iterable stream records:
t: "sq" for stream pull/return/throw control requestst: "sr" for stream value/completion/error responseskkrpc/remote-refs adds explicit proxy(value) envelopes with "__kkrpc_ref__": true plus internal op: "ref" requests for apply/get/set/call/release. Do not assume these features are present when connecting to a default kkrpc endpoint.
Use any ID generator with low collision risk. IDs only need to match requests and responses within one connection.
import uuid
def generate_uuid() -> str:
return str(uuid.uuid4())Every transport should provide these operations:
read() -> string? # Read one message, null/None if closed
write(message) # Write one JSON string
close() # Close connectionStdio transports append \n and flush immediately. WebSocket transports send and receive text frames containing a single JSON record.
math.add to p: ["math", "add"].t: "q", unique id, op, p, and optional a or v.t: "r" records.t: "cb" records to stored callbacks.t: "q" unless your server also stores callbacks.op: "call" by joining p into the registered method name.op: "get" and op: "set" against registered property handlers if supported.{ "t": "r", "id": requestId, "v": result }.{ "t": "r", "id": requestId, "e": { "n": name, "m": message } }.def call(method, *args):
request_id = generate_uuid()
payload = {
"t": "q",
"id": request_id,
"op": "call",
"p": method.split("."),
"a": [encode_arg(arg) for arg in args],
}
transport.write(json.dumps(payload))
response = wait_for_response(request_id)
if "e" in response:
raise RpcError(response["e"].get("m", "RPC error"))
return response.get("v")def handle(message):
if message.get("t") != "q":
return
try:
method = ".".join(message.get("p", []))
args = [decode_arg(arg) for arg in message.get("a", [])]
result = api[method](*args)
transport.write(json.dumps({"t": "r", "id": message["id"], "v": result}))
except Exception as exc:
transport.write(json.dumps({
"t": "r",
"id": message["id"],
"e": {"n": exc.__class__.__name__, "m": str(exc)},
}))t: "cb" dispatch.t: "sq"/t: "sr" flow control.op: "ref" apply/get/set/call/release behavior.p.v.{ "__kkrpc_next_arg__": "value", "v": ... } callback arguments.op: "ref" to a default-core endpoint; only kkrpc/remote-refs endpoints implement those requests.© kunkunsh, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/interop of kunkunsh/kkrpc.
Open the folder on GitHubat commit e558873
Kkrpc Interop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Kkrpc Interop this skillkunkunsh/kkrpc | 174 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Implementing Realtime Syncancoleman/ai-design-components | 526 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Build Teaql Appteaql/teaql-agent-kit | 2.8k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Dbgtheodo-group/debug-that | 158 | — | ~2.5k | Automated safety check: Pass | MIT | |
| MCP SDK Tier Auditmodelcontextprotocol/conformance | 129 | — | ~4.4k | Automated safety check: Pass | Custom licence | |
| Gemini Live API Devgoogle-gemini/gemini-skills | 4.3k | — | ~4.6k | Automated safety check: Pass | Apache-2.0 |
ancoleman/ai-design-components
Real-time communication patterns for live updates, collaboration, and presence.
teaql/teaql-agent-kit
Build or change a TeaQL application in Java, Rust, Go, Swift, Python, C/.NET, or TypeScript, including Kotlin/JVM applications that consume Java-generated libraries.
theodo-group/debug-that
Debug applications using the dbg CLI debugger. An agent skill from theodo-group/debug-that.
modelcontextprotocol/conformance
Comprehensive tier assessment for an MCP SDK repository against SEP-1730.
google-gemini/gemini-skills
A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.
Polymarket/agent-skills
Polymarket integration for prediction market trading on Polygon.
kunkunsh/kkrpc
A skill your agent uses when building TypeScript RPC with kkrpc stable APIs, choosing native Transport<RPCMessage adapters, or integrating validation, middleware, transferables, streaming, remote…
kunkunsh/kkrpc
A skill your agent uses when migrating kkrpc projects across breaking stable API changes, replacing classic IoInterface/IO adapters, next entries, validation/interceptor options, transport imports…
Categories
A skill your agent uses when implementing kkrpc clients or servers in non-TypeScript languages, speaking the stable compact protocol, transports, and reference implementations in Go, Python, Rust…. Kkrpc Interop is an agent skill from kunkunsh/kkrpc. Use when implementing kkrpc clients or servers in non-TypeScript languages, speaking the stable compact protocol, transports, and reference implementations in Go, Python, Rust, or Swift.
Kkrpc Interop fits situations like: implementing kkrpc clients; servers in non-TypeScript languages; speaking the stable compact protocol; reference implementations in Go.
Run `npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a claude-code`. Or copy the skill folder (skills/interop in kunkunsh/kkrpc) into .claude/skills/kkrpc-interop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a codex`. Or copy the skill folder (skills/interop in kunkunsh/kkrpc) into .agents/skills/kkrpc-interop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kunkunsh/kkrpc --skill kkrpc-interop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kkrpc-interop, .gemini/skills/kkrpc-interop, .github/skills/kkrpc-interop and .opencode/skills/kkrpc-interop in your project.
SKILL.md names no scripts, command-line tools or credentials: Kkrpc Interop is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Works with any language that can parse JSON and implement stdio/WebSocket transports.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Kkrpc Interop is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Kkrpc Interop: Implementing Realtime Sync (ancoleman/ai-design-components, 526 stars), Build Teaql App (teaql/teaql-agent-kit, 2.8k stars), Dbg (theodo-group/debug-that, 158 stars) and MCP SDK Tier Audit (modelcontextprotocol/conformance, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kunkunsh (a GitHub organization) maintains it in kunkunsh/kkrpc, which has 174 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 11, 2026.
Source: kunkunsh/kkrpc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.