Skip to content

Commit 4712149

Browse files
committed
docs: add installation guides (EN + Chinese), update README download section
- README: download table with direct links for all platforms - docs/installation.md: complete setup guide for macOS/Windows/Linux - docs/installation-zh.md: Chinese translation of installation guide - macOS unsigned app workaround instructions (xattr quarantine removal) - Fix bundle identifier (.app suffix conflict) - Add macOS entitlements (disable sandbox for full disk access)
1 parent 44ded58 commit 4712149

6 files changed

Lines changed: 160 additions & 37 deletions

File tree

README.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,44 @@
44

55
# null-e
66

7-
**Disk cleanup CLI for developers — clean node_modules, target, .venv, Docker, Xcode caches and 50+ cache types**
7+
**Disk cleanup for developers — clean node_modules, target, .venv, Docker, Xcode caches and 50+ cache types**
88

99
[![CI](https://github.com/us/null-e/actions/workflows/ci.yml/badge.svg)](https://github.com/us/null-e/actions/workflows/ci.yml)
10-
[![Crates.io](https://img.shields.io/crates/v/null-e.svg)](https://crates.io/crates/null-e)
11-
[![Downloads](https://img.shields.io/crates/d/null-e.svg)](https://crates.io/crates/null-e)
1210
[![License](https://img.shields.io/badge/license-WTFPL-brightgreen.svg)](LICENSE)
1311

14-
[Quick Start](#quick-start)[Docs](https://us.github.io/null-e)[Changelog](CHANGELOG.md)
12+
[Download](#download)[Quick Start](#quick-start)[Docs](https://us.github.io/null-e)[Changelog](CHANGELOG.md)
1513

1614
</div>
1715

1816
---
1917

2018
`/dev/null` + Wall-E = **null-e** — like the adorable trash-compacting robot, null-e tirelessly cleans up developer junk and sends it where it belongs.
2119

22-
**Fast parallel scanning. Git-aware protection. 8 language plugins, 18 system cleaners, 50+ cache targets. Interactive TUI.**
20+
> **Reclaim 100+ GB** — most developer machines accumulate tens of gigabytes of stale `node_modules`, `target/`, `.venv`, Docker images, and IDE caches.
2321
24-
> **Reclaim 100+ GB** — most developer machines accumulate tens of gigabytes of stale `node_modules`, `target/`, `.venv`, Docker images, and IDE caches across dozens of projects.
22+
## Download
23+
24+
### Desktop App (GUI)
25+
26+
| Platform | Download |
27+
|----------|----------|
28+
| **macOS (Apple Silicon)** | [Download .dmg](https://github.com/us/null-e/releases/latest/download/null-e_0.4.0_aarch64.dmg) — M1/M2/M3/M4 |
29+
| **macOS (Intel)** | [Download .dmg](https://github.com/us/null-e/releases/latest/download/null-e_0.4.0_x64.dmg) |
30+
| **Windows** | [Download .exe](https://github.com/us/null-e/releases/latest/download/null-e_0.4.0_x64-setup.exe) — 64-bit |
31+
| **Linux (Ubuntu/Debian)** | [Download .deb](https://github.com/us/null-e/releases/latest/download/null-e_0.4.0_amd64.deb) |
32+
| **Linux (Universal)** | [Download .AppImage](https://github.com/us/null-e/releases/latest/download/null-e_0.4.0_amd64.AppImage) |
33+
34+
### macOS Installation Note
35+
36+
The app is not yet signed with an Apple Developer certificate. After downloading:
37+
38+
```bash
39+
# Drag null-e.app to /Applications, then run:
40+
xattr -rd com.apple.quarantine /Applications/null-e.app
41+
open /Applications/null-e.app
42+
```
43+
44+
### CLI (command-line)
2545

2646
```bash
2747
cargo install null-e

docs/docs/installation-zh.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# 安装指南
2+
3+
## 桌面应用 (GUI)
4+
5+
[GitHub Releases](https://github.com/us/null-e/releases/latest) 下载最新版本。
6+
7+
| 平台 | 文件 | 说明 |
8+
|------|------|------|
9+
| **macOS (Apple Silicon)** | `null-e_x.x.x_aarch64.dmg` | M1/M2/M3/M4 芯片 |
10+
| **macOS (Intel)** | `null-e_x.x.x_x64.dmg` | Intel 处理器 |
11+
| **Windows** | `null-e_x.x.x_x64-setup.exe` | 64位 Windows 10/11 |
12+
| **Linux (deb)** | `null-e_x.x.x_amd64.deb` | Ubuntu, Debian |
13+
| **Linux (AppImage)** | `null-e_x.x.x_amd64.AppImage` | 通用 Linux |
14+
15+
### macOS 安装
16+
17+
应用目前没有 Apple 开发者签名,macOS 会默认阻止。
18+
19+
1. 下载对应芯片的 `.dmg` 文件
20+
2. 打开 DMG,将 `null-e.app` 拖到 `/Applications`
21+
3. 打开终端运行:
22+
23+
```bash
24+
xattr -rd com.apple.quarantine /Applications/null-e.app
25+
```
26+
27+
4. 从"应用程序"或 Spotlight 打开 null-e
28+
29+
> **为什么需要这步?** macOS Gatekeeper 会阻止未签名的应用。`xattr` 命令移除系统添加的隔离标记。这是安全的——你可以在 [GitHub](https://github.com/us/null-e) 上验证源代码。
30+
31+
### Windows 安装
32+
33+
1. 下载并运行 `.exe` 安装程序
34+
2. 如果 SmartScreen 发出警告,点击 **"更多信息" → "仍要运行"**
35+
3. 从开始菜单启动
36+
37+
### Linux 安装
38+
39+
```bash
40+
# Ubuntu/Debian
41+
sudo dpkg -i null-e_x.x.x_amd64.deb
42+
43+
# AppImage(任何发行版)
44+
chmod +x null-e_x.x.x_amd64.AppImage
45+
./null-e_x.x.x_amd64.AppImage
46+
```
47+
48+
## 命令行工具 (CLI)
49+
50+
```bash
51+
# 通过 crates.io
52+
cargo install null-e
53+
54+
# 通过 Homebrew
55+
brew tap us/tap
56+
brew install null-e
57+
```
58+
59+
## 自动更新
60+
61+
桌面应用在启动时自动检查更新。当有新版本时,顶部会出现通知栏——点击 **"更新并重启"** 即可安装。
62+
63+
手动检查:**设置 → 关于 → 检查更新**
64+
65+
## 系统要求
66+
67+
- **macOS**: 10.15 (Catalina) 或更高版本
68+
- **Windows**: Windows 10 或更高版本(64位)
69+
- **Linux**: Ubuntu 20.04 或同等版本
70+
- **磁盘空间**: 约 50 MB

docs/docs/installation.md

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,72 @@
11
# Installation
22

3-
## From crates.io
3+
## Desktop App (GUI)
44

5-
```bash
6-
cargo install null-e
7-
```
5+
Download the latest version from [GitHub Releases](https://github.com/us/null-e/releases/latest).
6+
7+
| Platform | File | Notes |
8+
|----------|------|-------|
9+
| **macOS (Apple Silicon)** | `null-e_x.x.x_aarch64.dmg` | M1, M2, M3, M4 |
10+
| **macOS (Intel)** | `null-e_x.x.x_x64.dmg` | Intel Macs |
11+
| **Windows** | `null-e_x.x.x_x64-setup.exe` | 64-bit Windows 10/11 |
12+
| **Linux (deb)** | `null-e_x.x.x_amd64.deb` | Ubuntu, Debian |
13+
| **Linux (AppImage)** | `null-e_x.x.x_amd64.AppImage` | Any Linux distro |
14+
15+
### macOS Setup
816

9-
## From source
17+
The app is currently unsigned. macOS will block it by default.
18+
19+
1. Download the `.dmg` for your chip
20+
2. Open the DMG and drag `null-e.app` to `/Applications`
21+
3. Open Terminal and run:
1022

1123
```bash
12-
git clone https://github.com/us/null-e.git
13-
cd null-e
14-
cargo install --path .
24+
xattr -rd com.apple.quarantine /Applications/null-e.app
1525
```
1626

17-
The release profile uses LTO, single codegen unit, and symbol stripping for a small binary.
27+
4. Open null-e from Applications or Spotlight
1828

19-
## Pre-built binaries
29+
> **Why?** macOS Gatekeeper blocks unsigned apps. The `xattr` command removes the quarantine flag. This is safe — verify the source on [GitHub](https://github.com/us/null-e).
2030
21-
Download from [GitHub Releases](https://github.com/us/null-e/releases):
31+
### Windows Setup
2232

23-
| Platform | File |
24-
|----------|------|
25-
| macOS ARM | `null-e-darwin-aarch64.tar.gz` |
26-
| macOS Intel | `null-e-darwin-x86_64.tar.gz` |
27-
| Linux x86_64 | `null-e-linux-x86_64.tar.gz` |
28-
| Linux ARM | `null-e-linux-aarch64.tar.gz` |
29-
| Windows | `null-e-windows-x86_64.zip` |
33+
1. Download and run the `.exe` installer
34+
2. If SmartScreen warns you, click **"More info" → "Run anyway"**
35+
3. Launch from Start Menu
3036

31-
## Package managers
37+
### Linux Setup
3238

3339
```bash
34-
# Homebrew
35-
brew install null-e
36-
37-
# AUR (Arch Linux)
38-
yay -S null-e
40+
# Ubuntu/Debian
41+
sudo dpkg -i null-e_x.x.x_amd64.deb
3942

40-
# Scoop (Windows)
41-
scoop bucket add us https://github.com/us/scoop-bucket
42-
scoop install null-e
43+
# AppImage (any distro)
44+
chmod +x null-e_x.x.x_amd64.AppImage
45+
./null-e_x.x.x_amd64.AppImage
4346
```
4447

45-
## Docker
48+
## CLI (command-line)
4649

4750
```bash
48-
docker run -v $(pwd):/workspace ghcr.io/us/null-e
51+
# From crates.io
52+
cargo install null-e
53+
54+
# From Homebrew
55+
brew tap us/tap
56+
brew install null-e
57+
58+
# From source
59+
git clone https://github.com/us/null-e.git
60+
cd null-e
61+
cargo install --path crates/null-e-cli
4962
```
5063

64+
## Auto-Updates
65+
66+
The desktop app checks for updates on launch. A notification bar shows when a new version is available — click **"Update & Restart"** to install.
67+
68+
Manual check: **Settings → About → Check for updates**
69+
5170
## Verify
5271

5372
```bash

docs/site.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default {
1515
children: [
1616
{ title: "Introduction", slug: "introduction" },
1717
{ title: "Installation", slug: "installation" },
18+
{ title: "安装指南 (Chinese)", slug: "installation-zh" },
1819
{ title: "Quick Start", slug: "quick-start" },
1920
],
2021
},

tauri/Entitlements.plist

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>com.apple.security.app-sandbox</key>
6+
<false/>
7+
<key>com.apple.security.files.user-selected.read-write</key>
8+
<true/>
9+
<key>com.apple.security.network.client</key>
10+
<true/>
11+
</dict>
12+
</plist>

tauri/tauri.conf.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-cli/schema.json",
33
"productName": "null-e",
44
"version": "0.4.0",
5-
"identifier": "com.null-e.app",
5+
"identifier": "com.null-e.disk-cleaner",
66
"build": {
77
"frontendDist": "../ui/dist",
88
"devUrl": "http://localhost:1420",
@@ -46,7 +46,8 @@
4646
"longDescription": "Find and remove build artifacts, caches, and unused dependencies to free up disk space.",
4747
"category": "DeveloperTool",
4848
"macOS": {
49-
"minimumSystemVersion": "10.15"
49+
"minimumSystemVersion": "10.15",
50+
"entitlements": "../Entitlements.plist"
5051
},
5152
"windows": {
5253
"nsis": {

0 commit comments

Comments
 (0)