[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76686":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":38,"discoverSource":39},76686,"pinkbin","cccyd2003-qwq\u002Fpinkbin","cccyd2003-qwq","扫盘 · 看懂 · 删除。磁盘扫描+清理Agent（Tauri 2 + React + Rust）","https:\u002F\u002Fgithub.com\u002Fcccyd2003-qwq\u002Fpinkbin",null,"TypeScript",514,26,2,0,84,351,470,252,8.29,"MIT License",false,"main",[25,26,27,28,29,30,31,32,33,34],"ai","conda","disk-analyzer","disk-cleaner","open-source","react","rust","tauri","wechat","windows","2026-06-12 02:03:42","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"apps\u002Fdesktop\u002Fsrc-tauri\u002Ficons\u002F128x128.png\" alt=\"Pinkbin\" width=\"96\" height=\"96\">\n\n# Pinkbin\n\n**扫盘 · 看懂 · 一条一条删干净。**\n\n开源磁盘清理工具。秒扫整盘看空间分配，把不认识的文件夹拖给 AI 让它告诉你这是什么、能不能删、删了会丢什么，再按 scope 逐项放心删——默认进回收站，永远不读你的文件内容。\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-ff69b4.svg)](LICENSE)\n[![Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-2-24C8DB.svg)](https:\u002F\u002Ftauri.app)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWindows-lightgrey.svg)](#下载)\n\n[下载](#下载) · [看效果](#看效果) · [三件事](#三件事) · [怎么用](#怎么用) · [架构](#架构) · [路线图](#路线图) · [帮帮孩子吧](#怎么贡献) · [致谢](#致谢)\n\n**简体中文 | [English](README_EN.md)**\n\n\u003C\u002Fdiv>\n\n---\n\n## 下载\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcccyd2003-qwq\u002Fpinkbin\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F⬇_下载最新版_(Windows)-ff69b4?style=for-the-badge&logo=windows&logoColor=white\" height=\"42\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n| 平台 | 文件 | 备注 |\n|---|---|---|\n| **Windows 10 \u002F 11 (x64)** | [`Pinkbin_x.x.x_x64-setup.exe`](https:\u002F\u002Fgithub.com\u002Fcccyd2003-qwq\u002Fpinkbin\u002Freleases\u002Flatest)（NSIS）\u003Cbr>[`Pinkbin_x.x.x_x64_en-US.msi`](https:\u002F\u002Fgithub.com\u002Fcccyd2003-qwq\u002Fpinkbin\u002Freleases\u002Flatest)（MSI） | 首次启动 SmartScreen 拦截：点\"更多信息\"→\"仍要运行\"。NTFS MFT 直读需要管理员权限，安装包带 manifest 自动 UAC |\n\n> macOS \u002F Linux 暂不提供预编译版（macOS 还没有签名证书，Linux 也没在真实机器上验过）。你可以自己 `pnpm tauri build` 编译。等有签名通道 + 真机验证后会把 release 矩阵加回来——欢迎 PR。\n\n---\n\n## 看效果\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fhero.png\" alt=\"实际使用 · 扫完 D 盘后拖文件夹给 AI + 展开 Studio conda 卡片\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Csub>实际使用 · 左：D:\\ 树状视图（每行带占用百分比条）· 中：拖 \u003Ccode>D:\\steam\\steamapps\u003C\u002Fcode> 给 AI，AI 用 markdown 回答这是什么、能不能删 · 右：Studio 卡片展开 Conda packages cache（5.12 GB · 150,867 文件）\u003C\u002Fsub>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fempty.png\" alt=\"初始空态 · 还没扫描时的三栏布局\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Csub>初始空态 · 顶部\"选择磁盘或文件夹\"→ 点扫描后才会有内容；右侧 Studio 已经认出 WeChat \u002F Conda 两个脚本（脚本默认路径还没扫到，所以是\"未扫到\"状态）\u003C\u002Fsub>\u003C\u002Fp>\n\n---\n\n## 三件事\n\nPinkbin 只做三件事：简单、简单、还是TMD简单\n\n### 1. 把磁盘空间分配看清楚\n\nWindows 上直读 NTFS Master File Table（其他平台用 jwalk 跨平台 walker 兜底），整盘 C: **2–5 秒**扫完。出彩色 treemap + 单行 22px 高的树视图——一眼看到 `D:\\xwechat_files` 占了 80GB，`C:\\Users\\\u003C你>\\AppData\\Local\\Docker` 占了 50GB。\n\n### 2. 拖拽到中间 AI 分析\"这个文件夹是什么\"\n\n不认识的文件夹？把它从左边树或右边路径**拖进中间聊天框**，AI 解释这是什么、能不能删、删了会丢什么。BYOK——你提供 Anthropic \u002F OpenAI \u002F Gemini 的 Key，或本地跑 Ollama 完全免费。\n\n**Pinkbin 只发目录元数据**给 AI（路径名、大小、文件数、扩展名占比、最多 20 条样本路径）—— **永远不读文件内容**。\n\n### 3. 已知应用走专属清理脚本\n\n某些应用大众化、占空间大、清理边界清楚——给它写一份**清理脚本**（一份 TOML + 一份 Rust 集成测试），用户在 Studio 卡片里直接按 scope 单独清。**目前两个**：\n\n- **微信 PC 端**（3.x + 4.x 双兼容）—— 22 个 scope，清缓存\u002F接收媒体\u002F聊天备份，永不动聊天 DB \u002F 收藏 \u002F 朋友圈 \u002F `CustomEmotion`\n- **Conda 环境**—— 整目录回收 stale env（`conda-meta\u002Fhistory` mtime > 90 天），base env 灰显不可勾\n\n**未来会做的**：Steam shadercache · Chrome 缓存 · Docker buildx · HuggingFace 模型 · npm\u002Fpnpm\u002Fpip cache · OBS 录像 · IDE 索引——大众应用、占空间大、清理边界清楚的，逐个走 14-phase 工作流加进来（含红线集成测试守护）。**为什么砍掉之前那 36 个 legacy scaffold**：因为没人验过 glob 边界，存在误删风险（典型例子：旧版 `node-modules` 把 Cursor \u002F VSCode \u002F 游戏内嵌的 node_modules 也命中了）。\n\n所有删除默认进**系统回收站**，可恢复。每一次操作写 `~\u002F.pinkbin\u002Fundo.jsonl`，可选 7 天 quarantine。\n\n---\n\n## 怎么用\n\n1. **下载安装包**[（上面）](#下载)，双击安装，桌面出现 Pinkbin 图标\n2. **打开 → 右上角 ⚙ 配 AI**——填LLM的API Key\n3. **顶部\"选择磁盘或文件夹\"→ 点扫描**——2-5 秒后看到 treemap + 树\n4. **遇到陌生大文件夹**——拖到中间聊天框问 AI；或者右侧 Studio 已经认出了的（微信、conda）直接看清理面板\n5. **删除前**：目前只提供WeChat和Conda的清理脚本，可自动无风险清理。其他的，自行清理，毕竟宁可错放1000GB，不可错删一个文件。\n\n---\n\n## 架构\n\n> 想看人话解释（不堆术语，普通用户也能看懂）：📖 **[docs\u002FARCHITECTURE.md](docs\u002FARCHITECTURE.md)**\n\n```\n┌────────────────────┐     ┌─────────────────────┐\n│   React + Tauri    │────>│  Rust workspace     │\n│   (前端 UI)         │\u003C────│  (4 crates)         │\n└────────────────────┘     └──────────┬──────────┘\n                                      │\n        ┌─────────────────┬───────────┼──────────────┬──────────────┐\n        │                 │           │              │              │\n   ┌────▼────┐    ┌──────▼─────┐  ┌──▼──────┐  ┌────▼────┐  ┌──────▼──────┐\n   │ scanner │    │  scaffold  │  │executor │  │advisor  │  │scaffold-lint│\n   │ NTFS MFT│    │ TOML 加载   │  │Recycle\u002F │  │AI 顾问   │  │ CI 校验     │\n   │ + jwalk │    │ + globset  │  │Quarant. │  │4 协议   │  │              │\n   └─────────┘    └────────────┘  └─────────┘  └─────────┘  └─────────────┘\n```\n\n| 层 | 技术栈 |\n|---|---|\n| 前端 | React 18 + TypeScript + Tauri 2 + react-markdown |\n| 后端 | Rust workspace（4 crates）+ Tauri IPC |\n| 扫描器 | Windows: NTFS MFT 直读（`ntfs` crate）\u002F 跨平台: `jwalk` |\n| AI | BYOK · Anthropic · OpenAI · Gemini · Ollama 四协议 |\n| 数据 | 用户本机 `~\u002F.pinkbin\u002F`（undo.jsonl + quarantine\u002F）· 不上云 |\n\n---\n\n## 路线图\n\n- [x] 整盘秒扫，看到每个文件夹占多少\n- [x] 拖任意文件夹给 AI 问\"这是什么、能不能删\"\n- [x] 微信、Conda 已经支持一键清理\n- [ ] 加一个\"撤销\"按钮，删错了能一键找回\n- [ ] 把更多常见软件加进来：Steam、Chrome、Docker、npm\u002Fpip、HuggingFace、OBS、各种 IDE 缓存……\n- [ ] 出 macOS \u002F Linux 的预编译版（要先解决签名 + 真机验证）\n- [ ] 让用户能自己写、自己分享清理脚本\n\n---\n\n## 帮帮孩子吧\n\n最有价值的贡献是**写新的清理脚本**。每加一个 App 支持就是一份 PR：\n\n1. 在 [`docs\u002Fscaffold-requirements\u002F`](docs\u002Fscaffold-requirements\u002F) 写需求文档（红线清单：聊天 DB？账号 key？用户收藏？）\n2. 在你机器上跑这个 App，用 `Glob` 列出真实目录结构，找出 cache vs 用户数据的边界\n3. 抄 [`scaffolds\u002F_templates\u002Fscaffold.toml`](scaffolds\u002F_templates\u002Fscaffold.toml) 写 TOML\n4. 抄 [`crates\u002Fscaffold\u002Ftests\u002F_templates\u002Fscaffold_safety.rs`](crates\u002Fscaffold\u002Ftests\u002F_templates\u002Fscaffold_safety.rs) 写 safety test（**正向断言 + 红线断言**，CI 必跑，没测试不收）\n5. `pnpm tauri dev` 目视确认卡片渲染\n6. 提 PR，模板会带 14 项 checklist\n\n[Claude Code](https:\u002F\u002Fclaude.com\u002Fclaude-code) 用户可以直接在仓库根目录敲 `\u002Fadd-scaffold \u003Cid>`，一键启动 14-phase 工作流。\n\n详细流程：[`.claude\u002Fcommands\u002Fadd-scaffold.md`](.claude\u002Fcommands\u002Fadd-scaffold.md)。\n\n### 开发\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcccyd2003-qwq\u002Fpinkbin.git && cd pinkbin\npnpm install\npnpm tauri dev            # 桌面 app（首次会编译 Rust 依赖，5-15 分钟）\npnpm -C apps\u002Fdesktop dev  # 仅前端，浏览器调试，mock 后端\ncargo test --workspace    # 全工作空间测试\n```\n\n需要 **Node 20+ · pnpm 9+ · Rust stable · Tauri 前置依赖**（Windows 上是 VS Build Tools 2022 + WebView2）。\n\n---\n\n## 致谢\n\n- **灵感来源**\n  - [WizTree](https:\u002F\u002Fdiskanalyzer.com) —— NTFS MFT 直读思路与速度标杆\n  - [SpaceSniffer](http:\u002F\u002Fwww.uderzo.it\u002Fmain_products\u002Fspace_sniffer\u002F) —— treemap 可视化先驱\n  - [CleanMyWechat](https:\u002F\u002Fgithub.com\u002Fblackboxo\u002FCleanMyWechat) —— 微信清理脚本范本，messaging 需求文档参考它\n  - [SquirrelDisk](https:\u002F\u002Fgithub.com\u002Fadileo\u002Fsquirreldisk) —— Tauri + Rust 实现参考\n- **依赖巨人的肩膀**：[Tauri](https:\u002F\u002Ftauri.app) · [`d3-hierarchy`](https:\u002F\u002Fgithub.com\u002Fd3\u002Fd3-hierarchy) · [`jwalk`](https:\u002F\u002Fgithub.com\u002Fjessegrosjean\u002Fjwalk) · [`ntfs`](https:\u002F\u002Fgithub.com\u002FColinFinck\u002Fntfs) · [`globset`](https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fripgrep\u002Ftree\u002Fmaster\u002Fcrates\u002Fglobset) · [`trash-rs`](https:\u002F\u002Fgithub.com\u002FByron\u002Ftrash-rs) · [react-markdown](https:\u002F\u002Fgithub.com\u002Fremarkjs\u002Freact-markdown)\n- **协作**：[Claude Code](https:\u002F\u002Fclaude.com\u002Fclaude-code) · [@jtlyu](https:\u002F\u002Fgithub.com\u002Fjtlyu)（性能优化 + WeChat 4.x 重写 + scaffold harness 工作流基建）\n---\n\n## License\n\n[MIT](LICENSE) · 欢迎 fork、商用、闭源衍生。改 scaffold 时记得同步改它的 safety test——红线断言是防止误删用户数据的最后一道闸。\n","Pinkbin 是一个开源磁盘清理工具，旨在帮助用户高效管理和清理磁盘空间。它通过结合 Tauri、React 和 Rust 技术栈构建，提供快速的磁盘扫描功能，并能够以树状视图展示磁盘空间分配情况。用户可以将不熟悉的文件夹拖拽至内置的AI助手进行分析，获取该文件夹内容的解释及删除建议。此外，对于一些常见的大型应用如微信和Conda环境，Pinkbin提供了专门的清理脚本，允许用户按需选择性地清理数据而不影响重要信息。此工具非常适合需要定期维护硬盘空间或希望在保证数据安全的前提下释放更多存储空间的Windows用户使用。","2026-06-11 03:55:05","CREATED_QUERY"]