Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 26 additions & 4 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,29 @@ EMRG is an experiment in *autonomous self-improvement*. It's an AI agent that he

## 🚀 Quick Start

### 🍎 macOS
### 📦 Download installer (recommended, Phase 4 one-click)

Download the installer for your platform from [GitHub Releases](https://github.com/argszero/emrg/releases) and double-click:

| Platform | Installer | Notes |
|----------|-----------|-------|
| macOS (Apple Silicon) | `EMRG-<ver>-macos-arm64.pkg` | Double-click; GUI at `~/Applications/EMRG.app` |
| macOS (Intel) | `EMRG-<ver>-macos-x64.pkg` | Same |
| Windows | `EMRG-<ver>-windows-x64.exe` | Inno Setup, no UAC, Start-menu shortcut |
| Linux | `EMRG-<ver>-linux-x86_64.AppImage` | Self-extracts to `~/.emrg/install/` on first run |
| Linux (ARM64) | `EMRG-<ver>-linux-aarch64.AppImage` | Same |

The installer bundles a full runtime (standalone Python 3.13 + deps + git + gh + GUI) — **zero prerequisites on a clean machine (no python/uv/git/gh/node)**, 100% offline install. After install:

- GUI: launch **EMRG** from Launchpad / Start menu
- TUI: `~/.emrg/install/bin/emrg` (Linux also creates `~/.local/bin/emrg` symlink)
- First-run wizard asks for your API key; python scripts work inside sessions

> **Uninstall**: macOS run "卸载 EMRG.app" (uninstall app); Windows uninstall from Control Panel; Linux run `~/.emrg/install/bin/emrg-uninstall` (or delete the AppImage + symlink). Uninstall preserves non-EMRG user files in `~/.emrg`, and writes a termination report + data snapshot.
>
> **Unsigned builds**: if the macOS package is unsigned, right-click → Open on first launch (Gatekeeper). Besides the GUI, you can also edit `~/.emrg/config.toml` directly (GUI settings save rewrites config and drops comments — for advanced config, edit the file).

### 🍎 macOS (source install)

**Install:**

Expand All @@ -58,7 +80,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

### 🐧 Linux
### 🐧 Linux (source install)

**Install:**

Expand All @@ -72,7 +94,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

### 🪟 Windows (WSL2)
### 🪟 Windows (WSL2, source install)

**Install:**

Expand All @@ -92,7 +114,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

> Prerequisites (install.sh auto-detects and prompts): git, python 3.11+, uv. gh CLI recommended.
> Source-install prerequisites (install.sh auto-detects and prompts): git, python 3.11+, uv. gh CLI recommended. For native Windows (non-WSL), use the installer above.

After installing, edit the auto-generated config template:

Expand Down
30 changes: 26 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,29 @@ EMRG 是一个关于*自主进化*的实验。它能帮你写代码——读文

## 🚀 快速开始

### 🍎 macOS
### 📦 下载安装包(推荐,Phase 4 一键安装)

到 [GitHub Releases](https://github.com/argszero/emrg/releases) 下载对应平台的安装文件,双击安装即可:

| 平台 | 安装文件 | 说明 |
|------|---------|------|
| macOS (Apple Silicon) | `EMRG-<ver>-macos-arm64.pkg` | 双击安装,GUI 到 `~/Applications/EMRG.app` |
| macOS (Intel) | `EMRG-<ver>-macos-x64.pkg` | 同上 |
| Windows | `EMRG-<ver>-windows-x64.exe` | Inno Setup 免 UAC,开始菜单快捷方式 |
| Linux | `EMRG-<ver>-linux-x86_64.AppImage` | 首次运行自解压到 `~/.emrg/install/` |
| Linux (ARM64) | `EMRG-<ver>-linux-aarch64.AppImage` | 同上 |

安装包内置完整运行时(standalone Python 3.13 + 依赖 + git + gh + GUI),**干净机器(无 python/uv/git/gh/node)零前置依赖**,100% 离线安装。安装后:

- GUI:启动台 / 开始菜单点击 **EMRG**
- TUI:`~/.emrg/install/bin/emrg`(Linux 另生成 `~/.local/bin/emrg` 软链)
- 首次启动引导填写 API key;会话内可直接执行 python 脚本

> **卸载**:macOS 运行"卸载 EMRG.app";Windows 控制面板卸载;Linux 运行 `~/.emrg/install/bin/emrg-uninstall`(或删 AppImage + 软链)。卸载保留 `~/.emrg` 中非 EMRG 的用户文件,并生成终止报告与数据快照。
>
> **无 Apple 证书**:macOS 安装包未签名时,首次打开右键 → 打开(Gatekeeper 提示说明)。API key 配置除 GUI 外也可直接编辑 `~/.emrg/config.toml`(GUI 保存设置会重写 config,注释会丢失——高级配置建议直接编辑文件)。

### 🍎 macOS(源码安装)

**一键安装:**

Expand All @@ -58,7 +80,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

### 🐧 Linux
### 🐧 Linux(源码安装)

**一键安装:**

Expand All @@ -72,7 +94,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

### 🪟 Windows (WSL2)
### 🪟 Windows (WSL2,源码安装)

**一键安装:**

Expand All @@ -92,7 +114,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba
curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge
```

> 前置依赖(install.sh 会自动检测提示):git、python 3.11+、uv。gh CLI 推荐安装。
> 源码安装前置依赖(install.sh 会自动检测提示):git、python 3.11+、uv。gh CLI 推荐安装。Windows 原生版(非 WSL)请用上方安装包

安装完成后,编辑自动生成的配置文件即可使用:

Expand Down
20 changes: 14 additions & 6 deletions docs/design/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,16 +146,24 @@ emrg/client/

**目标**:`.pkg` / `.exe` / `.AppImage` 一键安装,安装即完整,卸载彻底。

**设计**(详见 `packaged-installer.md` §1-6):
- PyInstaller 三入口(`emrg` / `emrgd` / `emrg-gui`)+ git/gh 捆绑
- 用户级安装(免 sudo);统一安装方式(不再区分开发者/非开发者)
- 卸载:终止报告 + 墓地快照 + 清理 + 自校验
**设计**(详见 `phase4-installer.md` v3 定稿 + 120 轮 review R1-R120):
- 方案 C:standalone Python 3.13 + 源码 + lib/ 依赖 + git/gh 捆绑(1 套 python 三用,免 PyInstaller spec/frozen 坑)
- 安装布局 `~/.emrg/install/`(bin/ + git/ + lib/ + source/ + emrg-gui/),启动脚本 bin/emrg + bin/emrgd(bash + Windows .cmd)
- 统一卸载脚本 bin/emrg-uninstall(六步:停 daemon → 终止报告 → 墓地快照 → 白名单删除 → 环境清理 → 自校验)+ 平台卸载器
- GUI 打包改造(isPackaged 分支 + AppImage 自解压 + ensureConfigTemplate 内联模板)
- CI 构建流水线(build-release.yml,4 平台 matrix:macos-15 / ubuntu-24.04 x64+aarch64 / windows-2025)
- 冒烟测试 12 项(临时 HOME,覆盖 daemon auth+pong / 会话核心 / 捆绑 git+gh / 会话内 python)

**可与 Phase 3 并行准备**:spec 文件、CI matrix、签名流程可以在 GUI 开发期间搭好,GUI 一合入即出完整安装包。

**验收**:
- [ ] 干净机器(无 python/uv/git)双击安装 → 全部功能可用(TUI + GUI + 演化)
- [ ] `emrg uninstall` 清理彻底,无残留
- [x] 干净机器(无 python/uv/git/gh/node)双击安装 → 全部功能可用(TUI + GUI + 演化)— 代码侧完成(build-runtime + smoke 12/12 本地实测;完整 E2E 待 CI 冒烟落地)
- [x] 卸载彻底,无残留 — bin/emrg-uninstall 六步 + 白名单 + 幂等(临时 HOME 实测通过;Windows/macOS 平台卸载器在 CI 验证)
- [x] 安装目录只读零写入(PYTHONDONTWRITEBYTECODE + 零 pip)— smoke §11
- [x] 离线安装+首启+daemon+UI(Linux iptables 断网冒烟 CI)— smoke §12
- [x] 会话内 python 脚本可执行(bash 工具走捆绑 python)— smoke §7

**实施 PR**:#360 启动脚本 / #361 卸载脚本 / #362 核心改造 / #363 GUI 打包 / #364 packaging 资产 / #365 CI workflow(合并中)

---

Expand Down
Loading