gitinstall 1.1.4__tar.gz → 1.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {gitinstall-1.1.4/gitinstall.egg-info → gitinstall-1.2.1}/PKG-INFO +25 -5
  2. {gitinstall-1.1.4 → gitinstall-1.2.1}/README.md +23 -3
  3. {gitinstall-1.1.4 → gitinstall-1.2.1/gitinstall.egg-info}/PKG-INFO +25 -5
  4. {gitinstall-1.1.4 → gitinstall-1.2.1}/pyproject.toml +2 -2
  5. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/_sdk.py +29 -1
  6. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/clawhub.html +14 -18
  7. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/mcp_server.py +42 -0
  8. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/tool_schemas.py +39 -1
  9. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/web_ui.html +9 -9
  10. {gitinstall-1.1.4 → gitinstall-1.2.1}/LICENSE +0 -0
  11. {gitinstall-1.1.4 → gitinstall-1.2.1}/MANIFEST.in +0 -0
  12. {gitinstall-1.1.4 → gitinstall-1.2.1}/gitinstall.egg-info/SOURCES.txt +0 -0
  13. {gitinstall-1.1.4 → gitinstall-1.2.1}/gitinstall.egg-info/dependency_links.txt +0 -0
  14. {gitinstall-1.1.4 → gitinstall-1.2.1}/gitinstall.egg-info/entry_points.txt +0 -0
  15. {gitinstall-1.1.4 → gitinstall-1.2.1}/gitinstall.egg-info/top_level.txt +0 -0
  16. {gitinstall-1.1.4 → gitinstall-1.2.1}/setup.cfg +0 -0
  17. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/__init__.py +0 -0
  18. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/academic.py +0 -0
  19. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/admin.html +0 -0
  20. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/auto_update.py +0 -0
  21. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/autopilot.py +0 -0
  22. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/badge.py +0 -0
  23. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/checkpoint.py +0 -0
  24. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/cicd.py +0 -0
  25. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/config_schema.py +0 -0
  26. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/db.py +0 -0
  27. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/db_backend.py +0 -0
  28. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/dep_chain.py +0 -0
  29. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/dependency_audit.py +0 -0
  30. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/detector.py +0 -0
  31. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/doctor.py +0 -0
  32. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/education.py +0 -0
  33. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/enterprise.py +0 -0
  34. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/error_fixer.py +0 -0
  35. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/event_bus.py +0 -0
  36. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/executor.py +0 -0
  37. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/feature_flags.py +0 -0
  38. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/fetcher.py +0 -0
  39. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/huggingface.py +0 -0
  40. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/hw_detect.py +0 -0
  41. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/i18n.py +0 -0
  42. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/installer_registry.py +0 -0
  43. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/knowledge_base.py +0 -0
  44. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/license_check.py +0 -0
  45. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/llm.py +0 -0
  46. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/log.py +0 -0
  47. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/main.py +0 -0
  48. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/mcp_agent.py +0 -0
  49. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/monorepo.py +0 -0
  50. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/multi_source.py +0 -0
  51. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/onboard.py +0 -0
  52. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/planner.py +0 -0
  53. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/planner_helpers.py +0 -0
  54. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/planner_known_projects.py +0 -0
  55. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/planner_templates.py +0 -0
  56. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/remote_gpu.py +0 -0
  57. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/resilience.py +0 -0
  58. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/run_tests.py +0 -0
  59. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/skills.py +0 -0
  60. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/trending.py +0 -0
  61. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/uninstaller.py +0 -0
  62. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/validate_top100.py +0 -0
  63. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/watchdog.py +0 -0
  64. {gitinstall-1.1.4 → gitinstall-1.2.1}/tools/web.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitinstall
3
- Version: 1.1.4
4
- Summary: MCP server & CLI that helps you easily install GitHub projects — zero dependencies
3
+ Version: 1.2.1
4
+ Summary: MCP server, Web UI & CLI that helps you easily install GitHub projects — zero dependencies
5
5
  Author: icerui
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/icerui/github-installer
@@ -28,7 +28,7 @@ Dynamic: license-file
28
28
  # gitinstall
