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 acp-host-integrationgit 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/acp-host-integration)<a href="https://agentmods.dev/skills/echovic/blade-code/acp-host-integration"><img src="https://agentmods.dev/badge/skills/echovic/blade-code/acp-host-integration/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/echovic/blade-code/acp-host-integration"><img src="https://agentmods.dev/badge/skills/echovic/blade-code/acp-host-integration.svg" alt="Reviewed on agentmods" width="80" 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.02356 |
| Opus 5.5 | $0.00066 | $0.00942 |
| Sonnet 5.5 | $0.00033 | $0.00471 |
| Haiku 4.5 | $0.00016 | $0.00236 |
Grade A, and why
knowledge-interaction-surfaces-acp-host-integration 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 1mo 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Module Structure
ACP 层把每个宿主 Session 映射为独占的 Agent、SessionRuntime、文件系统/终端服务和 有界更新队列,通过 stdio NDJSON 与 IDE 通信。
Directory Layout
packages/cli/src/acp/index.ts— stdio Web Streams 与 ACP connection 生命周期packages/cli/src/acp/BladeAgent.ts— 协议方法、Session residency 和配置能力packages/cli/src/acp/Session.ts— prompt、历史、权限、LoopEvent 与 update 投影packages/cli/src/acp/AcpServiceContext.ts— 按 Session 隔离的 FS/Terminal 后端packages/cli/src/acp/AcpFileSystemService.ts— ACP 文本文件能力适配packages/cli/src/services/FileSystemService.ts— 本地/远程文件系统公共接口packages/cli/src/tools/display/ToolResultProjector.ts— ACP 工具详情裁剪
Key Entry Points
runAcpIntegration()inpackages/cli/src/acp/index.ts— 建立 AgentSideConnection 并绑定关闭清理BladeAgent.initialize()inpackages/cli/src/acp/BladeAgent.ts— 协商协议和 Agent 能力BladeAgent.newSession()andBladeAgent.loadSession()— 创建或原子替换宿主 SessionAcpSession.initialize()inpackages/cli/src/acp/Session.ts— 创建服务上下文、恢复交互和 RuntimeAcpSession.prompt()inpackages/cli/src/acp/Session.ts— 处理 prompt 并串行投影事件
Gotchas
session/load必须在返回响应前按协议回放所有用户可见历史;system、tool 和内部消息留在模型上下文但不发送给宿主 (packages/cli/src/acp/BladeAgent.ts,packages/cli/src/acp/Session.ts,git:6d712a03)- 同一个 Session 的并发 load/close 通过
sessionLoadQueues串行,旧 owner 完全销毁后才能提交新 owner;否则两个 Runtime 会同时消费同一 durable inbox (packages/cli/src/acp/BladeAgent.ts,git:804a5c64) - ACP Runtime residency 的
allowEviction为 false;容量满时新 Session 直接返回结构化 internal error,不能静默逐出宿主仍持有的 Session (packages/cli/src/acp/BladeAgent.ts) - 宿主声明
fs.readTextFile/writeTextFile后,远端调用失败必须 fail closed,不能读取或写入 Agent 主机上的同名路径;只有未声明能力时才选择本地 FS (packages/cli/src/acp/AcpFileSystemService.ts) - Terminal 后端在 Session 初始化时按 capability 选择:声明 terminal 后远端创建失败不自动本地执行,未声明 terminal 才使用绑定 Session cwd 的本地后端 (
packages/cli/src/acp/AcpServiceContext.ts,docs/testing/acp-terminal-capability-routing-evidence.md,git:4991291e) - ACP terminal 的
currentOutput()是累计快照而非增量;轮询必须按已观察长度切 delta,输出回退或 truncated 时重建 capture 并标记 accounting incomplete (packages/cli/src/acp/AcpServiceContext.ts) - terminal timeout/abort 的完成顺序是 kill → 停止轮询 → 最终读取 → release;提前返回会丢尾部输出并泄漏宿主 terminal (
packages/cli/src/acp/AcpServiceContext.ts) - 所有
sessionUpdate()共用一个BoundedSerialEgress;任何 overflow、超时或 connection abort 会中止当前 prompt、user shell 和 side conversation,而不是继续生成未送达内容 (packages/cli/src/acp/Session.ts,git:1af43232) closeSession会以discardPendingInput: true销毁,连接级 shutdown 默认保留 durable inbox 供下次恢复;这两个关闭语义不能合并 (packages/cli/src/acp/BladeAgent.ts,packages/cli/src/acp/Session.ts,git:e260f4bc)available_commands_update必须延迟到session/new或session/load响应之后;立即发送会命中尚未准备好的宿主 (packages/cli/src/acp/Session.ts)- ACP 的
auto-edit与 Blade 内部autoEdit名称不同,模式变更必须先持久化 Session 权限,再发送current_mode_update(packages/cli/src/acp/BladeAgent.ts,packages/cli/src/acp/Session.ts) - 模型、reasoning、tier、verbosity 和 communication style 在 prompt 活动期间不可切换;持久化 metadata 失败时模型切换会回滚 Runtime (
packages/cli/src/acp/Session.ts) - ACP
!命令始终要求 Session terminal 后端,allowLocalFallback为 false;远程宿主 terminal 失败不能偷偷在 Blade 主机执行 (packages/cli/src/acp/Session.ts,packages/cli/src/acp/AcpServiceContext.ts)
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.
- 1mo ago First seen · 73 lines · 164 tokens per session scan A 8050b3dae924
knowledge-interaction-surfaces-acp-host-integration is a skill published in the GitHub repository echoVic/blade-code (181 stars, last pushed 3d ago), licensed MIT. It adds 164 tokens to every session and 2,356 once invoked, about $0.0007 per session on Opus 5.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
clinical-reports
Write comprehensive clinical reports including case reports (CARE guidelines), diagnostic reports (radiology/pathology/lab), clinical trial reports (ICH-E3, SAE, CSR), and patient documentation (SOAP, H&P, discharge summaries). Full support with templates, regulatory compliance (HIPAA, FDA, ICH-GCP), and validation…
clinical-decision-support
Generate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading…
gget
Fast CLI/Python queries to 20+ bioinformatics databases. Use for quick lookups: gene info, BLAST searches, AlphaFold structures, enrichment analysis. Best for interactive exploration, simple queries. For batch processing or advanced BLAST use biopython; for multi-database Python workflows use bioservices.
immunology-assays
Computational analysis of immunology experimental data. ATAC-seq differential accessibility, immune cell tracking from microscopy, ELISA data processing with 4-parameter logistic fitting, immunohistochemistry quantification, antibody titer analysis, and cell cycle phase duration estimation. For flow cytometry use…
molecular-cloning
Molecular cloning simulation and design. PCR amplicon prediction, restriction enzyme digestion, Golden Gate and Gibson assembly simulation, primer design, CRISPR sgRNA design, and plasmid annotation. For protein-level sequence analysis use biopython or esm; for database lookups use gene-database or ensembl-database.
geo-database
Access NCBI GEO for gene expression/genomics data. Search/download microarray and RNA-seq datasets (GSE, GSM, GPL), retrieve SOFT/Matrix files, for transcriptomics and expression analysis.