{
  "schemaVersion": 2,
  "generatedAt": "2026-11-12T03:16:09.165Z",
  "count": 72,
  "extensions": [
    {
      "id": "aiti-acp-agent",
      "name": "ACP 会话后端",
      "description": "泛用 ACP 驱动 —— 一个适配器接所有 Agent Client Protocol agent（25 家内置自动探测，对齐 agent-shell 全量清单 + 自定义后端面板 + 授权卡/队列/模型目录）",
      "soul": "协议统一了，适配器只需要写一次。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.3.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-acp-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "acp",
        "agent-client-protocol",
        "session",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-acp-agent.html"
    },
    {
      "id": "aiti-agent-manager",
      "name": "Agent 管理界面",
      "description": "统一聚合外部 agent 登录态 + 登录操作代理 + 多账号档（备份/别名/一键切换）+ 账号额度显示——不实现任何登录协议",
      "soul": "六家 agent 登录态，一屏看尽；多账号轮换，一键切换。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.2.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-agent-manager/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "agent",
        "manager",
        "login",
        "oauth",
        "account",
        "quota",
        "credits",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-agent-manager.html"
    },
    {
      "id": "aiti-ai-input",
      "name": "AI 输入增强",
      "description": "聊天输入框增强 —— L0/L1 两层自动补全 + 收藏联想 + 🎤 实时 ASR 语音输入（多引擎可插拔/热词/2-pass 精修）+ 听写检测修复",
      "soul": "你还没打完的字，它已经替你想到一半了。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.4.10",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-ai-input/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "input",
        "autocomplete",
        "voice",
        "speech",
        "chat",
        "asr"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ai-input.html"
    },
    {
      "id": "aiti-ai-schedule",
      "name": "aiti-ai-schedule",
      "description": "pi-web 常驻调度器 —— 扩展声明式定时任务 + AI 计划（cron/间隔/一次性）+ 三模式执行引擎 + AI 自建计划工具 + 管理页",
      "soul": "别再每个扩展自造 setInterval 了——声明即调度，AI 也能自己排班。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.4.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 内置于 pi-web 扩展目录，随 pi-web 启动；门控见下方「门控与部署」\n",
      "license": "MIT",
      "tags": [
        "scheduler",
        "cron",
        "interval",
        "ai-plan",
        "declarative"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ai-schedule.html"
    },
    {
      "id": "aiti-ai-speek",
      "name": "跟读模式",
      "description": "AI 输出语音朗读——可切音色/暂停/跳过/停止；默认浏览器 Web Speech，可选 edge-tts",
      "soul": "AI 说给你听。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.7",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "tts",
        "speech",
        "audio"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ai-speek.html"
    },
    {
      "id": "aiti-ai-usage",
      "name": "aiti-ai-usage",
      "description": "AI token 用量统计 —— workspace/provider/model/key/时段多维报表，任意多维组合透视 + 桑基图 + CSV 导出，事件驱动零轮询，独立 SQLite 存储",
      "soul": "用量不是账单来了才知道——每一枚 token 都该有去向。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-ai-usage/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "usage",
        "token",
        "statistics",
        "sqlite",
        "dashboard"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ai-usage.html"
    },
    {
      "id": "aiti-app-center",
      "name": "应用中心",
      "description": "左栏区块栈全部折叠后空白态的应用抽屉（开始菜单）——应用视图（动作/面板/管理入口卡，hover 快捷钉 + 信息页）与开关视图（feature 开关按扩展分组）双视图单行切换，tag 式分类（内部固定分类多语 + 自定义分类 + 默认 other）、按视图搜索、编辑模式排序/隐藏/恢复",
      "soul": "所有插件入口的家——折叠即开始菜单。",
      "type": "aiti-ext",
      "category": "系统与管理",
      "version": "0.2.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 消费方 session-manager（optionalDependsOn 软依赖）经 aiti-app-center.api 服务渲染进 DockStack filler\n",
      "license": "MIT",
      "tags": [
        "app-center",
        "launcher",
        "start-menu",
        "dock",
        "spacer",
        "category",
        "apps"
      ],
      "installable": true,
      "docs": "/extensions/aiti-app-center.html"
    },
    {
      "id": "aiti-append-system",
      "name": "追加系统提示词",
      "description": "管理 pi 的 APPEND_SYSTEM.md（会话启动时追加进 system prompt）——全局 ~/.pi/agent/ 与项目 <cwd>/.pi/ 两份，网页面板在线编辑保存，🤖 AI 帮你起草并直接写入",
      "soul": "一句提醒，次次生效。",
      "type": "aiti-ext",
      "category": "效率工具",
      "version": "0.1.0",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-append-system/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "system-prompt",
        "append-system",
        "prompt",
        "rules",
        "pi"
      ],
      "installable": true,
      "docs": "/extensions/aiti-append-system.html"
    },
    {
      "id": "aiti-attach-agent",
      "name": "附着会话后端",
      "description": "Socket 附着已运行 agent 进程 —— 连接 pi TUI bridge；支持环境变量全自动（PI_WEB_BRIDGE_AUTO=1 任何 CLI 会话自动上桥）；followUp 排队回显 + 图片附件透传 + 空闲超时退出",
      "soul": "不抢方向盘——agent 已经在跑，附着上去看就好。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.6",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-attach-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "attach",
        "socket",
        "tui",
        "session",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-attach-agent.html"
    },
    {
      "id": "aiti-backup",
      "name": "aiti-backup",
      "description": "pi-web 数据备份扩展（state 层快照：硬链接增量 + 保留轮转 + 源严格只读；与 aiti-configs 互补）",
      "soul": "config 有 aiti-configs，state 的大数据不该靠手动复制续命。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-backup/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "backup",
        "snapshot",
        "hardlink",
        "incremental",
        "data-protection"
      ],
      "installable": true,
      "docs": "/extensions/aiti-backup.html"
    },
    {
      "id": "aiti-bridge-probe",
      "name": "桥连接探针",
      "description": "手机端桥/SSE 连接探针（临时诊断）——页面侧采集生命周期/EventSource/fetch/心跳缺口证据落盘供 AI 分析；问题定位后应卸载",
      "soul": "SSE 断在哪一环，让证据说话。",
      "type": "aiti-ext",
      "category": "调试",
      "version": "0.1.0",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "debug",
        "bridge",
        "sse",
        "mobile",
        "diagnostics"
      ],
      "installable": true,
      "docs": "/extensions/aiti-bridge-probe.html"
    },
    {
      "id": "aiti-channels",
      "name": "IM 渠道",
      "description": "IM 渠道接入 + cc-connect 大前端外壳 —— 托管 cc-connect 进程、概览/项目/通道/会话面板、socket API 出站发消息",
      "soul": "AI 不该被锁在网页里——钉钉/飞书/微信都是它的窗口。",
      "type": "aiti-ext",
      "category": "IM 渠道",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-channels/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "im",
        "dingtalk",
        "feishu",
        "wechat",
        "cc-connect",
        "channel"
      ],
      "installable": true,
      "docs": "/extensions/aiti-channels.html"
    },
    {
      "id": "aiti-claude-code-agent",
      "name": "Claude Code 会话后端",
      "description": "驱动 Claude Code CLI 会话 —— 从 All Sessions 恢复历史行（agentKey: claude）；claude 2.1.318+ keyring 凭据三级裁决登录态",
      "soul": "历史会话不是化石——点一下就活过来。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-claude-code-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "claude-code",
        "cli",
        "session",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-claude-code-agent.html"
    },
    {
      "id": "aiti-cmd",
      "name": "aiti-cmd",
      "description": "命令管理器 —— 真 PTY 终端 + 常用命令 + 消息识别执行 + agent 命令实时观察 + 跨扩展统一执行出口",
      "soul": "大脑留给思考，命令交给收藏夹。",
      "type": "aiti-ext",
      "category": "命令工具",
      "version": "0.1.8",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-cmd/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "terminal",
        "command",
        "pty",
        "agent",
        "audit",
        "suggest"
      ],
      "installable": true,
      "docs": "/extensions/aiti-cmd.html"
    },
    {
      "id": "aiti-codebuddy-agent",
      "name": "CodeBuddy Code 会话后端",
      "description": "腾讯 CodeBuddy Code CLI（cbc）驱动 —— stream 长连接（默认）+ exec 兜底双模式 + --resume 接入 All Sessions，control_request 三通道，API-key env 登录",
      "soul": "腾讯 CodeBuddy 会话，哪儿都能接上聊。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.6",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-codebuddy-agent/ 后 reload\n# 需要本机可用 cbc：npm i -g @tencent-ai/codebuddy-code（或依赖 npx 兜底）\n",
      "license": "MIT",
      "tags": [
        "codebuddy",
        "tencent",
        "cbc",
        "workbuddy",
        "cli",
        "session",
        "multi-agent",
        "glm",
        "kimi"
      ],
      "installable": true,
      "docs": "/extensions/aiti-codebuddy-agent.html"
    },
    {
      "id": "aiti-codex-agent",
      "name": "Codex 会话后端",
      "description": "OpenAI Codex CLI driver —— exec --json + resume 接入 All Sessions；认证双轨（auth.json OAuth / openrouter env），直播与冷回放同形原生工具卡",
      "soul": "Codex 在哪儿跑，面板就在哪儿看。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-codex-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "codex",
        "openai",
        "cli",
        "session",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-codex-agent.html"
    },
    {
      "id": "aiti-configs",
      "name": "配置版本化 + 崩溃自检",
      "description": "配置的安全网 —— AI/人改配置、改扩展改坏了，有锅可回、有 diff 可看、一键恢复；系统崩了，命令行哨兵不依赖出问题系统本身兜底恢复",
      "soul": "AI 敢乱改，因为身后有一整个 git 当后悔药。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-configs/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "config",
        "versioning",
        "git",
        "watchdog",
        "restore",
        "safety"
      ],
      "installable": true,
      "docs": "/extensions/aiti-configs.html"
    },
    {
      "id": "aiti-cpu-meter",
      "name": "流畅度检测器",
      "description": "主线程流畅度检测——读秒 + 0-100 分 + 颜色分层 + 最小化 + AI 卡顿调试（aiti-helper 帮助点）；可注入任意站点（内部版/外部版双产物）",
      "soul": "卡不卡，让数字说话；元凶是谁，让 AI 说话。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.2.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "performance",
        "monitoring",
        "devtools"
      ],
      "installable": true,
      "docs": "/extensions/aiti-cpu-meter.html"
    },
    {
      "id": "aiti-crash-fatal",
      "name": "崩溃演习",
      "description": "flag 写入 → startup throw → ⚠ 指示器 + restore-ext 幂等清除——崩溃自愈链路的演习工具",
      "soul": "崩溃要演，不要等。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.0.3",
      "status": "dev-only",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "crash",
        "drill",
        "devtools",
        "testing"
      ],
      "installable": true,
      "docs": "/extensions/aiti-crash-fatal.html"
    },
    {
      "id": "aiti-ctx-meter",
      "name": "aiti-ctx-meter",
      "description": "输入区上下文比例条指示器——桌面 compactLead 竖向比例条 + 小屏 modelInfoLead 前导位，urgency 四档色阶 + critical 呼吸，点击开宿主会话统计面板",
      "soul": "上下文还剩多少，看一眼电池就知道。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.12",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "context",
        "meter",
        "compact-lead",
        "model-info-lead",
        "urgency",
        "breathing",
        "session-stats"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ctx-meter.html"
    },
    {
      "id": "aiti-cursor-agent",
      "name": "Cursor CLI 会话接入",
      "description": "驱动 Cursor Agent CLI 会话（agentKey: cursor）——stream-json print 模式 + --resume 多轮；Cursor IDE 会话只读解析",
      "soul": "Cursor 的会话，也进 All Sessions。",
      "type": "aiti-ext",
      "category": "会话管理",
      "version": "0.1.7",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "cursor",
        "agent",
        "sessions",
        "cli"
      ],
      "installable": true,
      "docs": "/extensions/aiti-cursor-agent.html"
    },
    {
      "id": "aiti-custom-agent",
      "name": "自定义 Agent",
      "description": "UI 表单注册自定义会话后端——启动命令 + 参数前缀 + 成员 env + 桥模式，保存即热生效；generic 驱动 one-shot spawn（docker 化 / 命令包装 / 同一 CLI 多配置）",
      "soul": "一行命令，一个后端；docker 里跑 agent，从此不再手写配置。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-custom-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "custom-agent",
        "session-provider",
        "launch-wrapper",
        "docker",
        "generic-driver",
        "ui-config"
      ],
      "installable": true,
      "docs": "/extensions/aiti-custom-agent.html"
    },
    {
      "id": "aiti-debug-inject",
      "name": "AITI Debug Inject",
      "description": "极简远程调试注入 —— 把另一个 pi-web 实例的调试器注入本实例页面，服务地址是 extman 里的文本 feature，默认关闭",
      "soul": "调试器该穿在哪件衣服里，由你说了算。",
      "type": "aiti-ext",
      "category": "页面调试注入",
      "version": "0.3.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-debug-inject/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "inject",
        "launcher",
        "cross-instance",
        "debug",
        "fab"
      ],
      "installable": true,
      "docs": "/extensions/aiti-debug-inject.html"
    },
    {
      "id": "aiti-devtools",
      "name": "aiti devtools",
      "description": "pi-web 扩展 —— 注入器/桥/MCP server 端 + 方案 M agent 工具进程内注入",
      "soul": "AI 不该对着屏幕瞎猜，它该真正看见页面。",
      "type": "aiti-ext",
      "category": "页面调试注入",
      "version": "0.2.2",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "inject",
        "inspector",
        "mcp",
        "bridge",
        "aiti-devtools"
      ],
      "installable": true,
      "docs": "/extensions/aiti-devtools.html"
    },
    {
      "id": "aiti-doc-center",
      "name": "文档中心",
      "description": "workspace md 收集/整理/检索——FTS5 trigram 中文全文 + tag 七来源两层 + 📚 float 弹窗四视图",
      "soul": "文档不检索，等于没写。",
      "type": "aiti-ext",
      "category": "知识管理",
      "version": "0.1.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "docs",
        "search",
        "fts5",
        "tag"
      ],
      "installable": true,
      "docs": "/extensions/aiti-doc-center.html"
    },
    {
      "id": "aiti-draft-keeper",
      "name": "草稿保管员",
      "description": "草稿持久化 + 恢复接管 —— composer 契约 v2 唯一所有者（applyIntent 唯一写入口）、多标签共享槽位、无贡献不回写防震荡、pruneStale 7 天清理、水合后恢复",
      "soul": "崩溃可以带走页面，带不走你打到一半的话。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-draft-keeper/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "draft",
        "persistence",
        "crash-restore",
        "multi-tab",
        "composer"
      ],
      "installable": true,
      "docs": "/extensions/aiti-draft-keeper.html"
    },
    {
      "id": "aiti-echo-agent",
      "name": "Echo 会话后端",
      "description": "Echo agent —— session-provider slot 演示（多 agent 前端最小示例）",
      "soul": "先让一声回声上线，再让千军万马接入。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.6",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-echo-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "echo",
        "demo",
        "session-provider",
        "slot"
      ],
      "installable": true,
      "docs": "/extensions/aiti-echo-agent.html"
    },
    {
      "id": "aiti-editor",
      "name": "文件编辑器",
      "description": "可扩展编辑器 —— Monaco 编辑接管 + 保存（mtime 冲突 409 + 白名单/大小校验）+ 压缩包解析 + 统一图片查看器（消息图片/文件图片合一，缩放·捏合·信息面板）",
      "soul": "看到不对的代码，当场就能改——不用切出去开 IDE。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "1.0.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-editor/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "editor",
        "monaco",
        "save",
        "file-viewer",
        "archive"
      ],
      "installable": true,
      "docs": "/extensions/aiti-editor.html"
    },
    {
      "id": "aiti-event-bus",
      "name": "页面事件总线",
      "description": "页面事件总线归口——链式接管 __piPageEvents，v0.2 主题订阅（按 type 白名单过滤转发）+ publish-local 高频直连 + subscribe-topics 客户端出口，core 零改动；topics 唯一、禁止任何兜底",
      "soul": "一条总线，全部帧。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "event-bus",
        "sse",
        "page-events",
        "services",
        "infrastructure"
      ],
      "installable": true,
      "docs": "/extensions/aiti-event-bus.html"
    },
    {
      "id": "aiti-extman",
      "name": "aiti-extman",
      "description": "扩展管理器 —— 搜索/启停/安装/在线注册表",
      "soul": "管扩展的，也该是个扩展。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.8",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-extman/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "extension",
        "manager",
        "registry"
      ],
      "installable": true,
      "docs": "/extensions/aiti-extman.html"
    },
    {
      "id": "aiti-float",
      "name": "弹窗浮动增强器",
      "description": "data-ext-float 契约接管 —— 拖拽/边缘缩放/位置持久化/点按置前/双击复位/自动最大化按钮，小屏自动全屏 + 系统返回关闭浮窗；DockStack 左栏统一区块栈服务",
      "soul": "面板只管标一个属性，浮起来的一切交给它。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.5.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-float/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "float",
        "dialog",
        "drag",
        "resize",
        "mobile",
        "contract"
      ],
      "installable": true,
      "docs": "/extensions/aiti-float.html"
    },
    {
      "id": "aiti-folder",
      "name": "文件夹浏览器",
      "description": "fileViewer folder 接管 + pathPicker 目录选择器 —— 浏览/回收站删除 + git 工具条与分组提交计划（软依赖 aiti-git-ops）",
      "soul": "目录树不是导航的终点，是操作的起点。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-folder/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "folder",
        "file-viewer",
        "path-picker",
        "trash",
        "git"
      ],
      "installable": true,
      "docs": "/extensions/aiti-folder.html"
    },
    {
      "id": "aiti-git-ops",
      "name": "Git Ops 共享引擎",
      "description": "白名单 git 写引擎——checkout 预检 / stash / plan 断点 / 审计 / changed topic，供 folder 与 session-manager 消费",
      "soul": "一处写仓，处处安全。",
      "type": "aiti-ext",
      "category": "服务端引擎",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-git-ops/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "git",
        "server-side",
        "engine"
      ],
      "installable": true,
      "docs": "/extensions/aiti-git-ops.html"
    },
    {
      "id": "aiti-git-review",
      "name": "Git 代码审核",
      "description": "专职审核未提交变更 —— Monaco diff 工作区（并排/合并/纯新/大纲）+ 行级标注（必须/建议/疑问）+ anchor 标志行重映射（边审边改不失效）+ 汇总终审清单 + AI 预审（aiti_review_* 工具只注入评审会话，日常零工具）",
      "soul": "作为人类，这是我对抗ai的最后倔犟了",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.2.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-git-review/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "git",
        "review",
        "diff",
        "monaco",
        "annotation",
        "pre-review"
      ],
      "installable": true,
      "docs": "/extensions/aiti-git-review.html"
    },
    {
      "id": "aiti-git-trace",
      "name": "AI 变更追踪",
      "description": "编外 AI 变更追踪——仓根 .aiti-trace 独立追踪仓（无 git 也可 autoInit）+ op 编号 before/after 双 commit + 文件⇄消息⇄操作全链路 + 回撤 + 影子仓瘦身 compact",
      "soul": "AI 改过的每一行都有账。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.2.11",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "git",
        "trace",
        "lineage",
        "rollback"
      ],
      "installable": true,
      "docs": "/extensions/aiti-git-trace.html"
    },
    {
      "id": "aiti-helper",
      "name": "AI Helper",
      "description": "全扩展的一句话 AI 能力入口 —— 声明式 AI 帮助点（pi skills 标准）+ 输入/结果预览/审核回填 + 流式进度总线交付 + 多轮追问 + 历史与后台任务 + 用户自定义 skills（配置版本化已独立为 aiti-configs）",
      "soul": "AI 的工具该由 AI 自己接线、自己进化——人类的角色是掌舵，不是搬砖。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.5.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-helper/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "ai",
        "helper",
        "generate",
        "fill",
        "followup",
        "history",
        "user-skills",
        "lazy-loading"
      ],
      "installable": true,
      "docs": "/extensions/aiti-helper.html"
    },
    {
      "id": "aiti-inject",
      "name": "aiti-inject",
      "description": "dev 实例专用 —— 在 pi-web dev 页面注入生产 aiti-devtools launcher（FAB）",
      "soul": "调试的第一步不该是读文档。",
      "type": "aiti-ext",
      "category": "页面调试注入",
      "version": "0.3.0",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# dev 分支启动时作为 extra 扩展根注入：\nPI_WEB_EXTRA_EXTENSIONS_DIRS=/path/to/dev-exts npm run dev\n",
      "license": "MIT",
      "tags": [
        "dev",
        "inject",
        "launcher",
        "fab"
      ],
      "installable": true,
      "docs": "/extensions/aiti-inject.html"
    },
    {
      "id": "aiti-mail",
      "name": "aiti-mail",
      "description": "pi-web 内通用「邮件发送出口」——零依赖 SMTP 客户端 + 发送记录（node:sqlite）+ 管理弹窗（配置/测试/记录）",
      "soul": "配置一次 SMTP，pi-web 里任何扩展和 AI 都能发邮件。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "mail",
        "smtp",
        "email",
        "notify",
        "sqlite"
      ],
      "installable": true,
      "docs": "/extensions/aiti-mail.html"
    },
    {
      "id": "aiti-model-check",
      "name": "模型可用性管理",
      "description": "模型健康度探测 —— 对每个模型发极小探针消息，看是否可用 / 429 限流 / 异常；解析限流恢复时间（Retry-After 等），记录历史识别可用窗口；长期限流到期提醒（纯本地时间检查零探测）",
      "soul": "模型在不在家，敲门问问它。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-model-check/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "model",
        "probe",
        429,
        "rate-limit",
        "availability",
        "recovery-notify"
      ],
      "installable": true,
      "docs": "/extensions/aiti-model-check.html"
    },
    {
      "id": "aiti-model-recent",
      "name": "aiti-model-recent",
      "description": "模型选择器「最近使用」数据提供方——纯 service 扩展（零 UI），面板最近段同步取数 + pick 事件入库 LRU；localStorage key 与原实现一致零迁移",
      "soul": "常用的模型，应当在指尖。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-model-recent/ 后 reload（需宿主 ≥ service 接缝版本，defork P4）\n",
      "license": "MIT",
      "tags": [
        "model-selector",
        "recent",
        "lru",
        "service",
        "defork"
      ],
      "installable": true,
      "docs": "/extensions/aiti-model-recent.html"
    },
    {
      "id": "aiti-model-wizard",
      "name": "模型添加向导",
      "description": "引导添加 AI 提供商/模型：目录搜索（models.dev + 国内 AI 目录，中英文，贴 API 地址也能反向搜到）→ 填 token → 测试（2xx/429 都算通过）→ 选/输模型 → 写 models.json；找不到用 baseUrl 反向匹配（任意文档/代码片段自动提取 URL）/ 自动探测（漏 v1/v2 也能补，命中带 key 拉模型列表 + OpenAPI/模型前缀品牌信号）；编辑时 token 打码不返回前端",
      "soul": "地址、token、注册页——散落四方的钥匙，串成一串。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.1.10",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-model-wizard/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "model",
        "provider",
        "wizard",
        "onboarding",
        "models.dev",
        "catalog"
      ],
      "installable": true,
      "docs": "/extensions/aiti-model-wizard.html"
    },
    {
      "id": "aiti-models-import",
      "name": "模型配置导入",
      "description": "其他 agent models 配置导入——扫描 codex/ZCode/OpenCode 的 provider·模型配置成草稿，首启弹窗一次性引导导入；落盘一律经 aiti-model-wizard saveBatch（可一步撤销），绝不直写 models.json",
      "soul": "不抄配置，只搬家。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.1.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-models-import",
      "install": "",
      "license": "MIT",
      "tags": [
        "models",
        "import",
        "migration",
        "codex",
        "zcode",
        "opencode",
        "onboarding",
        "wizard"
      ],
      "installable": true,
      "docs": "/extensions/aiti-models-import.html"
    },
    {
      "id": "aiti-msg-anchor",
      "name": "消息锚点横幅",
      "description": "消息区顶部常驻横幅 —— 展示「生成当前屏幕上内容的那条用户输入」，滚动跟随回合段；可切换为第一条输入 / 最近输入 / 会话标题",
      "soul": "回错了人的话，比叫错名字还尴尬。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-msg-anchor/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "message",
        "anchor",
        "banner",
        "scroll",
        "input"
      ],
      "installable": true,
      "docs": "/extensions/aiti-msg-anchor.html"
    },
    {
      "id": "aiti-msg-nav",
      "name": "消息滚动导航",
      "description": "消息区右侧的滚动导航条 —— 到最早 / 到最新 / 上一个 / 下一个用户输入，一键直达；长按「到最新」保持屏幕常亮",
      "soul": "千楼万楼的聊天记录，电梯比楼梯好用。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-msg-nav/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "message",
        "nav",
        "scroll",
        "toolbar",
        "wake-lock"
      ],
      "installable": true,
      "docs": "/extensions/aiti-msg-nav.html"
    },
    {
      "id": "aiti-msg-smart",
      "name": "消息智能",
      "description": "消息点击识别 —— 段落/标题/代码行点击 → 引用/复制/选项弹层 + 子句/行高亮",
      "soul": "AI 说得再好，抄起来也挺费劲。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-msg-smart/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "message",
        "click",
        "quote",
        "smart"
      ],
      "installable": true,
      "docs": "/extensions/aiti-msg-smart.html"
    },
    {
      "id": "aiti-omp-agent",
      "name": "Oh My Pi Agent",
      "description": "Oh My Pi (omp.sh)——pi 最大 fork 的 RPC spawn 后端（拆分自 aiti-pi-agent 专一 omp）：omp --mode rpc 子进程 + ready 握手 / get_state 能力面 / host tools / login / branch",
      "soul": "omp 的独立世界：ready 握手 / get_state 能力面 / host tools / login / branch。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-omp-agent",
      "install": "# 需本机装有 omp（bun install -g @oh-my-pi/pi-coding-agent，bun ≥1.3.14），或 OMP_CLI 指定路径\n",
      "license": "MIT",
      "tags": [
        "omp",
        "rpc",
        "spawn",
        "session-backend",
        "host-tools",
        "login",
        "branch",
        "subagents"
      ],
      "installable": true,
      "docs": "/extensions/aiti-omp-agent.html"
    },
    {
      "id": "aiti-onlyoffice",
      "name": "OnlyOffice 深度保真编辑",
      "description": ".docx/.xlsx/.pptx 完整保真预览+编辑（OnlyOffice DocumentServer Docker 后端）。AGPL 社区版，feature 默认关",
      "soul": "深度保真档——与桌面 Office 同引擎，复杂排版编辑不将就。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 1) 部署到 ~/.pi/web/extensions/aiti-onlyoffice/ 后 reload\n# 2) 启动 DocumentServer：scripts/onlyoffice-up.sh（Docker，常态 ~2G 内存）\n# 3) 扩展管理器 → aiti-onlyoffice → 功能 → 勾选「启用 OnlyOffice」并刷新页面\n# 依赖：aiti-editor（多编辑器仲裁宿主）+ Docker\n",
      "license": "AGPL-3.0（OnlyOffice DocumentServer 社区版，可选 Docker 档不装即无）",
      "tags": [
        "word",
        "excel",
        "powerpoint",
        "onlyoffice",
        "editor",
        "docker"
      ],
      "installable": true,
      "docs": "/extensions/aiti-onlyoffice.html"
    },
    {
      "id": "aiti-opencode-agent",
      "name": "OpenCode 会话后端",
      "description": "OpenCode CLI 专属驱动 —— 历史会话在 pi-web 打开、续聊（oneshot run -s --format json）",
      "soul": "OpenCode 会话在 pi-web 里打开、续聊、回放。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.6",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "node tools/deploy.mjs   # 拷贝 + 双实例热重载；要求 opencode CLI 已登录\n",
      "license": "MIT",
      "tags": [
        "opencode",
        "agent",
        "session-provider",
        "cli"
      ],
      "installable": true,
      "docs": "/extensions/aiti-opencode-agent.html"
    },
    {
      "id": "aiti-pi-agent",
      "name": "pi 会话后端",
      "description": "spawn pi --mode rpc 子进程作为会话 —— 多 agent 前端主路径",
      "soul": "All Sessions 里最正统的一条路——pi 自己驱动自己。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.6",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-pi-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "pi",
        "rpc",
        "session",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-pi-agent.html"
    },
    {
      "id": "aiti-plan-first",
      "name": "方案先行",
      "description": "AI 开发先方案后动手 —— aiti-git-trace 事件感知（推-听架构零扫描）：md 变更弹绑定向导（方案命名优先）、大改未跟方案提醒、领先提醒「先做方案」、tags 闭环（front-matter 事实源 + 手工/自荐标签）、会话列表行前部 📋 绑定标",
      "soul": "不强制不打断，只在 md 变了和大改跑偏时轻轻提一句：先有方案，再动手。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 依赖：aiti-git-trace ≥0.2.0（services.trace v2 事件出口；缺席自动休眠，手动绑定仍可用）\n# pi 扩展 emit 需重启 pi 进程生效（终端桥接会话不触发自动提醒——见方案文档 §9）；另需\n#   aiti-prompts（slogan 提示词编辑）、aiti-doc-center（tag 词表/🧵 会话视图消费绑定标）\n",
      "license": "MIT",
      "tags": [
        "plan-first",
        "git-trace",
        "reminder",
        "sse",
        "workflow",
        "tags",
        "plan"
      ],
      "installable": true,
      "docs": "/extensions/aiti-plan-first.html"
    },
    {
      "id": "aiti-plan-review",
      "name": "方案评审",
      "description": "Plan-Sandbox 采认收尾 UI——读 review.json 契约（声明 vs 其他），采认选中并关闭沙箱 / 仅保存（保留沙箱）/ 全部丢弃 + 沙箱历史（重新提取/重用/销毁）",
      "soul": "方案落地前，最后一道闸。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.7",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "plan",
        "review",
        "sandbox",
        "lineage"
      ],
      "installable": true,
      "docs": "/extensions/aiti-plan-review.html"
    },
    {
      "id": "aiti-prompts",
      "name": "aiti prompt 片段收藏库",
      "description": "prompt 片段收藏 —— 收藏/分组/会话提取/输入即存",
      "soul": "我的输入是我宝贵的财富——好话不说二遍。",
      "type": "aiti-ext",
      "category": "命令工具",
      "version": "0.1.7",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-prompts/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "prompt",
        "collect",
        "library"
      ],
      "installable": true,
      "docs": "/extensions/aiti-prompts.html"
    },
    {
      "id": "aiti-provider-usage",
      "name": "aiti-provider-usage",
      "description": "Provider 余额/配额查询 —— 16 个适配器 id（DeepSeek/OpenRouter/Z.AI/OpenCode Go/Kimi/Codex/Copilot 等），会话信息面板「剩余额度」区块当前会话置顶展开，5min TTL 总览 + 手动刷新，事件驱动零轮询",
      "soul": "各家还剩多少额度，一面看尽。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.1.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-provider-usage/ 后 reload（需宿主 pi-web ≥ sessionInfoPanel 插槽版本，defork B1）\n",
      "license": "MIT",
      "tags": [
        "provider",
        "usage",
        "quota",
        "balance",
        "defork"
      ],
      "installable": true,
      "docs": "/extensions/aiti-provider-usage.html"
    },
    {
      "id": "aiti-qoder-agent",
      "name": "Qoder 会话后端",
      "description": "Qoder CLI 专属后端 —— 双区域 credits/listModels、WASM 签名请求、扩展 API 免开会话查询",
      "soul": "别人走 ACP 大路，它偏要走签名的独木桥——因为风景在对面。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.4.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-qoder-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "qoder",
        "qodercli",
        "credits",
        "wasm",
        "multi-agent"
      ],
      "installable": true,
      "docs": "/extensions/aiti-qoder-agent.html"
    },
    {
      "id": "aiti-queue-keeper",
      "name": "Queue Keeper",
      "description": "队列面板接管 —— 完整队列 UI（横幅/行操作/拖拽排序/回收站/撤销条/导入导出），core 回到上游同形兜底",
      "soul": "排队不可怕，可怕的是排完队忘了自己要说什么。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "queue",
        "panel",
        "drag-sort",
        "trash",
        "import-export",
        "defork"
      ],
      "installable": true,
      "docs": "/extensions/aiti-queue-keeper.html"
    },
    {
      "id": "aiti-quickstart",
      "name": "快速上手",
      "description": "空白态引导扩展——新建会话欢迎页 widget（上手步骤 / 快捷操作 / 示例提示词，走宿主 newSessionWidgets 插槽可 ⚙ 自定义）+ 左栏 DockStack 全折叠空白引导卡（与应用中心同屏共存，✕ 可关闭）+ v2 工作区获取 Hub（Git 克隆 / 上传压缩包 / 本地目录 / 新建）+ 侧栏「快速上手」静态条目（应用中心可钉住卡片，点击重返 quickstart 欢迎页）",
      "soul": "空白不可怕，第一句从这里开始。",
      "type": "aiti-ext",
      "category": "会话与项目",
      "version": "0.2.1",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 消费方 session-manager（optionalDependsOn 软依赖）经 aiti-quickstart.api 服务渲染进 DockStack filler（上半，应用中心在下）；\n# 另软依赖 aiti-event-bus（clone 进度帧）与 aiti-model-wizard（配置模型深链，缺席降级）\n",
      "license": "MIT",
      "tags": [
        "quickstart",
        "onboarding",
        "guide",
        "welcome",
        "new-session-widgets",
        "filler",
        "get-started"
      ],
      "installable": true,
      "docs": "/extensions/aiti-quickstart.html"
    },
    {
      "id": "aiti-recovery",
      "name": "aiti-recovery",
      "description": "恢复 UI 扩展——队列恢复对话框（会话中断排队消息逐条决议）+ 重启恢复向导（中断会话两步处理），红线语义保留：绝不自动投递，续跑只发「继续」",
      "soul": "中断不可怕，可怕的是找不到回去的路。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.8",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-recovery/ 后 reload（需宿主 ≥ recoveryDialog 插槽版本，defork B3）\n",
      "license": "MIT",
      "tags": [
        "recovery",
        "queue",
        "restart",
        "wizard",
        "defork"
      ],
      "installable": true,
      "docs": "/extensions/aiti-recovery.html"
    },
    {
      "id": "aiti-session-cards",
      "name": "会话请求卡",
      "description": "会话请求卡扩展——交互元语卡（zcode 方案审批 / AskUser / omp OAuth / generic 兜底）与工具授权卡完整 UI，自 pi-web core 外迁（agent 能力 UI 去核化 P1）",
      "soul": "agent 求你作答的卡片，长什么样由扩展说了算。",
      "type": "aiti-ext",
      "category": "聊天增强",
      "version": "0.1.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "session-request-card",
        "plan-approval",
        "ask-user",
        "tool-auth",
        "oauth",
        "interaction",
        "permission"
      ],
      "installable": true,
      "docs": "/extensions/aiti-session-cards.html"
    },
    {
      "id": "aiti-sheet-univer",
      "name": "Excel 表格编辑器",
      "description": ".xlsx/.xlsm 在线预览+编辑（exceljs 数据面 + Univer 视图面）；.xls/.ods 只读预览与一键转 .xlsx",
      "soul": "老格式不挡路——转换、派生、编辑各归其位。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-sheet-univer/ 后 reload\n# 依赖：aiti-editor（多编辑器仲裁宿主）；服务器端转换需 LibreOffice (soffice)\n",
      "license": "MIT（本扩展；exceljs MIT + Univer Apache-2.0 + @e965/xlsx Apache-2.0）",
      "tags": [
        "excel",
        "xlsx",
        "spreadsheet",
        "univer",
        "editor",
        "file-viewer"
      ],
      "installable": true,
      "docs": "/extensions/aiti-sheet-univer.html"
    },
    {
      "id": "aiti-subagents",
      "name": "子代理",
      "description": "子代理舰队 Fleet 观测/运行控制/Agent 管理/并发配置——fork 引擎，工具归上游 pi-subagents",
      "soul": "主 agent 负责思考，脏活累活分给专职的它。",
      "type": "aiti-ext",
      "category": "AI 能力",
      "version": "0.4.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-subagents/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "subagent",
        "delegate",
        "fleet",
        "parallel",
        "chain"
      ],
      "installable": true,
      "docs": "/extensions/aiti-subagents.html"
    },
    {
      "id": "aiti-testagent",
      "name": "TestAgent",
      "description": "Java 后端 AI 调试 MCP + IDE —— 扫描 Java 进程/attach 一键连桥/Tunnel 桥多端点纳管，JVM 内任意修改/Mock·SQL 拦截模拟/热更新/诊断采样，58 工具 10 组按需暴露，全可逆",
      "soul": "所有操作可逆（delete/stop 还原），AI 放心在运行中的 JVM 里做实验。",
      "type": "bridge",
      "category": "调试",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 1) 目标 JVM 挂载 agent（httpPort 开出 HTTP API；也可运行后用 ta_attach 动态挂载）\njava -javaagent:testagent.jar=conf-dir -Dtestagent.httpPort=8564 -jar app.jar\n# 2) MCP 客户端（~/.config/mcp/mcp.json）加：\n\"aiti-testagent\": { \"command\": \"node\", \"args\": [\"<dev-repo>/mcp-testagent.cjs\"] }\n# 3) 按组过滤暴露面（可选）：--tools \"lifecycle observe jvm\" --exclude ta_heapdump\n# 开关多时不必堆 -D：项目根放 testagent.properties（testagent.* 前缀），从子目录启动自动向上发现\n",
      "license": "MIT",
      "tags": [
        "java",
        "jvm",
        "debug",
        "hotswap",
        "mcp",
        "testagent",
        "spring-boot",
        "solon",
        "arthas",
        "mock",
        "hot-reload",
        "tunnel",
        "bridge",
        "multi-endpoint"
      ],
      "installable": true,
      "docs": "/extensions/aiti-testagent.html"
    },
    {
      "id": "aiti-testagent-native",
      "name": "TestAgent Native 面板",
      "description": "testagent-native（Windows 原生进程活体操控）可视面 —— broker 进程/会话/挂钩/事件流；原 aiti-wintrace（2026-11-07 改名）",
      "soul": "任意 Windows 进程→AI 可编程工具面：API/COM 调用级追踪、原生求值、mock 篡改、函数体热替换，全可逆审计。",
      "type": "aiti-ext",
      "category": "调试",
      "version": "0.1.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 1) 常驻 tan broker（155：Startup 文件夹 start-tan.vbs——broker 8765/8766 + MCP HTTP 8767）\n#    手动：D:\\path\\to\\testagent-native\\native\\build\\win64-release\\bin\\<current-broker.txt> --port 8765 --http-port 8766\n# 2) 本面板随 pi-web 扩展部署自动生效（工具条「Win」入口）；数据源 broker HTTP 8766（env TAN_BROKER_HTTP 可改）\n# 3) AI 侧走 testagent-native-mcp：node mcp/testagent-native-mcp/register.js（38 tan_* + 7 app_* 工具）\n",
      "license": "MIT",
      "tags": [
        "windows",
        "native",
        "win32",
        "com",
        "detours",
        "injection",
        "hook",
        "trace",
        "hotpatch",
        "tan",
        "testagent-native"
      ],
      "installable": true,
      "docs": "/extensions/aiti-testagent-native.html"
    },
    {
      "id": "aiti-ui-env",
      "name": "UI 环境（桌面/无头虚拟屏）",
      "description": "后台无头服务器 UI 调试的环境分配器 —— 4 态模式裁决新启动 MCP/应用的显示环境，Xvfb+openbox+AT-SPI 虚拟屏 + VNC-on-web + RDP-on-web，Linux/Windows/macOS 三平台服务化；VNC 密码由 VNC server 自己认证（桥纯透传）",
      "soul": "没有显示器，也可以有舞台。",
      "type": "aiti-ext",
      "category": "调试",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-ui-env/ 后 reload：\ncurl -X POST http://127.0.0.1:<端口>/api/extensions/reload\n# 服务化（虚拟屏常驻）：\ncd scripts/linux && ./setup-linux.sh && ./install-service.sh\n",
      "license": "MIT",
      "tags": [
        "headless",
        "xvfb",
        "vnc",
        "rdp",
        "atspi",
        "display",
        "virtual-desktop",
        "noVNC",
        "vnc-password"
      ],
      "installable": true,
      "docs": "/extensions/aiti-ui-env.html"
    },
    {
      "id": "aiti-word-docx-preview",
      "name": "Word 文档预览",
      "description": ".docx 高保真只读预览（docx-preview：分页 / 页眉页脚 / 表格 / 图片 / 列表还原）",
      "soul": "只读档零依赖——Apache 链路看 Word，编辑交给 SuperDoc / OnlyOffice。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-word-docx-preview/ 后 reload\n# 依赖：aiti-editor（多编辑器仲裁宿主）\n",
      "license": "Apache-2.0（本扩展；源码侧 package.json 与 LICENSE 文件不一致——LICENSE 为 MIT，待统一）/ docx-preview Apache-2.0 + JSZip MIT/GPLv3 双许可",
      "tags": [
        "word",
        "docx",
        "preview",
        "docx-preview",
        "file-viewer"
      ],
      "installable": true,
      "docs": "/extensions/aiti-word-docx-preview.html"
    },
    {
      "id": "aiti-word-superdoc",
      "name": "Word 文档编辑器",
      "description": ".docx 在线编辑（SuperDoc：ProseMirror docx 双向）。AGPL 隔离于本扩展，不装即无",
      "soul": "ProseMirror 双向——打开即 docx 结构，导出即 docx 文件。",
      "type": "aiti-ext",
      "category": "开发工具",
      "version": "0.1.7",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-word-superdoc/ 后 reload\n# 依赖：aiti-editor（多编辑器仲裁宿主）\n# 注意：SuperDoc 为 AGPL-3.0——不安装本扩展即 pi-web 全局零 AGPL 前端组件\n",
      "license": "AGPL-3.0（SuperDoc，隔离于本扩展）+ 本扩展包装层 Apache-2.0（整包随 npm 按 AGPL-3.0 声明发布；源码侧 LICENSE 文件与 package.json 不一致——MIT vs AGPL-3.0，待统一）",
      "tags": [
        "word",
        "docx",
        "editor",
        "superdoc",
        "prosemirror"
      ],
      "installable": true,
      "docs": "/extensions/aiti-word-superdoc.html"
    },
    {
      "id": "aiti-zcode-agent",
      "name": "ZCode 会话后端",
      "description": "智谱 ZCode（桌面端内嵌 CLI runtime）驱动 —— app-server 长驻（默认，流式/工具卡/steer/附件）+ oneshot 兜底双通道，接入 All Sessions，合规吃 GLM 编程套餐",
      "soul": "GLM 套餐在哪儿跑，面板就在哪儿看。",
      "type": "aiti-ext",
      "category": "多 agent 后端",
      "version": "0.1.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/aiti-zcode-agent/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "zcode",
        "glm",
        "智谱",
        "bigmodel",
        "cli",
        "session",
        "multi-agent",
        "coding-plan"
      ],
      "installable": true,
      "docs": "/extensions/aiti-zcode-agent.html"
    },
    {
      "id": "demo",
      "name": "Demo Extension",
      "description": "全插槽演示扩展 —— 框架验证用，覆盖每个扩展点",
      "soul": "框架先有例子，人才有样子。",
      "type": "aiti-ext",
      "category": "示例",
      "version": "0.2.1",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 框架验证用，一般无需安装（已部署时可直接参考）\n",
      "license": "MIT",
      "tags": [
        "demo",
        "framework"
      ],
      "installable": true,
      "docs": "/extensions/demo.html"
    },
    {
      "id": "demo-lazy",
      "name": "demo-lazy",
      "description": "输入字数统计（懒加载演示扩展）",
      "soul": "懒加载的最好演示，是用户根本感觉不到它存在。",
      "type": "aiti-ext",
      "category": "系统工具",
      "version": "0.2.0",
      "status": "beta",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/demo-lazy/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "lazy",
        "demo",
        "counter"
      ],
      "installable": true,
      "docs": "/extensions/demo-lazy.html"
    },
    {
      "id": "ext-jsx-client",
      "name": "ext-jsx-client（扩展 JSX 模板）",
      "description": "扩展 client 用 JSX + TypeScript + npm 依赖的共享模板（vite lib mode + host-shim 委托）",
      "soul": "写扩展不该被迫手写 h() —— JSX + npm 依赖，复制即用。",
      "type": "other",
      "category": "开发模板",
      "version": "0.1.0",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 这不是可安装扩展，而是源码模板 —— 复制到你的扩展目录后用：\ncd <dev-repo> && cp -r templates/ext-jsx-client <your-ext> && cd <your-ext>\nnpm install && npm run build:client\n",
      "license": "MIT",
      "tags": [
        "template",
        "jsx",
        "vite",
        "client",
        "模板",
        "脚手架"
      ],
      "installable": true,
      "docs": "/extensions/ext-jsx-client.html"
    },
    {
      "id": "service-tunnels",
      "name": "Service Tunnels",
      "description": "本机服务一键公网可达 —— 端口发现（服务识别/自定义名）/ 五种暴露模式（隧道·vhost·混合·路由器映射·IPv6 直连）/ 认证网关（portal·TOTP·人脸声纹）/ DDNS 自动解析 / 网络体检 doctor",
      "soul": "本地服务不该被防火墙关起来——在哪都应该可以安全访问。",
      "type": "aiti-ext",
      "category": "服务隧道",
      "version": "0.3.9",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 源码：the internal dev repo\n# 部署：node tools/deploy.mjs（构建客户端 + 拷贝 + 目标内 npm install --omit=dev）\n# 生效：POST /api/extensions/reload\n",
      "license": "MIT",
      "tags": [
        "tunnels",
        "ports",
        "expose",
        "portmap",
        "ipv6",
        "ddns",
        "auth",
        "totp",
        "biometric",
        "doctor",
        "inject"
      ],
      "installable": true,
      "docs": "/extensions/service-tunnels.html"
    },
    {
      "id": "session-manager",
      "name": "session-manager",
      "description": "跨项目会话面板 —— tag 树+颜色 / 收藏 / 搜索 / 归档 / 看板 / 新建会话分支·Worktree 选择器 / 23 家 agent 历史解析 / DockStack 编排",
      "soul": "会话不是用完即走的流水，是每天都在累积的资产。",
      "type": "aiti-ext",
      "category": "会话管理",
      "version": "0.2.14",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/session-manager/ 后 reload：\ncurl -X POST http://127.0.0.1:<端口>/api/extensions/reload\n",
      "license": "MIT",
      "tags": [
        "sessions",
        "tag",
        "search",
        "archive",
        "worktree",
        "dock",
        "agents"
      ],
      "installable": true,
      "docs": "/extensions/session-manager.html"
    },
    {
      "id": "sm-demo-source",
      "name": "第三方会话源示例",
      "description": "session-manager 第三方 agent source 贡献方示例 —— §4.8 slot 契约最小可运行模板",
      "soul": "想给 All Sessions 贡献会话源？抄这个就对了。",
      "type": "aiti-ext",
      "category": "示例",
      "version": "0.1.0",
      "status": "experimental",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "# 部署到 ~/.pi/web/extensions/sm-demo-source/ 后 reload\n",
      "license": "MIT",
      "tags": [
        "session-manager",
        "demo",
        "agent-source",
        "slot",
        "example"
      ],
      "installable": true,
      "docs": "/extensions/sm-demo-source.html"
    }
  ],
  "integrations": [
    {
      "id": "aiti-devtools-astro",
      "name": "aiti-devtools-astro",
      "description": "Astro Integration —— 一行 integrations = 桥/MCP + 全页自动注入（含 SSR 页面）",
      "soul": "官方机制能做的，就不该发明私有姿势。",
      "type": "astro-integration",
      "category": "",
      "version": "0.2.1",
      "status": "active",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-vite",
      "install": "pnpm add -D @aiti-ai/aiti-devtools-vite\n# astro.config.mjs: integrations: [aitiAstro()]\n",
      "license": "MIT",
      "tags": [
        "astro",
        "inject"
      ],
      "installable": true,
      "docs": "/devtools/integrations/astro.html"
    },
    {
      "id": "aiti-devtools-manual",
      "name": "manual wiring",
      "description": "无专用插件的载体 —— 用 aiti-devtools-core 中间件手动接线（Express / Next / 任意 Node HTTP 服务）",
      "soul": "桥协议是公共能力，不该被某个框架绑架。",
      "type": "integration-guide",
      "category": "",
      "version": "",
      "status": "active",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "",
      "license": "MIT",
      "tags": [
        "express",
        "next",
        "manual",
        "core"
      ],
      "installable": true,
      "docs": "/devtools/integrations/manual.html"
    },
    {
      "id": "aiti-devtools-nuxt",
      "name": "aiti-devtools-nuxt",
      "description": "Nuxt module —— 一行 modules 接入 = dev server 内置 MCP + 自动注入",
      "soul": "接入成本每多一步，就多一个永远不接的人。",
      "type": "nuxt-module",
      "category": "",
      "version": "0.1.0",
      "status": "active",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-nuxt",
      "install": "pnpm add -D @aiti-ai/aiti-devtools-nuxt\n# nuxt.config.ts: modules: ['@aiti-ai/aiti-devtools-nuxt']\n",
      "license": "MIT",
      "tags": [
        "nuxt",
        "inject"
      ],
      "installable": true,
      "docs": "/devtools/integrations/nuxt.html"
    },
    {
      "id": "aiti-devtools-vite",
      "name": "aiti-devtools-vite",
      "description": "Vite 插件 —— dev 自动本地注入，一行插件 = 同源 /aiti/ 全套",
      "soul": "接入成本每多一步，就多一个永远不接的人。",
      "type": "vite-plugin",
      "category": "",
      "version": "0.2.1",
      "status": "active",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-vite",
      "install": "pnpm add -D @aiti-ai/aiti-devtools-vite\n# vite.config.ts: plugins: [aitiDevtools()]\n",
      "license": "MIT",
      "tags": [
        "vite",
        "inject"
      ],
      "installable": true,
      "docs": "/devtools/integrations/vite.html"
    },
    {
      "id": "aiti-devtools-vue",
      "name": "aiti-devtools-vue",
      "description": "Vue 工程插件 —— dev 自动本地注入（规划中）",
      "soul": "接入成本每多一步，就多一个永远不接的人。",
      "type": "vue-plugin",
      "category": "",
      "version": "0.1.0",
      "status": "planned",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-vue",
      "install": "",
      "license": "MIT",
      "tags": [
        "vue",
        "inject"
      ],
      "installable": true,
      "docs": "/devtools/integrations/vue.html"
    },
    {
      "id": "aiti-devtools-webpack",
      "name": "aiti-devtools-webpack",
      "description": "webpack-dev-server 插件 —— 一个插件 = dev server 内置 MCP + 自动注入（Rspack 直接复用）",
      "soul": "接入成本每多一步，就多一个永远不接的人。",
      "type": "webpack-plugin",
      "category": "",
      "version": "0.1.0",
      "status": "active",
      "author": "",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-webpack",
      "install": "pnpm add -D @aiti-ai/aiti-devtools-webpack html-webpack-plugin\n# webpack.config.js: plugins: [new AitiDevtoolsWebpackPlugin()]\n",
      "license": "MIT",
      "tags": [
        "webpack",
        "rspack",
        "inject"
      ],
      "installable": true,
      "docs": "/devtools/integrations/webpack-rspack.html"
    },
    {
      "id": "aiti-devtools-browser-ext",
      "name": "浏览器扩展",
      "description": "任意网页零改造注入 aiti-devtools——Chrome / Edge / Firefox（含 Android）MV3 扩展：FAB + Inspector + AI 窗，配合桥即可让 pi / claude / opencode 操作任意页面",
      "soul": "别人的网页，也是我的调试现场。",
      "type": "browser-ext",
      "category": "页面调试注入",
      "version": "0.1.0",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "",
      "install": "cd browser-ext && npm run build   # → dist/chrome dist/edge dist/firefox\n# Chrome/Edge：chrome://extensions 开发者模式 → 加载已解压扩展程序 → dist/chrome（Edge 选 dist/edge）\n# Firefox：about:debugging → 临时载入附加组件 → dist/firefox/manifest.json（Android 需 ≥128）\n# Firefox 永久：npm run package → dist/aiti-devtools-firefox.xpi（ESR/DevEdition/Nightly 免签安装；正式版/Android 需 AMO 签名）\n",
      "license": "MIT",
      "tags": [
        "chrome",
        "edge",
        "firefox",
        "mv3",
        "content-script",
        "injection",
        "any-page"
      ],
      "installable": false,
      "docs": "/devtools/browser-ext.html"
    },
    {
      "id": "aiti-bridge",
      "name": "aiti-bridge",
      "description": "MCP 桥 —— 让任意 AI agent 操作页面、直达 IDE AI 窗口",
      "soul": "隔着玻璃看页面的 AI，永远只是个旁观者。",
      "type": "bridge",
      "category": "MCP 桥",
      "version": "0.2.0",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-bridge",
      "install": "npx @aiti-ai/aiti-bridge --port 8777\n# 配置成 MCP server 后，AI 即可 page_exec / page_snapshot / user_confirm ...\n",
      "license": "MIT",
      "tags": [
        "mcp",
        "bridge",
        "ai-agent"
      ],
      "installable": false,
      "docs": "/extensions/aiti-bridge.html"
    },
    {
      "id": "aiti-devtools-dsh",
      "name": "aiti-devtools DSH 适配",
      "description": "把 aiti-devtools 完整移植到 DeepSeek Harness（DSH）—— 同款 launcher + 16 工具 + agent/pre-step 占位符替换（[元素N]/[回答N]/[错误N]）+ AI 窗候选条（元素/回答/错误三色 chip），官方 web UI 即 AI 窗",
      "soul": "页面里的 AI 不挑宿主——换一个 harness，同一场面对面调试照演。",
      "type": "host-adapter",
      "category": "宿主适配",
      "version": "0.8.2",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-dsh",
      "install": "# npm，装进 DSH web profile：\ndsh plugin --profile web add @aiti-ai/aiti-devtools-dsh\n# npm 11 arborist 坑：peerDeps `*` 会崩，须 --legacy-peer-deps\n# profile 根级 core 是独立依赖行，core 升级后须显式：\ndsh plugin --profile web add @aiti-ai/aiti-devtools-core@^0.3.10\n# 构建：node tools/build.mjs（esbuild → lib/index.js + lib/client.js）\n",
      "license": "MIT",
      "tags": [
        "dsh",
        "deepseek-harness",
        "cordis",
        "adapter",
        "launcher",
        "placeholder"
      ],
      "installable": false,
      "docs": "/extensions/aiti-devtools-dsh.html"
    },
    {
      "id": "aiti-devtools-openclaw",
      "name": "aiti-devtools OpenClaw 适配",
      "description": "OpenClaw 插件直连跳过 MCP —— 16 工具注册进 agent 会话 + 会话自动上线 + chat.send 消息注入 + 答复回传 + 占位符对照表，cockpit 伴生 AI 窗",
      "soul": "好用的调试助手不该被协议门槛挡住——能 registerTool，就能开门。",
      "type": "host-adapter",
      "category": "宿主适配",
      "version": "0.6.8",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-openclaw",
      "install": "# 源码安装（--link 本地目录）\nopenclaw plugins enable aiti-devtools && 重启 gateway\n# openclaw 2026.10.10+ 两道门：先 openclaw doctor --fix（state 库迁移，先备份 ~/.openclaw/state/）；\n# 升级后插件报 requires capability consent → openclaw plugins enable aiti-devtools --accept-capabilities + 重启即清\n# 桥地址：plugins.entries.aiti-devtools.config.bridgeUrl > env AITI_BRIDGE_URL > http://127.0.0.1:8777\n# 工具定义构建：node tools/build.mjs（拉桥 tools/list 内嵌 16 工具）\n",
      "license": "MIT",
      "tags": [
        "openclaw",
        "adapter",
        "plugin",
        "bridge-rest",
        "chat-send",
        "placeholder"
      ],
      "installable": false,
      "docs": "/extensions/aiti-devtools-openclaw.html"
    },
    {
      "id": "aiti-devtools-opencode",
      "name": "aiti-devtools OpenCode 适配",
      "description": "OpenCode host 插件（16 工具进程内注册 + messages.transform 占位符改写）+ 官方 web UI 即 AI 窗（nginx 反代剥 CSP + sub_filter 注入，不 fork）",
      "soul": "官方的界面已经够好——我们只加一层，不抢整个门面。",
      "type": "host-adapter",
      "category": "宿主适配",
      "version": "0.3.1",
      "status": "active",
      "author": "aiti-ai",
      "publisher": "aiti-ai",
      "website": "https://aiti.pw",
      "repo": "",
      "npm": "@aiti-ai/aiti-devtools-opencode",
      "install": "# npm 包（opencode.json）\n{ \"plugin\": [\"@aiti-ai/aiti-devtools-opencode\"] }\n# 或本地：cd opencode-ext/aiti-devtools-opencode && npm run deploy（→ ~/.config/opencode/plugins/）\n# 桥默认 http://127.0.0.1:8777（AITI_BRIDGE_URL 覆盖——裸 base，不带 /aiti，插件自补；带尾巴会变 /aiti/aiti）\n",
      "license": "MIT",
      "tags": [
        "opencode",
        "adapter",
        "plugin",
        "messages-transform",
        "webui",
        "placeholder"
      ],
      "installable": false,
      "docs": "/extensions/aiti-devtools-opencode.html"
    }
  ]
}