29
29
 
30
30
  <p align="center">
31
- <strong>MCP server & CLI — helps you easily install GitHub projects</strong><br/>
31
+ <strong>MCP server, Web UI & CLI — helps you easily install GitHub projects</strong><br/>
32
32
  <em>让你轻松安装 GitHub 项目</em>
33
33
  </p>
34
34
 
@@ -62,6 +62,23 @@ AI agents can write code, explain errors, and suggest commands — but they **ca
62
62
 
63
63
  ## Quick Start
64
64
 
65
+ ### Web UI (Recommended for beginners / 推荐新手使用)
66
+
67
+ ```bash
68
+ pip install gitinstall
69
+ gitinstall web
70
+ ```
71
+
72
+ Your browser opens automatically at `http://localhost:8080`:
73
+
74
+ 1. **Paste** a GitHub URL or project name (e.g. `comfyanonymous/ComfyUI`)
75
+ 2. **Click** "分析项目" to preview the install plan
76
+ 3. **Click** "开始安装" — done!
77
+
78
+ No terminal needed after setup. Everything happens in the browser.
79
+
80
+ > 安装后只需一行命令 `gitinstall web`,浏览器自动打开,粘贴链接 → 点击安装,全程鼠标操作。
81
+
65
82
  ### For Claude Desktop
66
83
 
67
84
  ```bash
@@ -126,7 +143,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
126
143
 
127
144
  ## MCP Tools
128
145
 
129
- gitinstall exposes 6 tools via MCP:
146
+ gitinstall exposes 7 tools via MCP:
130
147
 
131
148
  | Tool | What it does |
132
149
  |------|-------------|
@@ -136,6 +153,7 @@ gitinstall exposes 6 tools via MCP:
136
153
  | `get_project_info` | Fetch GitHub project metadata without installing |
137
154
  | `check_system_health` | Full system diagnostic with fix suggestions |
138
155
  | `audit_dependencies` | Scan project dependencies for known CVEs |
156
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
139
157
 
140
158
  ### Example: `install_github_project`
141
159
 
@@ -195,7 +213,9 @@ Pure Python standard library. No `requests`, no `click`, no `rich`. One `pip ins
195
213
  gitinstall works standalone too, no AI agent needed:
196
214
 
197
215
  ```bash
198
- gitinstall comfyanonymous/ComfyUI # Install a project
216
+ gitinstall web # Launch Web UI in browser (recommended)
217
+ gitinstall comfyanonymous/ComfyUI # Install a project
218
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
199
219
  gitinstall detect # Check your system
200
220
  gitinstall doctor # System diagnostic
201
221
  gitinstall audit pytorch/pytorch # Security audit
@@ -1,7 +1,7 @@
1
1
  # gitinstall
2
2
 
3
3
  <p align="center">
4
- <strong>MCP server & CLI — helps you easily install GitHub projects</strong><br/>
4
+ <strong>MCP server, Web UI & CLI — helps you easily install GitHub projects</strong><br/>
5
5
  <em>让你轻松安装 GitHub 项目</em>
6
6
  </p>
7
7
 
@@ -35,6 +35,23 @@ AI agents can write code, explain errors, and suggest commands — but they **ca
35
35
 
36
36
  ## Quick Start
37
37
 
38
+ ### Web UI (Recommended for beginners / 推荐新手使用)
39
+
40
+ ```bash
41
+ pip install gitinstall
42
+ gitinstall web
43
+ ```
44
+
45
+ Your browser opens automatically at `http://localhost:8080`:
46
+
47
+ 1. **Paste** a GitHub URL or project name (e.g. `comfyanonymous/ComfyUI`)
48
+ 2. **Click** "分析项目" to preview the install plan
49
+ 3. **Click** "开始安装" — done!
50
+
51
+ No terminal needed after setup. Everything happens in the browser.
52
+
53
+ > 安装后只需一行命令 `gitinstall web`,浏览器自动打开,粘贴链接 → 点击安装,全程鼠标操作。
54
+
38
55
  ### For Claude Desktop
39
56
 
