0717lq/ai-company-wars-red
GitHub: 0717lq/ai-company-wars-red
dirsort是一个智能文件目录整理CLI工具,用于解决文件杂乱和管理低效问题。
Stars: 3 | Forks: 0
# dirsort 🗂️
### 智能文件目录整理 CLI 工具 — 一键解决杂乱目录的烦恼
**🇨🇳 中文** · [English](./README.md)
## 📸 效果一览
## 🚀 快速开始
# 1. 安装
pip install dirsort
# 2. 预览整理效果(默认 safe dry-run,不执行任何操作)
dirsort ~/Downloads
# 3. 确认无误后执行(加 --execute 标志)
dirsort ~/Downloads --execute
# 4. 不满意?一键回滚
dirsort undo
## ✨ 为什么需要 dirsort?
**dirsort 一键搞定。**
| 场景 | 以前 | 用了 dirsort |
|------|------|-------------|
| 找昨天下的 PDF | 在 500 个文件里翻 | 直接去 `文档/` 目录 |
| 清理桌面截图 | 手动建文件夹、拖拽 | `dirsort ~/Desktop` |
| 想按月份看文件 | 自己看修改时间 | `dirsort ~/Downloads --by-date` |
| 怕弄乱不敢整理 | 啥也不干 | **默认 dry-run** — 安全先预览 |
| 整理完后悔了 | 一个个拖回去 | `dirsort undo` 回滚 |
| 想要可视化操作 | 要学 GUI 工具 | `dirsort tui ~/Downloads` — **交互式 TUI** |
| 让 AI Agent 帮我整理 | 手工写脚本 | **Agent Skill** — `.claude/skills/dirsort.md` 开箱即用 |
## 📦 安装
### 从 PyPI 安装(推荐)
pip install dirsort # 核心功能
pip install "dirsort[full]" # 完整功能(Rich + YAML)
pip install "dirsort[tui]" # 交互式 TUI 界面
pip install "dirsort[all]" # 全部安装
### Docker 运行
docker run --rm -v $(pwd):/data ghcr.io/0717lq/dirsort sort /data
docker run --rm -v $(pwd):/data ghcr.io/0717lq/dirsort tui /data # TUI 需交互式终端
### 从源码安装
git clone https://github.com/0717lq/ai-company-wars-red.git
cd ai-company-wars-red
pip install -e ".[full,dev]" # 开发模式,全部依赖
## 🎮 使用指南
### 🖥️ 交互式 TUI(全新!v0.4.0)
# 启动交互式终端界面(需安装 dirsort[tui])
dirsort tui ~/Downloads
**TUI 快捷键:**
| 按键 | 功能 |
|------|------|
| `d` | Dry-run 预览(刷新数据) |
| `e` | 执行整理 |
| `q` | 退出 |
| `r` | 切换到规则面板 |
| `s` | 切换到统计面板 |
| `b` | 切换到浏览面板 |
| `p` | 切换到预览面板 |
**四大面板:**
| 面板 | 功能 |
|------|------|
| 📂 文件浏览 | 目录树展示,按类型分组,显示文件大小 |
| 📋 整理预览 | 清晰展示文件 → 目标目录的映射 |
| 📊 统计面板 | 条形图 + 文件数 + 大小占比 |
| ⚙️ 规则管理 | 当前分类规则一览 |
### 基本用法
# 默认 dry-run(安全预览,不执行任何操作)
dirsort ~/Downloads
# 真正整理(加 --execute)
dirsort ~/Downloads --execute
# 简写路径也行
dirsort .
### 安全预览
# 默认已是 dry-run,不需要额外参数
dirsort ~/Downloads
# 也可以显式指定(向后兼容)
dirsort ~/Downloads --dry-run
### 按日期分类
### 仅统计
### 排除文件/目录
# 排除临时文件
dirsort ~/Downloads --exclude "*.tmp" --exclude "*.log"
# 排除特定目录
dirsort ~/Downloads --exclude-dir node_modules --exclude-dir __pycache__
# 组合使用
dirsort ~/Downloads --execute --exclude "*.tmp" --exclude-dir node_modules
### 自定义分类规则
# 使用 YAML 配置文件自定义分类
dirsort ~/Downloads --config my-rules.yaml
# 自动检测 ~/.config/dirsort/rules.yaml(如果存在)
### 回滚操作
# 回滚最近一次整理(带 Rich 表格详情)
dirsort undo
# 查看详细回滚信息
dirsort undo --verbose
# 回滚指定目录的最近一次整理
dirsort undo ~/Downloads
# 查看整理历史(Rich 表格展示)
dirsort history
### JSON 输出(AI Agent 友好)
所有命令支持 `--json` 参数,输出机器可解析的 JSON:
### 重复文件检测
# 检测重复文件
dirsort dupes ~/Downloads
# 删除重复文件(保留每组第一个)
dirsort dupes ~/Downloads --delete
# 过滤大文件
dirsort dupes ~/Downloads --min-size 1MB
### 批量重命名
# 预览批量重命名(默认 dry-run)
dirsort rename "*.jpg" "vacation_{n:03d}"
# 执行重命名
dirsort rename "*.jpg" "vacation_{n:03d}{ext}" --execute
### 配置管理
# 创建默认配置
dirsort init
# 查看当前配置
dirsort config
### 帮助
dirsort --help
dirsort sort --help
dirsort tui --help
## 🧩 功能特性
| 功能 | 说明 |
|------|------|
| ✅ **交互式 TUI** | `dirsort tui` — Textual 终端界面,四大面板可视化整理 |
| ✅ **AI Agent Skill** | `.claude/skills/dirsort.md` — Claude Code / Codex 开箱即用 |
| ✅ **JSON 输出** | 所有命令 `--json`,AI 友好,机器可解析 |
| ✅ **默认安全模式** | 默认 dry-run,必须加 `--execute` 才执行 |
| ✅ **按文件类型分类** | 图片、文档、视频、音频、代码、压缩包等 10+ 类别 |
| ✅ **按日期分类** | 自动按修改时间分到 `2026-05/` 等月份子目录 |
| ✅ **重复文件检测** | MD5 哈希 + 两遍扫描优化,支持删除 |
| ✅ **批量重命名** | 序号模板、冲突处理、undo 回滚 |
| ✅ **文件排除** | `--exclude` / `--exclude-dir` |
| ✅ **Rich 美化输出** | 彩色表格、emoji。无 Rich 降级纯文本 |
| ✅ **自动冲突处理** | 同名文件自动加编号后缀 |
| ✅ **Undo 回滚** | 支持 sort/rename/dupes 三种操作回滚 |
| ✅ **统计模式** | 按类型/扩展名,支持 --chart 条形图 |
| ✅ **配置文件系统** | `--config` + `~/.config/dirsort/rules.yaml` 自动加载 |
| ✅ **Shell 补全** | `--install-completion` bash/zsh/fish |
| ✅ **Docker 镜像** | `python:3.11-slim` 多阶段构建 |
| ✅ **Pre-commit hook** | `.pre-commit-hooks.yaml` 集成 |
## 📊 对比同类工具
| 特性 | **dirsort v0.4.0** 🏆 | organize-cli | fclean (蓝队) |
|------|----------------------|-------------|--------------|
| 交互式 TUI | ✅ **独家** | ❌ | ❌ |
| AI Agent Skill | ✅ **独家** | ❌ | ❌ |
| JSON 输出 | ✅ **独家** | ❌ | ❌ |
| 默认安全模式(dry-run) | ✅ **默认** | ❌ | ✅ |
| Undo 回滚 | ✅ | ❌ | ✅ |
| 按日期分类 | ✅ | ❌ | ✅ |
| 文件排除 | ✅ | ✅ | ✅ |
| 重复文件检测 | ✅ **独家** | ❌ | ❌ |
| 批量重命名 | ✅ **独家** | ❌ | ✅ (v0.3.0) |
| Shell 补全 | ✅ **独家** | ❌ | ❌ |
| 配置文件系统 | ✅ **独家** | ❌ | ✅ |
| Docker 镜像 | ✅ **独家** | ❌ | ❌ |
| Pre-commit hook | ✅ **独家** | ❌ | ❌ |
| Rich 美化输出 | ✅ | ❌ | ✅ |
| 中文界面 | ✅ | ❌ | ❌ |
| 安装 | `pip install dirsort` | 需要配置规则文件 | `pip install fclean` |
**dirsort 的差异化优势:** 交互式 TUI、AI Agent Skill、JSON 输出、重复检测、批量重命名、Docker 镜像 — 全面领先。
## 🤖 AI Agent Skill
dirsort 附带 **Agent Skill 文件**(`.claude/skills/dirsort.md`),让 Claude Code / Codex 等 AI 编码 Agent 直接使用:
# Claude Code 中直接调用:
User: "整理我的 Downloads 目录"
Claude: dirsort sort ~/Downloads # 自动使用 skill 文档
User: "检查这个项目里有没有重复文件"
Claude: dirsort dupes /path/to/project --json
所有命令支持 `--json` 输出,AI Agent 可轻松解析和决策。
## 🐳 Docker
# 构建镜像
docker build -t dirsort .
# 运行
docker run --rm -v $(pwd):/data dirsort sort /data
docker run --rm -v $(pwd):/data dirsort dupes /data
docker run --rm -it -v $(pwd):/data dirsort tui /data # 交互模式
## 🔧 Pre-commit Hook
在项目中启用 dirsort 检查:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/0717lq/ai-company-wars-red
rev: v0.4.0
hooks:
- id: dirsort-check
Git commit 前自动检查项目中是否有未整理的临时文件。
## 🛠️ 配置文件系统
`dirsort --config rules.yaml` 让你的整理规则完全自定义:
# ~/.config/dirsort/rules.yaml
rules:
- pattern: "*.pdf"
category: "Documents/PDFs"
- pattern: "*.tar.gz"
category: "Source Archives"
## 🤝 贡献指南
我们欢迎所有形式的贡献!
1. **Fork** 本仓库
2. 创建特性分支:`git checkout -b feat/amazing-feature`
3. **提交代码**:`git commit -m 'feat: add amazing feature'`
4. **推送**:`git push origin feat/amazing-feature`
5. 提交 **Pull Request**
### 开发环境
git clone https://github.com/0717lq/ai-company-wars-red.git
cd ai-company-wars-red
pip install -e ".[full,dev]"
pytest # 运行测试(138 个测试全通过)
pytest --cov=src # 测试覆盖率
所有 PR 自动运行 CI 测试(Python 3.10 / 3.11 / 3.12)。
## 📄 许可
[MIT License](./LICENSE) © 2026 Red Team
标签:AI集成, Docker支持, dry-run, Frida, Homebrew安装, SOC Prime, TUI界面, undo功能, 命令行界面, 回滚功能, 安全预览, 实用工具, 开发工具, 文件整理, 文件管理, 文件组织, 文本用户界面, 文档结构分析, 智能整理, 目录优化, 目录整理, 网络调试, 自动化, 请求拦截, 逆向工具, 预览模式