rajan-cforge/ai-runtime-monitor-enterprise

GitHub: rajan-cforge/ai-runtime-monitor-enterprise

Vigil 是一款本地运行的 AI 编码 agent 行为监控工具,通过多层捕获机制帮助开发者实时审计 AI 助手的运行时活动与安全风险。

Stars: 0 | Forks: 0

# Vigil [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/rajan-cforge/ai-runtime-monitor-enterprise/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![PyPI](https://img.shields.io/pypi/v/ai-runtime-monitor.svg)](https://pypi.org/project/ai-runtime-monitor/) [![Python](https://img.shields.io/pypi/pyversions/ai-runtime-monitor.svg)](https://pypi.org/project/ai-runtime-monitor/) **面向 AI 编码工作流的诚实运行时安全 —— 开源、本地运行、无遥测。** Vigil 会在你的机器上监控 AI 编码 agent —— Claude Code、Cursor、ChatGPT、Copilot,以及任何在本地运行或与 AI API 通信的 agent。它全面捕获来自 Claude Code (JSONL)、浏览器 AI (Chrome 扩展) 和本地模型 (Ollama) 的对话;通过带有明确各界面限制(参见下文的“诚实捕获矩阵”)的选择性 HTTPS 代理来路由桌面 AI 应用流量;监控进程和文件系统活动;扫描 agent 发出的安装命令以防范供应链风险;并检测泄露到 AI 会话中的凭证。这是运行时的行为监控,而不是事后的静态盘点。 ## 安装说明 对于 v0.2 版本,Vigil 通过源码安装。无论是最终用户、安全工程师还是贡献者,流程都是一样的 —— 克隆仓库,创建 venv,以可编辑模式安装,然后运行 setup。 ``` git clone https://github.com/rajan-cforge/ai-runtime-monitor-enterprise.git vigil cd vigil python3.12 -m venv .venv source .venv/bin/activate pip install -e . ai-monitor --setup # follow prompts; paste sudo command when shown ai-monitor --start --with-proxy # daemon + proxy + dashboard at http://localhost:9081 # 然后为桌面应用和 CLI 工具启用 API 流量捕获: export HTTPS_PROXY=http://127.0.0.1:9080 ai-monitor --enable-system-proxy ``` 当捕获功能未完全配置好时,`ai-monitor --status` 会将这两条命令作为页脚重新打印出来,因此你不需要记住它们。 在启用代理之前,**请重启所有已经在运行的 AI 应用** —— 环境变量是在进程启动时读取的,因此正在运行的应用无法在事后感知到 `HTTPS_PROXY`。(对于桌面 AI 应用,重启是必要的,但还不够:关于每个界面实际捕获了什么内容,请参见“诚实捕获矩阵”。) | 应用 / 工具 | 需要重启? | 原因 | | --------------------------------------- | --------------- | --- | | Claude Code (`claude` CLI) | **是** | Node 进程;env vars 在 fork 时固定 | | Claude Desktop | **是** | Electron 应用;原因同上。注意覆盖范围不全 —— 请参阅下方的捕获矩阵。 | | ChatGPT Desktop | **是** | Electron 应用;原因同上。注意仅覆盖 envelope —— 请参阅捕获矩阵。 | | Cursor | **是** | Electron 应用;原因同上。插件辅助程序在供应商级别绕过了代理。 | | Chrome (claude.ai, chatgpt.com, gemini) | **否** | 扩展直接捕获 DOM,与任何代理无关。内容脚本在你访问页面时运行,并读取已渲染的对话 —— 不涉及网络拦截,也没有 env vars 需要继承。 | | Ollama (本地模型) | **否** | 由进程 + 网络扫描器捕获;完全不通过 HTTPS 代理路由 | | `curl` / shell 脚本 | 视情况而定 | 如果仅依赖系统代理则为是;如果你的 shell rc 中已存在 `HTTPS_PROXY` 则为否 | ### 首次运行捕获验证 —— 正确的操作顺序 在 `ai-monitor --start --with-proxy` 之后,真正实现端到端捕获桌面应用和 CLI agent 的标准操作顺序是: ``` # 1. 退出所有带着旧环境变量已经在运行的程序。 # 在 macOS 中按 Cmd-Q(不仅仅是关闭窗口——Dock 图标必须消失): # - Claude Desktop # - ChatGPT Desktop # - Cursor # 对于活动的 `claude` CLI 会话:输入 /exit,关闭 shell 标签页。 # 2. 启用 macOS 系统代理(GUI 应用在启动时继承的一次性设置): ai-monitor --enable-system-proxy # 3. 在你的 shell rc 文件中持久化 HTTPS_PROXY,以便每个新终端都能导出它: echo 'export HTTPS_PROXY=http://127.0.0.1:9080' >> ~/.zshrc echo 'export HTTP_PROXY=http://127.0.0.1:9080' >> ~/.zshrc # Bash 用户:请改用 ~/.bashrc。 # 4. 打开一个全新的终端(环境变量是进程级别的;现有的 shell 不会自动重新加载)。 # 验证:echo $HTTPS_PROXY # 应该打印出 URL # 5. 重新启动应用(Spotlight、Finder 或 Dock 都可以——它们会在 # 进程启动时读取系统代理)。对于 CLI 工具,从全新 # 终端启动它们,以便它们继承 HTTPS_PROXY。 # 6. 验证捕获是否正在进行: ai-monitor --status # 预期结果(判定结果反映了实时证据——请参阅下方的“Honest capture matrix”): # System proxy: ✅ Enabled # Claude Code: ✅ JSONL + ✅ Proxy # Claude Desktop: ❌ System proxy on but app routing direct (IPv6 / plugin-helper bypass) # ChatGPT Desktop: ⚠ Reaches proxy, no decrypted content (host may not be in allow_hosts) # Cursor: ❌ System proxy on but app routing direct (IPv6 / plugin-helper bypass) # Chrome : ✅ Extension content (independent of proxy state) # Ollama: ✅ Process + Network ``` **为什么这个顺序很重要。** Electron 应用和 Node CLI 只在进程启动时对环境和 macOS 代理配置进行一次快照 —— 并在其整个生命周期内保留该视图。在它们运行期间重新配置没有任何效果;只有下次启动时才会应用更改。Chrome 是上述矩阵中特意设计的例外,因为其扩展读取的是已渲染的页面 DOM 而不是网络,因此它从一开始就不依赖于代理状态。 在 macOS Sequoia (15) 及更高版本中,`--setup` 会提示你在**单独的终端标签页或窗口**中粘贴一条单独的 `sudo security add-trusted-cert` 命令,同时向导会处于等待状态。向导会在 "Waiting for trust..." 提示符处占用 stdin,因此它无法在同一个 shell 中接受 sudo 命令 —— 打开一个新标签页 (Cmd-T) 或窗口,在那里粘贴命令,向导的 2 秒轮询将自动获取信任状态。这个 sudo 步骤是操作系统规定的将证书添加到管理员信任存储的必经路径,与 mitmproxy 和 Charles 所要求的相同。 包含先决条件、完整的 5 步向导演练以及 8 项检查验证协议的配套安装指南位于 `docs/INSTALL.md`(以及在 `~/Documents/vigil-notes/new-laptop-setup-guide.md` 中,用于在正式并入仓库之前进行持续的迭代)。 ### `ai-monitor --setup` 首次运行时的输出 在 macOS Sequoia (15) 及更高版本中,预期会看到类似以下的输出: ``` ══════════════════════════════════════════════════════════════ AI Runtime Monitor — First-Time Setup ══════════════════════════════════════════════════════════════ This tool monitors AI coding agents on YOUR machine. All data stays local. Nothing leaves your computer. You control what's monitored and can purge anytime. [1/5] Ensuring unique monitoring certificate... ✅ Certificate: AI Runtime Monitor - ✅ Valid for: 1 year ✅ Restricted to: AI domains only (Name Constraints) [2/5] Trust the monitoring certificate ... Trust the certificate? [Y/n]: y macOS requires trust changes to be authorized from your terminal. Run this one command: sudo security add-trusted-cert -d -r trustRoot \ -k /Library/Keychains/System.keychain \ /Users//claude_watch_output/ca-cert.pem Waiting for trust... (press Enter to check now, Ctrl-C to skip; up to 120s) ``` **打开一个新的终端标签页** (Cmd-T) 或窗口,粘贴向导显示的 sudo 命令,并在那里输入你的 macOS 密码。向导标签页被阻塞在 "Waiting for trust..." 提示符处,无法在其自己的 shell 中接受 sudo 命令 —— 这是正常的。向导每 2 秒轮询一次,并在应用信任状态后(在你粘贴后的 2-4 秒内)自动继续: ``` ✅ Certificate trusted. Continuing setup. [3/5] System proxy ... [4/5] Browser extension ... [5/5] Dashboard token + permissions ... ✅ Setup complete — Vigil is ready ``` 在此之后重新运行 `ai-monitor --setup` 是幂等的 —— 步骤 1 报告 "Reusing existing certificate",步骤 2 报告 "Certificate already trusted",向导会快速以退出状态码 0 退出,且不会更改任何状态。 ### 故障排除 **`pip install -e .` 报错 `externally-managed-environment`** —— 你没有激活 venv。运行 `source .venv/bin/activate`(从克隆的 `vigil/` 目录中)并重新运行 `pip install -e .`。激活后,你的 shell 提示符应该显示 `(.venv)`。请勿使用 `--break-system-packages`。 **找不到 `python3` 本身** —— 从 [python.org](https://www.python.org/downloads/) 安装 Python 3.10+ 或运行 `brew install python@3.12`。 **Setup 提示 "Certificate trust step failed" 但你已运行 sudo 命令** —— 向导会轮询 120 秒。如果你在窗口关闭后才完成粘贴,只需重新运行 `ai-monitor --setup` —— 步骤 1 将重用现有证书(不进行轮换),步骤 2 将识别你已应用的信任状态,然后继续执行步骤 3 及后续操作。(这是 [Bug 8](https://github.com/rajan-cforge/ai-runtime-monitor-enterprise/pull/58) 的幂等性修复。) **Setup 成功,但 `ai-monitor --start` 仍然提示 `Proxy mode requires the CA to be trusted`** —— sudo 命令需要所有三个标志:`-d`(管理员域)、`-r trustRoot`(根证书)、`-k /Library/Keychains/System.keychain`(目标)。缺少任何一个,证书虽然都在钥匙串中,但并未应用信任状态。请完全按照向导打印的输出原样重新运行该命令。 **证书在钥匙串中但 trust-settings-export 未显示** —— 通常意味着第二阶段授权 (`SecTrustSettingsSetTrustSettings`) 被拒绝。这是终端 sudo 回退机制所要解决的 [Bug 2](https://github.com/rajan-cforge/ai-runtime-monitor-enterprise/pull/59) 故障模式。向导的轮询循环是正确的路径;不要尝试通过 macOS 钥匙串访问 GUI 应用信任(在 Sequoia+ 上同样受到此限制)。 **端口 9081 或 9080 提示 "Address already in use"** —— 另一个进程正在使用该端口。运行 `lsof -iTCP:9081 -sTCP:LISTEN` 找到它,或者在不同的端口上启动 Vigil:`ai-monitor --start --port 9082`。 **Chrome 扩展卡片显示错误** —— 在 `chrome://extensions/` 中打开扩展的 "Errors" 面板。最常见的原因:将 "Load unpacked" 指向了父目录,而不是 `browser_extension/` 文件夹本身。向导在步骤 4 期间会打印确切的路径。 包含 `What to do` / `What should happen` / `How to verify` 的完整逐步验证计划位于项目笔记中:`~/Documents/vigil-notes/v02-new-laptop-test-plan.md`。 ## Vigil 监控的内容 **四层可见性 —— 设置一次,持续捕获。各界面覆盖率有所不同;有关各 AI 应用的实际覆盖状态,请参阅下方的 [诚实捕获矩阵](#honest-capture-matrix)。** | 层级 | 捕获内容 | 方式 | |-------|------------------|-----| | **AI API 流量** \* | 来自通过 HTTPS 代理路由的 agent 的 Prompts、响应、token 计数和工具调用 | 带有选择性 SSL 检查的 mitmproxy 插件 —— 仅限 AI API 主机名 (X.509 NameConstraints) | | **CLI agent 会话** | 完整的 Claude Code 对话记录,包括 system prompts、文件读取、bash 命令和工具使用 | `~/.claude/projects/` 下的 JSONL 记录尾部追踪 | | **浏览器 AI** | Claude Web (claude.ai)、ChatGPT (chatgpt.com)、Gemini (gemini.google.com) 对话 —— 在 v0.2 中已进行端到端验证。Perplexity、Copilot 和 DeepSeek 已有代码支持;正在验证中。 | Chrome 扩展(content script,隔离世界)+ Chrome 历史记录回退 | | **进程 / 文件系统 / 网络** | Agent 进程生命周期、读取或写入的文件、出站连接、CPU 和内存 | `psutil` + `watchdog` / FSEvents | \* macOS 上的 AI API 流量覆盖范围因应用而异 —— Claude Code 可全面捕获,桌面 AI 应用(Claude Desktop、ChatGPT Desktop、Cursor)有明确的各界面限制。请直接参阅下方的 [诚实捕获矩阵](#honest-capture-matrix)。 捕获具有选择性:代理的 `--allow-hosts` 正则表达式仅拦截 AI API endpoint。银行、电子邮件和无关流量将原封不动地通过。 ### 诚实捕获矩阵 v0.2.1 对 Claude Code CLI、基于浏览器的 AI(Chrome 扩展)和本地模型(Ollama)实现**全面**捕获。对于桌面 AI 应用(Claude Desktop、ChatGPT Desktop、Cursor),由于 macOS 上的各应用代理适配差异,v0.2.1 仅捕获**部分**流量。架构修复方案将在 v0.3(Network Extension 框架)中提供,该方案将在 OS 网络栈级别捕获所有桌面 AI 流量。`ai-monitor --status` 会报告每个界面真实的实时捕获状态。 | 界面 | 覆盖范围 | 机制 | v0.2.1 中缺失的内容 | |---|---|---|---| | Claude Code (`claude` CLI) | ✅ 完整 | JSONL 会话日志 + HTTPS 代理 | 无 | | Chrome 中的 `claude.ai`、`chatgpt.com`、`gemini.google.com` | ✅ 完整 | Chrome 扩展 DOM 抓取 | 尚不支持其他浏览器(Firefox/Safari/Arc) | | Ollama / 本地模型 | ✅ 完整 | 进程扫描器 + 网络监控器 | 不适用(本地;无 HTTPS 需要拦截) | | Claude Desktop | ⚠ 部分 | 通过 Electron 的 network-service 辅助程序进行 HTTPS 代理 | 主进程维持着一个指向 `api.anthropic.com` 的持久 IPv6 通道,绕过了 macOS IPv4 系统代理。辅助连接(轮询、遥测、OAuth)能到达代理;但主要的聊天补全流不能。临时解决方法:在 Chrome 中打开 `claude.ai` 上的同一对话 —— 扩展会将其捕获。在 v0.3 中已从架构上解决。此界面的实时 `--status` 判定通常为 `❌ System proxy on but app routing direct (IPv6 / plugin-helper bypass)`,因为启发式方法需要最近的解密聊天补全记录来验证捕获,而绕过的流不会产生任何记录。 | | ChatGPT Desktop | ⚠ 仅 envelope | HTTPS 代理(主机 + 时间 + 字节数) | `chatgpt.com` 被有意排除在选择性的 TLS 检查之外(v0.2 仅限 API 的 `allow_hosts` 不变量)。连接 envelope 被捕获;内容未被解密。临时解决方法:在 Chrome 中使用 `chatgpt.com`。在 v0.3 中解决。此界面的实时 `--status` 判定通常为 `⚠ Reaches proxy, no decrypted content (host may not be in allow_hosts)`。 | | Cursor | ⚠ 部分 | HTTPS 代理(IDE 级别流量) | 插件 / 扩展宿主子进程在 Cursor 供应商级别绕过了系统代理。存在时能捕获 IDE 级别的 API 调用;但捕获辅助流量。在 v0.3 中解决。当最近一小时启发式方法未检测到 IDE 流量时,实时 `--status` 判定通常为 `❌ System proxy on but app routing direct (IPv6 / plugin-helper bypass)`。 | 无论捕获状态如何,每个界面上都会运行常驻观察:进程扫描器、文件系统监视器、网络连接监控、Chrome 历史记录扫描、跨所有捕获内容的敏感数据 / DLP 检查。随时运行 `ai-monitor --status` 以获取实时的各界面判定(上面的矩阵映射了预期的判定形态;实际判定反映了数据库中当前的内容)。 ## 检测 AI 编码 agent 供应链风险 如果 prompt 诱导,现代 AI 编码 agent 会很乐意在拼写错误或被劫持的包上运行 `npm install` 或 `pip install`。Vigil 会监控 agent 发出的每一条安装命令,并在安装包之前对其进行评分: - **安装命令解析** —— npm、yarn、pnpm、pip、cargo、go get、gem、brew、apt、npx - **Typosquat 检测** —— 数十种已知模式,涵盖 Python、npm 和其他生态系统(例如 `requets` → `requests`,`colurs` → `colors`,`axois` → `axios`) - **高风险包标记** —— 网络 MITM 工具、金融 API、浏览器自动化 - **威胁情报源** —— 针对出站网络目标进行 abuse.ch URLhaus + ThreatFox 关联分析 这是运行时行为监控:Vigil 看到的是 agent 实际尝试做什么,而不是事后 `package.json` 中列出的内容。 ## 凭证泄露检测 每个捕获的 prompt、响应和工具输出在存储之前都会进行泄露的 secrets 扫描: - AWS 密钥(AKIA / ASIA)、GitHub token(`ghp_*`、`gho_*`、`ghu_*`、`ghs_*`、`ghr_*`)、私钥、JWT bearer、Anthropic / OpenAI API 密钥、Slack webhook - 信用卡(经 Luhn 验证)、SSN(带有区域/组过滤)、电话号码(上下文抑制)、数据库连接字符串 - 按严重程度分级的告警(Critical / High / Medium / Low),支持下钻到确切的会话轮次 显示时会对明文凭证进行掩码处理(前 4 位 + 星号 + 后 4 位),并在 30 天后从本地存储中自动清除。 ## 运行时监控与静态扫描器的区别 静态供应链扫描器(Bumblebee、Socket、Snyk、OSV 数据库)会盘点 `package.json` 或 `requirements.txt` 中的内容,并将其与已知恶意列表进行核对。它们非常擅长检测“此版本的此包是恶意的”。Vigil 则处于运行时层:它监控 agent 在执行操作时的实际行为 —— 安装命令、网络调用、文件写入 —— 并标记该行为,无论特定的 IOC 是否已在列表中。 这两种方法是互补的。静态扫描器在已知恶意版本进入你的依赖树之前将其捕获。Vigil 则捕获 agent 试图获取列表外内容、凭证出现在 prompt 中,或代理被要求连接到不该连接的主机的行为。如果你已经在运行静态扫描器,请将 Vigil 视为其下层的运行时 EDR 层。 ## Vigil 的目标用户 - **安全工程师** —— 监控工程组织中的 AI 工具使用情况:正在使用哪些 agent、它们正在捕获什么、哪些凭证可能暴露 - **开发者** —— 在自己的机器上运行 Claude Code、Cursor 或类似 agent,希望获得关于 agent 实际操作(包括它读取了哪些文件和调用了哪些 API)的本地审计日志 - **事件响应人员** —— 调查疑似通过 AI 编码 agent 发起的供应链攻击 —— 本地 SQLite 存储包含完整的对话、API 流量以及 agent 发出的安装命令 - **Claude Code 用户** —— 希望了解他们的会话实际花费了多少 —— Vigil 会提取 Claude Code 写入其自身 JSONL 会话日志中的每条消息成本(该成本字段由 Claude Code 在客户端计算并记录;Vigil 只负责读取和汇总)。所有提供商的每次拦截调用都会捕获 token 计数;非 Claude Code 流量(OpenAI、Anthropic API direct、Cohere 等)的单次调用美元成本在 v0.3 的路线图中。 ## 仪表盘 位于 `http://localhost:9081` 的 dashboard 默认使用 bearer token 进行身份验证,并绑定到 localhost。 - **Session Explorer** —— 完整的对话时间轴回放,带有 Deep Dive 控制面板(turn rail、API inspector、上下文仪表) - **Live Feed** —— 所有 agent 事件的实时流 - **Analytics** —— 涵盖所有提供商的 token 使用图表;Claude Code 支出(来自 Claude Code 写入其 JSONL 会话日志中的成本字段);工具频率、模型分布 - **System** —— 进程表、网络连接、文件活动 - **Alerts** —— 带有模式过滤和会话级别分类的敏感数据告警 - **Activity Timeline** —— 跨所有 AI 来源的统一按时间顺序排列的流 ## 通过代理路由 CLI agent ``` export HTTPS_PROXY=http://127.0.0.1:9080 claude # API calls now appear in the API Traffic tab ``` **Per-agent 辅助工具**(使用底层的 `claude-watch` CLI —— 完整的参数参考请参见 [docs/CLAUDE-WATCH.md](docs/CLAUDE-WATCH.md);大多数用户只需要下方的 `--configure` 形式): ``` claude-watch --configure claude_code # Adds HTTPS_PROXY to your shell profile claude-watch --configure list # Show supported agents and status claude-watch --unconfigure # Remove proxy config from shell ``` ## 路线图(不包含在 v0.2.1 中) 在此向你坦诚尚未发布的内容: - **全面的桌面 AI 应用捕获** —— Claude Desktop 的主进程 IPv6 通道、ChatGPT Desktop 的 `chatgpt.com` 流量(目前设计为仅限 envelope)以及 Cursor 的插件辅助子进程并未被 HTTPS 代理架构完全捕获。v0.3 将基于 Apple 的 Network Extension 框架发布,该框架在 OS 网络栈级别进行拦截,不受子进程或地址族的影响。Apple Developer Program 注册和 Network Extension 权限申请正在进行中;一旦获批(Apple 的典型周期为 2-4 周),将开始实施。分发模式将转变为签名的 `.pkg` + 系统扩展批准。该权限申请符合 Apple 公布的可接受使用范围(本地安全监控、开源、无远程数据传输)。 - **v0.2.2 dashboard 优化** —— 在 dashboard 中显示填充率指标,在会话视图上显示新近度指示器,将诚实矩阵集成到 UI 中(`--status` 的图形版本),每行添加来源标记徽章,以及浏览器扩展选择器漂移诊断。与 v0.3 的全面捕获前向兼容。 - **MCP server 配置扫描** —— 审计 Model Context Protocol server 配置已列入路线图,尚未发布。 - **Prompt 注入检测** —— 用于 prompt 注入模式的启发式算法和 ML。v0.3。 - **特权 macOS 辅助程序** —— 通过提供直接使用 `SecTrustSettingsSetTrustSettings` 的经过公证的辅助程序,消除设置过程中一次性 `sudo` 粘贴操作。v0.3。 - **Linux + Windows 支持** —— 进程和文件系统监控目前具有部分可移植性;macOS 特定的路径(系统代理、钥匙串)需要替代方案。Linux 的 NE 等效方案是 eBPF 或 netfilter;Windows 是 WFP。 如果你在企业试点中需要其中的任何功能,请[提出 issue](https://github.com/rajan-cforge/ai-runtime-monitor-enterprise/issues) —— 这有助于我们确定优先级。 ## 配置 生成配置文件: ``` ai-monitor --init-config # Creates ~/.config/ai-runtime-monitor/config.toml ``` **ai-monitor 参数:** | 选项 | 默认值 | 描述 | |--------|---------|-------------| | `--start` | — | 启动监控 + dashboard。自 v0.2 起默认开启 HTTPS 代理。 | | `--no-proxy` | — | 在没有 HTTPS 代理的情况下启动(仅限 JSONL + 扩展捕获) | | `--port` | 9081 | dashboard HTTP 端口 | | `--setup` | — | 首次运行向导(幂等 —— 重用现有的有效 CA) | | `--regenerate-ca` | — | `--setup` 的修饰符:强制重新生成 CA | | `--status` | — | 显示运行时状态(监控器、代理、证书、安全) | | `--scan` | — | 一次性进程/网络扫描 | | `--install-service` | — | 安装为 macOS LaunchAgent(登录时自动启动) | | `--init-config` | — | 生成默认的 config.toml | | `--version` | — | 打印已安装的版本 | **`claude-watch` 是用于高级用途的底层 CLI**(仅限代理模式且无 dashboard 守护进程、per-agent shell profile 配置、临时调试)。大多数用户永远不需要直接使用它 —— `ai-monitor --setup` 和 `ai-monitor --start --with-proxy` 负责处理完整的安装 + 捕获流程。完整的参数参考:[docs/CLAUDE-WATCH.md](docs/CLAUDE-WATCH.md)。 输出目录:`~/claude_watch_output/` 完整的 API 参考、数据库 schema 和安全模型,请参见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。关于 STRIDE 威胁模型和信任边界分析,请参见 [docs/spec/THREAT-MODEL.md](docs/spec/THREAT-MODEL.md)。 ## 开发 ``` git clone https://github.com/rajan-cforge/ai-runtime-monitor-enterprise cd ai-runtime-monitor-enterprise make dev # Install with dev deps make test # Run the test suite make lint # Lint check ``` ## 安全 如需报告漏洞,请参阅 [SECURITY.md](SECURITY.md)。邮箱:`security@gocloudforge.com`。目标响应时间为 48 小时内确认。 ## 许可证 Apache License 2.0。完整文本请参见 [LICENSE](LICENSE)。 版权所有 2026 GoCloudForge, Inc.
标签:AI安全, AI风险缓解, Chat Copilot, StruQ, 代理服务, 本地防御, 终端安全, 网络信息收集, 行为监控, 逆向工具