Kkrpc Interop
kunkunsh/kkrpc
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…
Real-time communication patterns for live updates, collaboration, and presence.
$ npx skills add ancoleman/ai-design-components --skill implementing-realtime-sync -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ancoleman/ai-design-components implementing-realtime-sync --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/ancoleman/ai-design-components.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/implementing-realtime-sync .claude/skills/implementing-realtime-sync && 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 "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .claude/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-syncType 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 ancoleman/ai-design-components --skill implementing-realtime-sync -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ancoleman/ai-design-components implementing-realtime-sync --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/implementing-realtime-sync .agents/skills/implementing-realtime-sync && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .agents/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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 ancoleman/ai-design-components --skill implementing-realtime-sync -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ancoleman/ai-design-components implementing-realtime-sync --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/implementing-realtime-sync .cursor/skills/implementing-realtime-sync && 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 "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .cursor/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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/ancoleman/ai-design-components.git --path skills/implementing-realtime-sync--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 ancoleman/ai-design-components --skill implementing-realtime-sync -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ancoleman/ai-design-components implementing-realtime-sync --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/implementing-realtime-sync .gemini/skills/implementing-realtime-sync && 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 "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .gemini/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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 ancoleman/ai-design-components implementing-realtime-syncInstalls 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 ancoleman/ai-design-components --skill implementing-realtime-sync -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/implementing-realtime-sync .github/skills/implementing-realtime-sync && 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 "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .github/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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 ancoleman/ai-design-components --skill implementing-realtime-sync -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ancoleman/ai-design-components implementing-realtime-sync --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/implementing-realtime-sync .opencode/skills/implementing-realtime-sync && 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 "implementing-realtime-sync" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/implementing-realtime-sync into .opencode/skills/implementing-realtime-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-realtime-sync", 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.
implementing-realtime-syncReal-time communication patterns for live updates, collaboration, and presence.
Implementing Realtime Sync is an agent skill from ancoleman/ai-design-components. Real-time communication patterns for live updates, collaboration, and presence. Use when building chat applications, collaborative tools, live dashboards, or streaming interfaces (LLM responses, metrics). Covers SSE (server-sent events for one-way streams), WebSocket (bidirectional communication), WebRTC (peer-to-peer video/audio), CRDTs (Yjs, Automerge for conflict-free collaboration), presence patterns, offline sync, and scaling strategies. Supports Python, Rust, Go, and TypeScript.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts and reference files (for example `examples/llm-streaming-sse/README.md`, `examples/llm-streaming-sse/backend.py` and `outputs.yaml`).
It sits in Backend & APIs, covering Realtime and WebSockets. It works with Python, TypeScript, Rust and FastAPI. The repository describes itself as: Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude. The licence is MIT.
Read from SKILL.md and the folder at commit 76551b7. 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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
fastapiFrom 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.
Implementing Realtime Sync loads about 2.3k tokens when it runs, and up to ~23k if it reads all its reference files. Until then it costs about 129 tokens; SKILL.md has 508 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); the scripts in this folder are not scanned.
The full file from ancoleman/ai-design-components at commit 76551b7, republished under its MIT licence (© ancoleman). 508 words, ~2,266 tokens.
.claude/skills/implementing-realtime-sync/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.Implement real-time communication for live updates, collaboration, and presence awareness across applications.
Use this skill when building:
Choose the transport protocol based on communication pattern:
ONE-WAY (Server → Client only)
├─ LLM streaming, notifications, live feeds
└─ Use SSE (Server-Sent Events)
├─ Automatic reconnection (browser-native)
├─ Event IDs for resumption
└─ Simple HTTP implementation
BIDIRECTIONAL (Client ↔ Server)
├─ Chat, games, collaborative editing
└─ Use WebSocket
├─ Manual reconnection required
├─ Binary + text support
└─ Lower latency for two-way
COLLABORATIVE EDITING
├─ Multi-user documents/spreadsheets
└─ Use WebSocket + CRDT (Yjs or Automerge)
├─ CRDT handles conflict resolution
├─ WebSocket for transport
└─ Offline-first with sync
PEER-TO-PEER MEDIA
├─ Video, screen sharing, voice calls
└─ Use WebRTC
├─ WebSocket for signaling
├─ Direct P2P connection
└─ STUN/TURN for NAT traversal| Protocol | Direction | Reconnection | Complexity | Best For |
|---|---|---|---|---|
| SSE | Server → Client | Automatic | Low | Live feeds, LLM streaming |
| WebSocket | Bidirectional | Manual | Medium | Chat, games, collaboration |
| WebRTC | P2P | Complex | High | Video, screen share, voice |
Stream LLM tokens progressively to frontend (ai-chat integration).
Python (FastAPI):
from sse_starlette.sse import EventSourceResponse
@app.post("/chat/stream")
async def stream_chat(prompt: str):
async def generate():
async for chunk in llm_stream:
yield {"event": "token", "data": chunk.content}
yield {"event": "done", "data": "[DONE]"}
return EventSourceResponse(generate())Frontend:
const es = new EventSource('/chat/stream')
es.addEventListener('token', (e) => appendToken(e.data))Reference references/sse.md for full implementations, reconnection, and event ID resumption.
Bidirectional communication for chat applications.
Python (FastAPI):
connections: set[WebSocket] = set()
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
connections.add(websocket)
try:
while True:
data = await websocket.receive_text()
for conn in connections:
await conn.send_text(data)
except WebSocketDisconnect:
connections.remove(websocket)Reference references/websockets.md for multi-language examples, authentication, heartbeats, and scaling.
Conflict-free multi-user editing using Yjs.
TypeScript (Yjs):
import * as Y from 'yjs'
import { WebsocketProvider } from 'y-websocket'
const doc = new Y.Doc()
const provider = new WebsocketProvider('ws://localhost:1234', 'doc-id', doc)
const ytext = doc.getText('content')
ytext.observe(event => console.log('Changes:', event.changes))
ytext.insert(0, 'Hello collaborative world!')Reference references/crdts.md for conflict resolution, Yjs vs Automerge, and advanced patterns.
Track online users, cursor positions, and typing indicators.
Yjs Awareness API:
const awareness = provider.awareness
awareness.setLocalState({ user: { name: 'Alice' }, cursor: { x: 100, y: 200 } })
awareness.on('change', () => {
awareness.getStates().forEach((state, clientId) => {
renderCursor(state.cursor, state.user)
})
})Reference references/presence-patterns.md for cursor tracking, typing indicators, and online status.
Queue mutations locally and sync when connection restored.
TypeScript (Yjs + IndexedDB):
import { IndexeddbPersistence } from 'y-indexeddb'
import { WebsocketProvider } from 'y-websocket'
const doc = new Y.Doc()
const indexeddbProvider = new IndexeddbPersistence('my-doc', doc)
const wsProvider = new WebsocketProvider('wss://api.example.com/sync', 'my-doc', doc)
wsProvider.on('status', (e) => {
console.log(e.status === 'connected' ? 'Online' : 'Offline')
})Reference references/offline-sync.md for conflict resolution and sync strategies.
WebSocket:
websockets 13.x - AsyncIO-based, production-readyFastAPI WebSocket - Built-in, dependency injectionFlask-SocketIO - Socket.IO protocol with fallbacksSSE:
sse-starlette - FastAPI/Starlette, async, generator-basedFlask-SSE - Redis backend for pub/subWebSocket:
tokio-tungstenite 0.23 - Tokio integration, production-readyaxum WebSocket - Built-in extractors, tower middlewareSSE:
axum SSE - Native support, async streamsWebSocket:
gorilla/websocket - Battle-tested, compression supportnhooyr/websocket - Modern API, context supportSSE:
net/http (native) - Flusher interface, no dependenciesWebSocket:
ws - Native WebSocket server, lightweightSocket.io 4.x - Auto-reconnect, fallbacks, roomsHono WebSocket - Edge runtime (Cloudflare Workers, Deno)SSE:
EventSource (native) - Browser-native, automatic retryhttp (native) - Server-side, no dependenciesCRDT:
Yjs - Mature, TypeScript/Rust, rich text editingAutomerge - Rust/JS, JSON-like data, time-travelSSE: Browser's EventSource handles reconnection automatically with exponential backoff. WebSocket: Implement manual exponential backoff with jitter to prevent thundering herd.
Reference references/sse.md and references/websockets.md for complete implementation patterns.
Authentication: Use cookie-based (same-origin) or token in Sec-WebSocket-Protocol header. Rate Limiting: Implement per-user message throttling with sliding window.
Reference references/websockets.md for authentication and rate limiting implementations.
For horizontal scaling, use Redis pub/sub to broadcast messages across multiple backend servers.
Reference references/websockets.md for complete Redis scaling implementation.
SSE for LLM Streaming (ai-chat):
useEffect(() => {
const es = new EventSource(`/api/chat/stream?prompt=${prompt}`)
es.addEventListener('token', (e) => setContent(prev => prev + e.data))
return () => es.close()
}, [prompt])WebSocket for Live Metrics (dashboards):
useEffect(() => {
const ws = new WebSocket('ws://localhost:8000/metrics')
ws.onmessage = (e) => setMetrics(JSON.parse(e.data))
return () => ws.close()
}, [])Yjs for Collaborative Tables:
useEffect(() => {
const doc = new Y.Doc()
const provider = new WebsocketProvider('ws://localhost:1234', docId, doc)
const yarray = doc.getArray('rows')
yarray.observe(() => setRows(yarray.toArray()))
return () => provider.destroy()
}, [docId])For detailed implementation patterns, consult:
references/sse.md - SSE protocol, reconnection, event IDsreferences/websockets.md - WebSocket auth, heartbeats, scalingreferences/crdts.md - Yjs vs Automerge, conflict resolutionreferences/presence-patterns.md - Cursor tracking, typing indicatorsreferences/offline-sync.md - Mobile patterns, conflict strategiesWorking implementations available in:
examples/llm-streaming-sse/ - FastAPI SSE for LLM streaming (RUNNABLE)examples/chat-websocket/ - Python FastAPI + TypeScript chatexamples/collaborative-yjs/ - Yjs collaborative editorUse scripts to validate implementations:
scripts/test_websocket_connection.py - WebSocket connection testing© ancoleman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 12 other files (scripts, references) in skills/implementing-realtime-sync of ancoleman/ai-design-components.
Open the folder on GitHubat commit 76551b7
Implementing Realtime Sync 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 |
|---|---|---|---|---|---|---|
| Implementing Realtime Sync this skillancoleman/ai-design-components | 526 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Kkrpc Interopkunkunsh/kkrpc | 174 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Gemini Live API Devgoogle-gemini/gemini-skills | 4.3k | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Web3 PolymarketPolymarket/agent-skills | 191 | 2 repos | ~2k | Automated safety check: Pass | None | |
| Temporal Developertemporalio/skill-temporal-developer | 230 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Media over QUICmoq-dev/moq | 1.6k | — | ~460 | Automated safety check: Pass | Apache-2.0 |
kunkunsh/kkrpc
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…
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.
temporalio/skill-temporal-developer
Develop, debug, and manage Temporal applications across Python, TypeScript, Go, Java, .NET, Ruby, and Rust.
moq-dev/moq
Build live video, audio, and real-time data apps with Media over QUIC (MoQ). Use when adding live streaming, conferencing, voice AI, or real-time pub/sub to…
simonw/research
Build async web applications and APIs with Starlette 1.0, the lightweight ASGI framework for Python.
ancoleman/ai-design-components
Builds AI chat interfaces and conversational UI with streaming responses, context management, and multi-modal support.
ancoleman/ai-design-components
Builds form components and data collection interfaces including contact forms, registration flows, checkout processes, surveys, and settings pages.
ancoleman/ai-design-components
Builds tables and data grids for displaying tabular information, from simple HTML tables to complex enterprise data grids.
ancoleman/ai-design-components
Creates comprehensive dashboard and analytics interfaces that combine data visualization, KPI cards, real-time updates, and interactive layouts.
ancoleman/ai-design-components
Designs layout systems and responsive interfaces including grid systems, flexbox patterns, sidebar layouts, and responsive breakpoints.
ancoleman/ai-design-components
Displays chronological events and activity through timelines, activity feeds, Gantt charts, and calendar interfaces.
Works with
Categories
Real-time communication patterns for live updates, collaboration, and presence. Implementing Realtime Sync is an agent skill from ancoleman/ai-design-components. Real-time communication patterns for live updates, collaboration, and presence.
Implementing Realtime Sync fits situations like: building chat applications; collaborative tools; live dashboards; streaming interfaces (LLM responses.
Run `npx skills add ancoleman/ai-design-components --skill implementing-realtime-sync -a claude-code`. Or copy the skill folder (skills/implementing-realtime-sync in ancoleman/ai-design-components) into .claude/skills/implementing-realtime-sync in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ancoleman/ai-design-components --skill implementing-realtime-sync -a codex`. Or copy the skill folder (skills/implementing-realtime-sync in ancoleman/ai-design-components) into .agents/skills/implementing-realtime-sync 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 ancoleman/ai-design-components --skill implementing-realtime-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implementing-realtime-sync, .gemini/skills/implementing-realtime-sync, .github/skills/implementing-realtime-sync and .opencode/skills/implementing-realtime-sync in your project.
Going by SKILL.md and its folder, Implementing Realtime Sync needs Python for the scripts in its folder and the command-line tools its instructions call (fastapi). Our summary lists: Python 3; Node.js.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Implementing Realtime Sync is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Implementing Realtime Sync: Kkrpc Interop (kunkunsh/kkrpc, 174 stars), Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars), Web3 Polymarket (Polymarket/agent-skills, 191 stars) and Temporal Developer (temporalio/skill-temporal-developer, 230 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ancoleman (a GitHub user) maintains it in ancoleman/ai-design-components, which has 526 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on December 11, 2025.
Source: ancoleman/ai-design-components on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.