40
57
  ```bash
@@ -99,7 +116,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
99
116
 
100
117
  ## MCP Tools
101
118
 
102
- gitinstall exposes 6 tools via MCP:
119
+ gitinstall exposes 7 tools via MCP:
103
120
 
104
121
  | Tool | What it does |
105
122
  |------|-------------|
@@ -109,6 +126,7 @@ gitinstall exposes 6 tools via MCP:
109
126
  | `get_project_info` | Fetch GitHub project metadata without installing |
110
127
  | `check_system_health` | Full system diagnostic with fix suggestions |
111
128
  | `audit_dependencies` | Scan project dependencies for known CVEs |
129
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
112
130
 
113
131
  ### Example: `install_github_project`
114
132
 
@@ -168,7 +186,9 @@ Pure Python standard library. No `requests`, no `click`, no `rich`. One `pip ins
168
186
  gitinstall works standalone too, no AI agent needed:
169
187
 
170
188
  ```bash
171
- gitinstall comfyanonymous/ComfyUI # Install a project
189
+ gitinstall web # Launch Web UI in browser (recommended)
190
+ gitinstall comfyanonymous/ComfyUI # Install a project
191
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
172
192
  gitinstall detect # Check your system
173
193
  gitinstall doctor # System diagnostic
174
194
  gitinstall audit pytorch/pytorch # Security audit
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitinstall
3
- Version: 1.1.4
4
- Summary: MCP server & CLI that helps you easily install GitHub projects — zero dependencies
3
+ Version: 1.2.1
4
+ Summary: MCP server, Web UI & CLI that helps you easily install GitHub projects — zero dependencies
5
5
  Author: icerui
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/icerui/github-installer
@@ -28,7 +28,7 @@ Dynamic: license-file
28
28
  # gitinstall
29
29
 
30
30
  <p align="center">
31
- <strong>MCP server & CLI — helps you easily install GitHub projects</strong><br/>
31
+ <strong>MCP server, Web UI & CLI — helps you easily install GitHub projects</strong><br/>
32
32
  <em>让你轻松安装 GitHub 项目</em>
33
33
  </p>
34
34
 
@@ -62,6 +62,23 @@ AI agents can write code, explain errors, and suggest commands — but they **ca
62
62
 
63
63
  ## Quick Start
64
64
 
65
+ ### Web UI (Recommended for beginners / 推荐新手使用)
66
+
67
+ ```bash
68
+ pip install gitinstall
69
+ gitinstall web
70
+ ```
71
+
72
+ Your browser opens automatically at `http://localhost:8080`:
73
+
74
+ 1. **Paste** a GitHub URL or project name (e.g. `comfyanonymous/ComfyUI`)
75
+ 2. **Click** "分析项目" to preview the install plan
76
+ 3. **Click** "开始安装" — done!
77
+
78
+ No terminal needed after setup. Everything happens in the browser.
79
+
80
+ > 安装后只需一行命令 `gitinstall web`,浏览器自动打开,粘贴链接 → 点击安装,全程鼠标操作。
81
+
65
82
  ### For Claude Desktop
66
83
 
67
84
  ```bash
@@ -126,7 +143,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
126
143
 
127
144
  ## MCP Tools
128
145
 
129
- gitinstall exposes 6 tools via MCP:
146
+ gitinstall exposes 7 tools via MCP:
130
147
 
131
148
  | Tool | What it does |
132
149
  |------|-------------|
@@ -136,6 +153,7 @@ gitinstall exposes 6 tools via MCP:
136
153
  | `get_project_info` | Fetch GitHub project metadata without installing |
137
154
  | `check_system_health` | Full system diagnostic with fix suggestions |
138
155
  | `audit_dependencies` | Scan project dependencies for known CVEs |
156
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
139
157
 
140
158
  ### Example: `install_github_project`
141
159
 
@@ -195,7 +213,9 @@ Pure Python standard library. No `requests`, no `click`, no `rich`. One `pip ins
195
213
  gitinstall works standalone too, no AI agent needed:
196
214
 
