derKosi/Ohm

GitHub: derKosi/Ohm

Ohm 是一款跨平台的本地 AI 工具磁盘扫描与清理辅助工具,帮助用户发现并安全移除不需要的 AI 软件、模型及缓存以释放空间。

Stars: 0 | Forks: 0

# ⚡ Ohm **抵御 AGI 膨胀。** Ohm 会测量现有的内容——并帮助你删除不需要的部分。 这是一款跨平台(Windows、macOS、Linux)TUI 工具,能够扫描你的系统以查找与 AI 相关的软件,显示已安装的内容、它们占用的空间大小,并生成一个你可以在运行前审查的卸载脚本。**Ohm 本身绝不会删除任何内容。** ## 为什么需要它? 你测试各种 AI 工具。你安装了 agent、harness、runtime,下载了模型,配置了 SDK。几个月后,你的磁盘里塞满了一次实验留下的 14 GB 模型文件,三个你早就忘记的互相竞争的 AI 编辑器,以及一个悄悄膨胀到 80 GB 的 `.cache/huggingface` 目录。 Ohm 会找出所有这些东西。你来决定删除什么。Ohm 负责编写脚本。你可以在准备好时再运行它。 ## 隐私优先架构 AI 工具会在磁盘上存储敏感数据: - 配置文件中的 **API key**(`ANTHROPIC_API_KEY`、`OPENAI_API_KEY`、自定义提供商 token) - 暴露客户名称、雇主信息和专有结构的 **项目路径** - 包含 PII(个人身份信息)、代码片段和业务逻辑的 **对话历史** - 带有凭证和数据库连接字符串的 **MCP server 配置** - 包含专有 prompt 和业务规则的 **Agent soul 文件** - 累积了你工作上下文的 **Memory/session 文件** - 可能包含第三方 API key 的 **Plugin 配置** Ohm 将所有这些视为**机密**。该工具: - 绝不将扫描结果传输到任何地方 - 没有任何网络功能——代码库中没有 HTTP client - 将所有状态保存在本地(`~/.ohm/state.json`) - 生成的清理脚本完全在你的机器上本地运行 - 没有分析、没有崩溃报告、没有回传主机的更新检查 这是一个刻意的设计选择,也是核心差异化优势。如果你在 Ohm 中发现了网络代码,那就是 bug。 ## 功能 - 🔍 **扫描** — 检测 AI agent、harness、runtime、编辑器、SDK、模型缓存、配置目录、Docker 镜像、shell 修改以及残留项 - 📋 **列表** — 基于 Bubble Tea 的 TUI,显示分类、大小、路径和复选框 - 📝 **脚本输出** — 生成包含所有选中项的 `.sh` / `.ps1` 移除脚本 - 🚫 **从不执行** — Ohm 是只读的。生成的脚本供你审查和运行 - 🔒 **设计上即为离线** — 零网络调用、无遥测、无数据离开你的机器 - 🧹 **残留项检测** — 查找孤立的模型文件、过时的 PATH 条目、遗留的配置和失效的服务 - 🧠 **Memory 文件检测** — 查找 agent memory、session 历史、对话日志以及累积的上下文 - 🔑 **凭证感知** — 标记可能包含 API key 或 token 的位置(显示警告,绝不暴露内容) - 📁 **Agent 指令文件** — 查找 AGENTS.md、CLAUDE.md、.cursorrules、.windsurfrules、GEMINI.md、soul 文件、MCP 配置 - 🔌 **Plugin 检测** — 查找 ComfyUI 自定义节点、pi skill、MCP server、编辑器扩展 - 🛤️ **PATH 与 ENV 扫描** *(需手动开启)* — 检测 PATH、环境变量、shell profile 中与 AI 相关的条目 - 💾 **跨运行状态保存** — 记住你上次卸载的内容,并标记出剩余的残留项 - 🖥️ **跨平台** — 单个 Go binary,零 runtime 依赖,可在 Windows / macOS / Linux 上运行 ## 扫描分类 | # | 分类 | 查找目标 | |---|----------|---------------| | 1 | **Agent 与 Harness** | pi、Claude Code、Aider、Continue、Cline、Codex CLI、Amazon Q、Cursor Agent、OpenCode、PaperclipAI、ZenFlow、Antigravity、Mistral Vibe、MiMo Code、Amp、Droid、gptme、Codebuff、自定义 harness | | 2 | **AI 编辑器与 IDE** | Cursor、Windsurf、Augment、Zed (AI 功能)、GitHub Copilot、ZCode (Z.ai) | | 3 | **模型 Runtime** | Ollama、LM Studio、LocalAI、text-generation-webui、llama.cpp、GPT4All、KoboldCpp | | 4 | **ComfyUI 与图像模型** | ComfyUI 安装目录 + checkpoint、LoRA adapter、ControlNet、VAE、CLIP、UNet、embedding、upscale 模型、自定义节点 | | 5 | **SDK 与框架** | PyTorch、TensorFlow、HuggingFace、Anthropic SDK、OpenAI SDK、LangChain、LlamaIndex、Playwright、Selenium | | 6 | **模型缓存** | HuggingFace 缓存、.gguf 文件、Ollama 模型库、safetensors、PyTorch hub 缓存 | | 7 | **Agent 配置与指令** | AGENTS.md、CLAUDE.md、.cursorrules、.windsurfrules、GEMINI.md、copilot-instructions.md、soul 文件、system prompt、CONVENTIONS.md | | 8 | **Agent Memory 与 Session** | pi session、Claude 对话历史、Aider 聊天日志、Continue session 数据、Vibe 历史、PaperclipAI 上下文 | | 9 | **MCP 配置** | .mcp.json 文件、MCP server 配置(通常包含 API key 和连接字符串) | | 10 | **Plugin 与扩展** | ComfyUI 自定义节点、pi skill/plugin、VS Code AI 扩展、JetBrains AI plugin | | 11 | **配置与数据目录** | ~/.claude/、~/.pi/、~/.aider/、~/.cursor/、~/.codex/、~/.gemini/、~/.vibe/、~/.paperclip/、AppData 条目、.config 目录 | | 12 | **Docker** | 与 AI 相关的镜像和 volume(ollama、vllm、comfyui、localai 等) | | 13 | **残留项** | 已卸载工具留下的孤立文件、遗留的模型权重、失效的服务 | ### 可选扫描(默认禁用,需通过 flag 启用) | Flag | 扫描目标 | |------|---------------| | `--path` | 指向 AI 工具的 PATH 条目、已移除软件留下的过期条目 | | `--env` | 包含 API key、模型路径、AI 相关配置的环境变量 | | `--shell-profile` | Shell profile 修改记录(.bashrc、.zshrc、PowerShell $PROFILE、.profile) | | `--deep` | 全局主目录深度抓取,查找任何与 AI 相关的文件特征(速度较慢,但更彻底) | ### 检测方法 Ohm 采用两层检测机制: 1. **已知软件数据库** — 精心整理的特征库,包含安装路径、配置位置和卸载命令。完整目录请参见 [`docs/SIGNATURES.md`](docs/SIGNATURES.md)。可通过 `~/.ohm/signatures/` 进行扩展(支持通过插入式 YAML 文件添加自定义/私有工具) 2. **启发式检测** — 文件系统指纹:已知文件名(AGENTS.md、.gguf、safetensors)、目录模式(models/、checkpoints/、loras/)、包含 AI 相关关键字的包名、正在运行的具有 AI 相关名称的进程 ## 工作原理 ### Linux TUI(交互模式): ``` ───┤ ⚡ O H M ├─── 🔒 All scanning is local. No data leaves this machine. 🤖 Agents & Harnesses (5 found, 13.5 GB) [ ] ⚠️ pi (Coding Agent) 93.4 MB /home/Kosi/.pi [ ] 🔑 Claude Code 278 B /home/Kosi/.claude, /home/Kosi/.claude.json > [ ] 🔑 Gemini CLI (Google) 5.3 MB /home/Kosi/.gemini [ ] Mistral Vibe 523.0 KB /home/Kosi/.vibe [x] ⚠️ PaperclipAI 13.4 GB /home/Kosi/.paperclip ⚙️ Model Runtimes (1 found, 261.6 MB) [ ] Ollama 261.6 MB /usr/share/ollama 💾 Model Caches (1 found, 1.2 GB) [ ] Playwright Browsers 1.2 GB /home/Kosi/.cache/ms-playwright 📄 Agent Config & Instructions (1 found, 55.8 KB) [ ] ⚠️ Agent Instruction Files 55.8 KB (scattered across projects) 🧠 Agent Memory & Sessions (4 found, 13.4 GB) [ ] 🔑 Claude Code Memory 242 B /home/Kosi/.claude [ ] Mistral Vibe History 5.0 KB /home/Kosi/.vibe/vibehistory [x] 🔑 PaperclipAI Context 13.4 GB ...text.json, /home/Kosi/.paperclip/instances [ ] ⚠️ Gemini CLI History 5.3 MB /home/Kosi/.gemini 🧩 Plugins & Extensions (1 found, 4.3 KB) [ ] ⚠️ AI Plugins & Extensions 4.3 KB (see sub-items) 📁 Config & Data Dirs (6 found, 13.5 GB) [ ] 🔑 Claude Config 242 B /home/Kosi/.claude [ ] 🔑 Claude Config (JSON) 36 B /home/Kosi/.claude.json [ ] ⚠️ pi Config 93.4 MB /home/Kosi/.pi [ ] ⚠️ Gemini CLI Config 5.3 MB /home/Kosi/.gemini [ ] Mistral Vibe Config 523.0 KB /home/Kosi/.vibe [x] 🔑 PaperclipAI Config 13.4 GB /home/Kosi/.paperclip Total: 19 items (41.9 GB) | Selected: 3 items (40.2 GB) ↑/k up • ↓/j down • pgup/pgdn • space select • a toggle all • g generate • q quit Ohm v0.1.1 · AGPL-3.0 © 2026 Mathias Kosinski · Built with Pi Harness + GLM-5.1 · github.com/derKosi/Ohm/releases ``` ### Windows 11 TUI(交互模式): ``` ───┤ ⚡ O H M ├─── 🔒 All scanning is local. No data leaves this machine. ⚠️ WSL detected. Ohm cannot scan inside WSL from Windows. Run "ohm scan" inside WSL for a complete picture. 🤖 Agents & Harnesses (9 found, 2.6 GB) [ ] ⚠️ pi (Coding Agent) 16.4 MB C:\Users\root\.pi [ ] 🔑 Claude Code 407.2 MB ...s\root\.claude, C:\Users\root\.claude.json [ ] 🔑 Codex CLI (OpenAI) 138.6 MB C:\Users\root\.codex [ ] 🔑 Gemini CLI (Google) 725.3 MB C:\Users\root\.gemini [ ] Aider 0 B (binary found in PATH) [ ] Mistral Vibe 1.9 MB C:\Users\root\.vibe [ ] ⚠️ PaperclipAI 0 B C:\Users\root\.paperclip [ ] OpenCode 0 B (binary found in PATH) [ ] 🔑 Continue 1.4 GB C:\Users\root\.continue 🖥️ AI Editors & IDEs (1 found, 82.4 KB) [ ] ⚠️ Cursor IDE 82.4 KB C:\Users\root\.cursor ⚙️ Model Runtimes (1 found, 0 B) [ ] LM Studio 0 B 📦 SDKs & Frameworks (3 found, 0 B) [ ] HuggingFace Transformers 0 B [ ] OpenAI SDK 0 B [ ] ⚠️ Playwright (AI-adjacent) 0 B 💾 Model Caches (1 found, 80 B) [ ] HuggingFace Hub Cache 80 B C:\Users\root\.cache\huggingface 📄 Agent Config & Instructions (1 found, 10.7 KB) [ ] ⚠️ Agent Instruction Files 10.7 KB (scattered across projects) 🧠 Agent Memory & Sessions (4 found, 1.3 GB) [ ] 🔑 Claude Code Memory 407.1 MB C:\Users\root\.claude [ ] Mistral Vibe History 6.6 KB C:\Users\root\.vibe\vibehistory [ ] 🔑 PaperclipAI Context 213.3 MB ...t.json, C:\Users\root\.paperclip\instances [ ] ⚠️ Gemini CLI History 725.3 MB C:\Users\root\.gemini 🔌 MCP Configurations (1 found, 22 B) [ ] 🔑 MCP Configuration Files 22 B (scattered across projects) 🧩 Plugins & Extensions (1 found, 1.2 KB) [ ] ⚠️ AI Plugins & Extensions 1.2 KB (see sub-items) 📁 Config & Data Dirs (9 found, 2.6 GB) [ ] 🔑 Claude Config 407.1 MB C:\Users\root\.claude [ ] 🔑 Claude Config (JSON) 53.6 KB C:\Users\root\.claude.json [ ] ⚠️ pi Config 16.4 MB C:\Users\root\.pi [ ] ⚠️ Codex CLI Config 138.6 MB C:\Users\root\.codex [ ] ⚠️ Cursor Config 82.4 KB C:\Users\root\.cursor [ ] ⚠️ Gemini CLI Config 725.3 MB C:\Users\root\.gemini [ ] 🔑 Continue Config 1.4 GB C:\Users\root\.continue [ ] Mistral Vibe Config 1.9 MB C:\Users\root\.vibe > [ ] 🔑 PaperclipAI Config 0 B C:\Users\root\.paperclip Total: 31 items (6.6 GB) | Selected: 0 items (0 B) ↑/k up • ↓/j down • pgup/pgdn • space select • a toggle all • g generate • q quit Ohm v0.1.1 · AGPL-3.0 © 2026 Mathias Kosinski · Built with Pi Harness + GLM-5.1 · github.com/derKosi/Ohm/releases ``` ### 生成的清理脚本: ``` $ ohm generate 📝 Written: ohm-cleanup-2026-04-11.sh ⚠️ Review the script before running. ``` ``` #!/usr/bin/env bash # Ohm 清理脚本 # ⚠️ 运行前请检查 # 总项目数:2 | 预计释放空间:545.8 MB set -euo pipefail echo "Removing Claude Code..." npm uninstall -g @anthropic-ai/claude-code echo "Removing Codex CLI (OpenAI)..." npm uninstall -g @openai/codex rm -rf ~/.codex ``` ## 安装说明 ``` # 从源码构建(需要 Go 1.24+) go install github.com/derKosi/Ohm@latest # 或者从 GitHub releases 下载二进制文件 # 单一文件,无依赖,无需安装程序,无需联网。 ``` ## 使用方法 ``` ohm scan # Scan system for AI software ohm scan --path # Also check PATH for AI tool entries ohm scan --env # Also check environment variables ohm scan --shell # Also check shell profiles ohm scan --deep # Thorough filesystem crawl ohm scan --all # Enable all opt-in scans (path + env + shell + deep) ohm scan --no-tui # Text output (no TUI) ohm scan --json # JSON output for scripting/CI ohm generate # Generate cleanup script from last selection ohm stragglers # Scan only for leftover files from removed tools ohm history # Show what was removed in previous runs ohm version # Show version ``` ## 自定义签名 *(即将推出)* Ohm 内置了包含 84+ 种已知 AI 工具的数据库。针对私有或小众工具的自定义 YAML 签名(`~/.ohm/signatures/*.yaml`)计划在未来的版本中发布。 ## 安全性 - Ohm 是**只读的**。它只负责扫描、列出和编写脚本。它从不删除、卸载或修改任何内容。 - 生成的脚本包含注释,用于解释每一个操作。 - 脚本需要手动执行——一切由你掌控。 - 包含凭证的文件会被标记为 ⚠️,但其内容绝对不会被显示。 - 代码库中任何地方都没有使用 `os.Remove`、`os.RemoveAll` 或 `exec.Command("rm")`。 ## 技术栈 | 组件 | 选择 | |-----------|--------| | 语言 | Go 1.24+ | | TUI | [Bubble Tea](https://github.com/charmbracelet/bubbletea) | | 样式 | [Lip Gloss](https://github.com/charmbracelet/lipgloss) | | CLI | 内置(无框架) | | 存储 | 本地 JSON 状态文件(`~/.ohm/state.json`) | | 签名 | 内置 + 插入式 YAML(`~/.ohm/signatures/*.yaml`) | | 二进制文件 | 单个静态 binary,零依赖,无网络堆栈 | ## 第三方库 Ohm 使用了以下开源库: | 库 | 许可证 | 用途 | |---------|---------|--------| | [Bubble Tea](https://github.com/charmbracelet/bubbletea) | MIT | TUI 框架 | | [Lip Gloss](https://github.com/charmbracelet/lipgloss) | MIT | 终端样式 | ## 许可证 Ohm 采用双重许可: - 开源使用采用 **[AGPL-3.0](LICENSE)** — 可在你的机器上免费运行 - 提供 **[商业许可证](COMMERCIAL-LICENSE.md)**,用于嵌入式、OEM 或 SaaS 集成 **大多数用户不需要商业许可证。** 在家里或工作中运行 `ohm scan` 是免费的。详情请参阅 [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md)。 © 2026 Mathias Kosinski · [第三方声明](THIRD-PARTY-NOTICES.md) ## 文档 | 文件 | 描述 | |------|-------------| | [`docs/ROADMAP.md`](docs/ROADMAP.md) | 剩余工作、优先级、自定义签名规范 | | [`docs/SIGNATURES.md`](docs/SIGNATURES.md) | 完整的 AI 软件签名目录 | | [`docs/SALT-ANALYSIS.md`](docs/SALT-ANALYSIS.md) | 价值主张与盐分析 | | [`docs/PROJECT-PLAN.md`](docs/PROJECT-PLAN.md) | 架构、数据模型、扫描 pipeline | | [`test-fixtures/`](test-fixtures/) | 用于测试的真实场景清单文件 | | [`COMMERCIAL-LICENSE.md`](COMMERCIAL-LICENSE.md) | 双重许可详情与 FAQ | | [`CONTRIBUTING.md`](CONTRIBUTING.md) | 贡献指南与 DCO | | [`THIRD-PARTY-NOTICES.md`](THIRD-PARTY-NOTICES.md) | 依赖项许可证 | *Ohm — 抵御 AGI 膨胀。* *在 [Pi Harness](https://github.com/mariozechner/pi-coding-agent) 和 GLM-5.1 的协助下设计。* *[AGPL-3.0](LICENSE) — © 2026 Mathias Kosinski · [提供商业授权](COMMERCIAL-LICENSE.md)*
标签:EVTX分析, TUI, 人工智能, 日志审计, 本地工具, 用户模式Hook绕过, 磁盘管理, 系统清理工具