Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add echoVic/blade-code --skill web-clientgit clone --depth 1 https://github.com/echoVic/blade-codeWrote 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/echovic/blade-code/web-client)<a href="https://agentmods.dev/skills/echovic/blade-code/web-client"><img src="https://agentmods.dev/badge/skills/echovic/blade-code/web-client.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.00164 | $0.02619 |
| Opus 5 | $0.00082 | $0.01309 |
| Sonnet 5 | $0.00033 | $0.00524 |
| Haiku 4.5 | $0.00016 | $0.00262 |
Grade A, and why
knowledge-interaction-surfaces-web-client 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 4d 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 — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Module Structure
Web Client 将 HTTP 快照、单 Session SSE 与全局任务 SSE 折叠为浏览器状态,并以复合 SessionRef 驱动聊天、看板、Sidebar、预览和终端;它不直接执行 Agent。
Directory Layout
packages/cli/web/src/App.tsx— URL/本地状态恢复、全局订阅和主视图选择packages/cli/web/src/services/— HTTP、Session SSE、全局 SSE 与 Browser API 客户端packages/cli/web/src/store/session/— Session、消息、流式事件、任务与 UI slicespackages/cli/web/src/components/chat/— 对话时间线、输入、交互、Goal、Team 与状态packages/cli/web/src/components/layout/— Sidebar、导航、响应式壳层与资源入口packages/cli/web/src/components/tasks/andpackages/cli/web/src/components/kanban/— 任务创建、切换与多项目看板packages/cli/web/src/components/preview/— diff、文件、日志和 Browser 预览packages/cli/web/src/components/terminal/— WebSocket PTY 面板packages/cli/web/src/lib/— 草稿、Session 导航、身份、附件和快捷键辅助
Key Entry Points
Appinpackages/cli/web/src/App.tsx— 解析导航意图并选择临时任务、聊天或看板sessionService.openEventSubscription()inpackages/cli/web/src/services/sessionService.ts— 单 Session SSE 与 durable cursorcreateSessionSlice()inpackages/cli/web/src/store/session/slices/sessionSlice.ts— Session 导航、发送、恢复和任务动作createEventDispatcher()inpackages/cli/web/src/store/session/handlers/eventHandlers.ts— SSE 到 Store/Browser 活动的分发Layoutinpackages/cli/web/src/components/layout/Layout.tsx— Sidebar、工作区、预览与终端组合ChatInputinpackages/cli/web/src/components/chat/ChatInput.tsx— Session 级输入、草稿和能力选择
Gotchas
- Web 中 Session 身份必须始终是
{sessionId, projectPath};历史上只比 session ID 会让跨项目同名 Session 的消息、错误、预览和任务状态串线 (packages/cli/web/src/store/session/sessionIdentity.ts,git:d20b6ed5) selectSession()必须先打开并缓冲新 SSE,再并行拉取消息/Goal/Session/Team 快照,最后原子提交身份并回放缓冲事件;先替换 Store 再订阅会产生 snapshot/live 空窗 (packages/cli/web/src/store/session/slices/sessionSlice.ts,git:121ea8fc)- 新订阅准备失败时旧订阅必须继续存活;
replaceEventSubscription()只能在新连接 ready 后关闭旧连接 (packages/cli/web/src/store/session/slices/streamingSlice.ts,git:b3ffab60) ChatView不应在 React effect cleanup 中取消 Store 拥有的 SSE;StrictMode 会重放 effect,组件级 cleanup 曾导致激活后连接被意外关闭 (packages/cli/web/src/components/chat/ChatView.tsx,git:01505f04)- 活动 run 的 SSE 不在线时 Composer 必须禁用 steering;HTTP 仍可接收请求不代表客户端能安全观察确认、终态或 follow-up (
packages/cli/web/src/components/chat/ChatView.tsx) - 所有终态事件和
tool.start前必须排空 80ms delta 缓冲;否则 prose/reasoning 可能在工具卡或完成状态之后写入 (packages/cli/web/src/store/session/handlers/eventHandlers.ts,packages/cli/web/src/store/session/handlers/streamingBuffer.ts) session.completed、session.error、idle status 与 abort 会触发权威消息重同步;只依赖 live delta 无法覆盖断线期间的 committed 结果或恢复生成的消息 (packages/cli/web/src/store/session/handlers/eventHandlers.ts,packages/cli/web/src/store/session/slices/sessionSlice.ts)- 显式 URL 中的 Session 是权威意图:目标缺失或不可用时必须停在临时页面并保留导航错误,不能静默打开 localStorage 中另一个 Session (
packages/cli/web/src/store/session/sessionNavigation.ts) - Composer 草稿按复合 SessionRef 分区;文本与 output schema 写入 sessionStorage,图片只在内存 Map 保存,浏览器刷新后不会恢复图片附件 (
packages/cli/web/src/components/chat/ChatView.tsx,packages/cli/web/src/lib/composerDraft.ts) - 发送成功后才清草稿;请求拒绝时 Store 删除 optimistic user message,而 ChatInput 保留输入供重试,不能在点击发送时先清空 (
packages/cli/web/src/components/chat/ChatInput.tsx,packages/cli/web/src/store/session/slices/sessionSlice.ts) - 模型、reasoning、service tier、verbosity 与 permission mode 在活动 run 中被冻结;Composer 可以显示选择器,但发送 steering 时不会携带这些切换,Server 也会拒绝并发切换 (
packages/cli/web/src/components/chat/ChatInput.tsx,packages/cli/web/src/store/session/slices/sessionSlice.ts) - FilePreview 的请求必须同时校验 request generation 和当前 SessionRef;仅比较路径或 URL 会让 A→B→A 的旧响应覆盖新 A 状态 (
packages/cli/web/src/components/preview/FilePreview.tsx) - worktree Task 交付后文件树浏览 source project,但 durable diff 仍从 Task Session artifact 读取;discard 后则明确隐藏所有旧消息 diff (
packages/cli/web/src/components/preview/FilePreview.tsx) - Browser tab 使用
forceMount保留 iframe/控制状态;切换到 Files/Logs 时不能卸载 Browser 会话 (packages/cli/web/src/components/preview/FilePreview.tsx) - 全屏预览仍保留同一个 Chat Composer 和状态投影,只把工作区内容置于覆盖层后;不要为全屏模式创建第二套 ChatView/Input (
packages/cli/web/src/components/layout/Layout.tsx,packages/cli/web/src/components/chat/ChatView.tsx,git:3b786d37)
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.
- 4d ago First seen · 78 lines · 164 tokens per session scan A ba8e71d61812
knowledge-interaction-surfaces-web-client is a skill published in the GitHub repository echoVic/blade-code (178 stars, last pushed 2d ago), licensed MIT. It adds 164 tokens to every session and 2,619 once invoked, about $0.0008 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-09-03.
Other skills, from other repositories
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
claude-design
Design one-off HTML artifacts (landing, deck, prototype).
pretext
Use when building creative browser demos with @chenglou/pretext — DOM-free text layout for ASCII art, typographic flow around obstacles, text-as-geometry games, kinetic typography, and text-powered generative art. Produces single-file HTML demos by default.
html-artifacts
Author the HTML for a plan artifact, dashboard iframe, or Slack attachment — structure, design plan, available runtime, theming, and craft. Read this before writing HTML for saveplan, outputiframe, or slackattachhtml.
langbot-dev
Develop, build, and debug the LangBot core backend and web frontend. Use when working inside the LangBot repository — backend (Python/Quart, src/langbot/pkg), the Vite/React web UI, HTTP API controllers/services, Alembic migrations, or the MCP server. Covers the dev environment (uv, pnpm), repo layout, the API auth…