197
215
  ```bash
198
- gitinstall comfyanonymous/ComfyUI # Install a project
216
+ gitinstall web # Launch Web UI in browser (recommended)
217
+ gitinstall comfyanonymous/ComfyUI # Install a project
218
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
199
219
  gitinstall detect # Check your system
200
220
  gitinstall doctor # System diagnostic
201
221
  gitinstall audit pytorch/pytorch # Security audit
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gitinstall"
7
- version = "1.1.4"
8
- description = "MCP server & CLI that helps you easily install GitHub projects — zero dependencies"
7
+ version = "1.2.1"
8
+ description = "MCP server, Web UI & CLI that helps you easily install GitHub projects — zero dependencies"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
11
11
  requires-python = ">=3.10"
@@ -536,6 +536,34 @@ def audit(identifier: str, *, online: bool = False) -> dict:
536
536
  return cmd_audit(identifier, online=online)
537
537
 
538
538
 
539
+ def uninstall(
540
+ identifier: str,
541
+ *,
542
+ install_dir: str = None,
543
+ keep_config: bool = False,
544
+ confirm: bool = False,
545
+ ) -> dict:
546
+ """安全卸载已安装的 GitHub 项目。
547
+
548
+ Args:
549
+ identifier: 项目标识,如 "owner/repo"。
550
+ install_dir: 安装目录。省略则自动探测。
551
+ keep_config: True 时保留配置文件。
552
+ confirm: True 时执行卸载,False 时只显示计划。
553
+
554
+ Returns:
555
+ dict: 包含卸载计划或执行结果。
556
+ """
557
+ from main import cmd_uninstall
558
+ return cmd_uninstall(
559
+ identifier,
560
+ keep_config=keep_config,
561
+ clean_only=False,
562
+ confirm=confirm,
563
+ install_dir=install_dir,
564
+ )
565
+
566
+
539
567
  # ── 版本信息 ─────────────────────────────────
540
568
 
541
- __version__ = "1.1.0"
569
+ __version__ = "1.2.1"
@@ -407,7 +407,7 @@ footer {
407
407
  <span class="skill-verified">✓ 已验证</span>
408
408
  </div>
409
409
  <div class="skill-author">
410
- 由 <strong>蹄门科技</strong> 发布 · 开源 MIT 协议
410
+ 开源 MIT 协议
411
411
  </div>
412
412
  <p class="skill-desc">
413
413
  让你轻松安装 GitHub 项目 — 识别系统环境,分析项目结构,生成安装计划,自动执行安装。
@@ -457,22 +457,19 @@ footer {
457
457
  <div class="card">
458
458
  <div class="section-label">📊 质量测试报告</div>
459
459
  <div class="mini-stats" style="margin-bottom:1rem">
460
- <div class="mini-stat"><div class="mini-stat-num">100%</div><div class="mini-stat-label">覆盖率</div></div>
461
- <div class="mini-stat"><div class="mini-stat-num">22,517</div><div class="mini-stat-label">模拟事件</div></div>
462
- <div class="mini-stat"><div class="mini-stat-num">110+</div><div class="mini-stat-label">测试项目</div></div>
463
- <div class="mini-stat"><div class="mini-stat-num">30+</div><div class="mini-stat-label">支持语言</div></div>
460
+ <div class="mini-stat"><div class="mini-stat-num">48</div><div class="mini-stat-label">精确匹配项目</div></div>
461
+ <div class="mini-stat"><div class="mini-stat-num">32</div><div class="mini-stat-label">语言模板</div></div>
462
+ <div class="mini-stat"><div class="mini-stat-num">28</div><div class="mini-stat-label">错误修复规则</div></div>
463
+ <div class="mini-stat"><div class="mini-stat-num">20+</div><div class="mini-stat-label">支持语言</div></div>
464
464
  </div>
465
465
  <div style="font-size:0.82rem;color:var(--text-sec);line-height:1.7">
466
466
  <p style="margin-bottom:0.5rem">
467
- 基于中国本科毕业生 12 类人口统计学分布(CS/工程/医学/法学/艺术/农学等),
468
- 模拟用户全年 <strong style="color:var(--text)">22,517 次</strong>安装行为,
469
- 覆盖 <strong style="color:var(--text)">110 个</strong>独特项目。
467
+ 基于 48 个已知项目的精确匹配和 32 个语言模板覆盖。
470
468
  </p>
471
469
  <p>
472
- ✅ 三层策略:已知项目精确匹配 (34.7%) + 类型模板推导 (65.3%) + README 提取<br>
473
- 12 类人群全覆盖:CS 人均 9.1 次/年 → 法学 2.8 次/年<br>
474
- 月度趋势合理:7月 AI 热潮峰值,2月春节低谷<br>
475
- ✅ 零失败:模拟测试 12 个月全覆盖
470
+ ✅ 三层策略:已知项目精确匹配 + 类型模板推导 + README 提取<br>
471
+ 28 种常见错误自动修复(PEP 668、CUDA 版本、npm 权限等)<br>
472
+ 跨平台支持:macOS · Linux · Windows
476
473
  </p>
477
474
  </div>
478
475
  </div>
@@ -610,9 +607,8 @@ AI: 正在执行... ✅ 安装完成!运行 <span class="arg">python main.py
610
607
  <div class="meta-row"><span class="meta-key">外部依赖</span><span class="meta-val" style="color:var(--green)">0</span></div>
611
608
  <div class="meta-row"><span class="meta-key">模块数</span><span class="meta-val">40+</span></div>
612
609
  <div class="meta-row"><span class="meta-key">CLI 命令</span><span class="meta-val">20+</span></div>
613
- <div class="meta-row"><span class="meta-key">测试覆盖</span><span class="meta-val" style="color:var(--green)">94%</span></div>
614
- <div class="meta-row"><span class="meta-key">发布日期</span><span class="meta-val">2026-03-11</span></div>
615
- <div class="meta-row"><span class="meta-key">发布者</span><span class="meta-val"><a href="#">蹄门科技</a></span></div>
610
+ <div class="meta-row"><span class="meta-key">发布日期</span><span class="meta-val">2026-03-18</span></div>
611
+ <div class="meta-row"><span class="meta-key">发布者</span><span class="meta-val"><a href="https://github.com/icerui">icerui</a></span></div>
616
612
  </div>
617
613
  </div>
618
614
 
@@ -662,14 +658,14 @@ AI: 正在执行... ✅ 安装完成!运行 <span class="arg">python main.py
662
658
  <div class="cl-dot"></div>
663
659
  <div>
664
660
  <div class="cl-ver">v1.0.0 <span class="cl-date">2026-03-11</span></div>
665
- <div class="cl-changes">正式发布。模拟测试 100% 覆盖率。Web UI + Admin + ClawHub 页面。企业级安全与 i18n。</div>
661
+ <div class="cl-changes">正式发布。Web UI + ClawHub 页面。安全命令过滤与 i18n。</div>
666
662
  </div>
667
663
  </div>
668
664
  <div class="cl-item">
669
665
  <div class="cl-dot" style="background:var(--accent-3)"></div>
670
666
  <div>
671
667
  <div class="cl-ver">v0.9.0 <span class="cl-date">2026-03-09</span></div>
672
- <div class="cl-changes">100 人模拟测试 100% 覆盖率。PostgreSQL 集成。结构化日志系统。</div>
668
+ <div class="cl-changes">结构化日志系统。错误修复引擎。</div>
673
669
  </div>
674
670
  </div>
675
671
  <div class="cl-item">
@@ -691,7 +687,7 @@ AI: 正在执行... ✅ 安装完成!运行 <span class="arg">python main.py
691
687
  <span style="font-size:1rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text">ClawHub</span>
692
688
  <span style="margin-left:0.3rem;font-size:0.7rem;color:var(--text-muted)">技能市场</span>
693
689
  </div>
694
- MIT License · 蹄门科技 · ClawHub Skill Marketplace
690
+ MIT License · icerui · ClawHub Skill Marketplace
695
691
  </footer>
696
692
 
697
693
  </div>
@@ -52,6 +52,7 @@ from _sdk import (
52
52
  fetch as _fetch,
53
53
  doctor as _doctor,
54
54
  audit as _audit,
55
+ uninstall as _uninstall,
55
56
  __version__,
56
57
  )
57
58
 
@@ -191,6 +192,39 @@ TOOLS = [
191
192
  "required": ["project"],
192
193
  },
193
194
  },
195
+ {
196
+ "name": "uninstall_github_project",
197
+ "description": (
198
+ "Safely uninstall a previously installed GitHub project. "
199
+ "Detects and removes: project directory, virtualenvs, Docker containers, "
200
+ "build artifacts, caches. Safety checks prevent deleting system directories. "
201
+ "Shows a cleanup plan before executing. Optionally keeps config files. "
202
+ "Example: uninstall_github_project({\"project\": \"comfyanonymous/ComfyUI\"}) "
203
+ "Call this when a user wants to remove, delete, or uninstall a GitHub project."
204
+ ),
205
+ "inputSchema": {
206
+ "type": "object",
207
+ "properties": {
208
+ "project": {
209
+ "type": "string",
210
+ "description": "GitHub project: 'owner/repo' format",
211
+ },
212
+ "install_dir": {
213
+ "type": "string",
214
+ "description": "Directory where the project is installed. Default: ~/github-installs/<project>/",
215
+ },
216
+ "keep_config": {
217
+ "type": "boolean",
218
+ "description": "Keep config files (.env, etc.) during uninstall. Default: false.",
219
+ },
220
+ "confirm": {
221
+ "type": "boolean",
222
+ "description": "If true, execute the uninstall. If false, only show plan. Default: false.",
223
+ },
224
+ },
225
+ "required": ["project"],
226
+ },
227
+ },
194
228
  ]
195
229
 
196
230
 
@@ -273,6 +307,14 @@ def _call_tool(name: str, args: dict) -> tuple[list[dict], bool]:
273
307
  online=args.get("online", False),
274
308
  )
275
309
 
310
+ elif name == "uninstall_github_project":
311
+ result = _uninstall(
312
+ args["project"],
313
+ install_dir=args.get("install_dir"),
314
+ keep_config=args.get("keep_config", False),
315
+ confirm=args.get("confirm", False),
316
+ )
317
+
276
318
  else:
277
319
  return [{"type": "text", "text": f"Unknown tool: {name}"}], True
278
320
 
@@ -174,6 +174,36 @@ _TOOLS = [
174
174
  "required": ["project"],
175
175
  },
176
176
  },
177
+ {
178
+ "name": "uninstall",
179
+ "description": (
180
+ "Safely uninstall a previously installed GitHub project. "
181
+ "Removes project directory, virtualenvs, Docker containers, build artifacts, caches. "
182
+ "Shows cleanup plan before executing. Call with confirm=true to actually delete."
183
+ ),
184
+ "parameters": {
185
+ "type": "object",
186
+ "properties": {
187
+ "project": {
188
+ "type": "string",
189
+ "description": "GitHub project: 'owner/repo' format",
190
+ },
191
+ "install_dir": {
192
+ "type": "string",
193
+ "description": "Directory where the project is installed.",
194
+ },
195
+ "keep_config": {
196
+ "type": "boolean",
197
+ "description": "Keep config files during uninstall.",
198
+ },
199
+ "confirm": {
200
+ "type": "boolean",
201
+ "description": "If true, execute uninstall. If false, only show plan.",
202
+ },
203
+ },
204
+ "required": ["project"],
205
+ },
206
+ },
177
207
  ]
178
208
 
179
209
  # ── 工具名列表 ──────────────────────────────
@@ -260,7 +290,7 @@ def call_tool(name: str, arguments: dict) -> dict | None:
260
290
  Returns:
261
291
  工具执行结果 dict,或 None(diagnose 无匹配时)
262
292
  """
263
- from _sdk import detect, plan, install, diagnose, fetch, doctor, audit
293
+ from _sdk import detect, plan, install, diagnose, fetch, doctor, audit, uninstall
264
294
 
265
295
  if name == "detect":
266
296
  return detect()
@@ -297,6 +327,14 @@ def call_tool(name: str, arguments: dict) -> dict | None:
297
327
  online=arguments.get("online", False),
298
328
  )
299
329
 
330
+ if name == "uninstall":
331
+ return uninstall(
332
+ arguments["project"],
333
+ install_dir=arguments.get("install_dir"),
334
+ keep_config=arguments.get("keep_config", False),
335
+ confirm=arguments.get("confirm", False),
336
+ )
337
+
300
338
  raise ValueError(f"Unknown tool: {name}. Available: {tool_names}")
301
339
 
302
340
 
@@ -1345,22 +1345,22 @@ footer a { color: var(--text-sec); }
1345
1345
  </div>
1346
1346
  </div>
1347
1347
  <p class="hero-tagline"><strong>让你轻松安装</strong> GitHub 项目</p>
1348
- <p class="hero-sub">零外部依赖 · 零配置上手 · 零 AI 也能用 — 来自<strong style="color:var(--text)">蹄门科技</strong></p>
1348
+ <p class="hero-sub">零外部依赖 · 零配置上手 · 零 AI 也能用</p>
1349
1349
 
1350
1350
  <div class="hero-badges">
1351
- <span class="hero-badge"><span class="hb-icon">✅</span> <span class="hb-val">100%</span> 覆盖率</span>
1352
- <span class="hero-badge"><span class="hb-icon">👥</span> <span class="hb-val">110+</span> 项目测试</span>
1353
- <span class="hero-badge"><span class="hb-icon">📦</span> <span class="hb-val">110+</span> 项目支持</span>
1351
+ <span class="hero-badge"><span class="hb-icon">🌍</span> <span class="hb-val">3</span> 平台支持</span>
1352
+ <span class="hero-badge"><span class="hb-icon">📦</span> <span class="hb-val">20+</span> 语言</span>
1353
+ <span class="hero-badge"><span class="hb-icon">🛡️</span> <span class="hb-val">28</span> 错误修复模式</span>
1354
1354
  <span class="hero-badge"><span class="hb-icon">🪶</span> <span class="hb-val">0</span> 外部依赖</span>
1355
1355
  </div>
1356
1356
  </header>
1357
1357
 
1358
1358
  <!-- ── Stats ──────────────────────── -->
1359
1359
  <div class="stats-row">
1360
- <div class="stat-card"><div class="stat-num">22,517</div><div class="stat-label">模拟安装事件</div></div>
1361
- <div class="stat-card"><div class="stat-num">30+</div><div class="stat-label">支持语言</div></div>
1362
- <div class="stat-card"><div class="stat-num">80+</div><div class="stat-label">精确匹配项目</div></div>
1363
- <div class="stat-card"><div class="stat-num">30+</div><div class="stat-label">语言模板</div></div>
1360
+ <div class="stat-card"><div class="stat-num">20+</div><div class="stat-label">支持语言</div></div>
1361
+ <div class="stat-card"><div class="stat-num">48</div><div class="stat-label">精确匹配项目</div></div>
1362
+ <div class="stat-card"><div class="stat-num">32</div><div class="stat-label">语言模板</div></div>
1363
+ <div class="stat-card"><div class="stat-num">28</div><div class="stat-label">错误修复规则</div></div>
1364
1364
  </div>
1365
1365
 
1366
1366
  <!-- ── Features ───────────────────── -->
@@ -1532,7 +1532,7 @@ footer a { color: var(--text-sec); }
1532
1532
  <span style="font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text">gitinstall</span>
1533
1533
  <span style="margin-left:0.3rem;font-size:0.65rem;padding:0.1rem 0.4rem;border-radius:4px;background:rgba(139,92,246,0.15);color:var(--accent-3);font-weight:600">v1.0.0</span>
1534
1534
  </div>
1535
- MIT License · 零外部依赖 · 纯 Python 标准库 · 蹄门科技出品
1535
+ MIT License · 零外部依赖 · 纯 Python 标准库
1536
1536
  <div style="margin-top:0.5rem;display:flex;justify-content:center;gap:1rem">
1537
1537
  <a href="/clawhub" style="color:var(--accent-3)">ClawHub</a>
1538
1538
  <a href="/admin" style="color:var(--text-sec)">管理后台</a>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes