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
56 changes: 35 additions & 21 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ EMRG is an experiment in *autonomous self-improvement*. It's an AI agent that he

| What | What it means |
|---|---|
| 🧠 **Reads, writes, edits, runs** | Full tool-calling agent — bash, files, diffs, all in your terminal |
| 🖥️ **Electron GUI (main entry)** | Non-developer entry point — install and go: first-run wizard configures API key, chat/sessions/tool status/settings all graphical. v0.2.5 full redesign: light/dark theme (follows system), friendly tool status rows, multi-model management, empty-state welcome, back-to-bottom button. v0.2.6 keyboard accessibility: ↑↓ nav, Enter submit in forms (all components keyboard-usable). v0.2.7 macOS code signing + notarization — zero Gatekeeper dialogs. **GUI configured = TUI ready** (shared config) |
| 🧠 **Reads, writes, edits, runs** | Full tool-calling agent — bash, files, diffs |
| 🔄 **Gets better on its own** | Background evolution cycles review rants + GitHub + competitor tools, then auto-PR improvements |
| 📝 **Never forgets** | Project memory + session memory + daily logs — context that persists |
| 🖥️ **Beautiful TUI** | Slash-command autocomplete, session picker, streaming markdown, elapsed timer, ESC interrupt |
| 🖱️ **Electron GUI (new)** | Non-developer entry point — chat/sessions/tool status/settings, auto-starts daemon, `npm start` to launch. v0.2.5 full redesign: light/dark theme (follows system), friendly tool status rows, multi-model management, empty-state welcome, back-to-bottom button. v0.2.6 keyboard accessibility: ↑↓ nav in model switcher/context menu/conv list, Enter submit in forms (all components keyboard-usable). v0.2.7 macOS code signing + notarization: Developer ID dual-cert, embedded Python runtime codesign, notary + spctl final gate — zero Gatekeeper dialogs on install |
| 🖥️ **Beautiful TUI** | Slash-command autocomplete, session picker, streaming markdown, elapsed timer, ESC interrupt. Advanced commands: `/rant` `/model` `/memory` |
| ⚡ **Parallel tools** | Independent tool calls run concurrently for speed |
| 🔌 **Micro-kernel daemon** | `emrgd` runs persistently — reconnect anytime without losing state |
| 🎮 **Vim-friendly** | `j`/`k` navigation, `Ctrl+W`/`Ctrl+K` editing, `Tab` to expand tool cards |
Expand All @@ -56,15 +56,21 @@ Download the installer for your platform from [GitHub Releases](https://github.c
| Linux | `EMRG-<ver>-linux-x86_64.AppImage` | Self-extracts to `~/.emrg/install/` on first run |
| Linux (ARM64) | `EMRG-<ver>-linux-aarch64.AppImage` | Same |

> **Windows SmartScreen notice**: The Windows installer is not Authenticode-signed (publisher shows "Unknown"), so SmartScreen may show "usually doesn't download" or "Windows protected your PC" on first download/run. This is a standard security prompt for unsigned software — it does **not** mean the file is bad (EMRG is fully open source and auditable). To proceed:
> (1) Browser download prompt → click **Keep** (or ⋯ → Keep)
> (2) If double-clicking shows "Windows protected your PC" → click **More info** → click **Run anyway**
> (3) Or right-click the exe → Properties → check **Unblock** (if present) → OK → double-click to run

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` (macOS writes a shell rc PATH anchor at install, so `emrg` works in new terminals; Linux also creates `~/.local/bin/emrg` symlink)
- First-run wizard asks for your API key; python scripts work inside sessions
**Three steps to start:**
1. Launch **EMRG** (GUI) from Launchpad / Start menu
2. First-run wizard configures **API Key / model**
3. Start chatting — **TUI is ready too** (run `emrg` in a new terminal)

> **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. **Windows uninstall is thorough** (v0.2.2+): kills GUI first to prevent daemon respawn, full whitelist cleanup of runtime files, `[UninstallDelete]` fallback removes install/, no residue in `~/.emrg`.
>
> **macOS signing & notarization**: since v0.2.7, macOS packages are signed with Developer ID dual-cert and notarized by Apple (zero Gatekeeper dialogs — double-click to install directly). Only for unsigned builds (e.g. self-built old versions) is right-click → Open needed on first launch. 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 signing & notarization**: since v0.2.7, macOS packages are signed with Developer ID dual-cert and notarized by Apple (zero Gatekeeper dialogs — double-click to install directly). Only for unsigned builds (e.g. self-built old versions) is right-click → Open needed on first launch.

### 🍎 macOS (source install)

Expand Down Expand Up @@ -116,20 +122,29 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba

> 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:
### 🖥️ First-time config (GUI first)

```bash
vim ~/.emrg/config.toml
```
After installing, **open the GUI to configure**:

1. **macOS**: Launchpad → **EMRG**; **Windows**: Start menu → **EMRG**
2. The first-run wizard walks you through **API Key / base URL / model** (also editable anytime in Settings ⚙)
3. Save and start chatting — **config is written to `~/.emrg/config.toml`, shared by GUI and TUI**

**Prefer a GUI?** Non-developers can use the Electron GUI:
> 💡 **GUI configured = TUI ready**: the installer bundles a full TUI. Config saved in the GUI (API key/model/workdir) goes to `~/.emrg/config.toml`, so running `emrg` in a new terminal enters the TUI with no re-configuration. The GUI covers most daily operations; the TUI offers advanced commands like `/rant` `/model` `/memory`.

### ⌨️ Using the TUI

```bash
git clone https://github.com/argszero/emrg.git && cd emrg/emrg/gui
npm ci && npm start # auto-starts daemon; chat/sessions/settings all graphical
emrg
```

`~/.emrg/config.toml` template example:
Type `/help` for all commands, or just start talking — EMRG reads files, runs commands, and makes edits.

### 🔧 Advanced config (optional)

> The GUI rewrites config on save and drops comments — advanced users can edit `~/.emrg/config.toml` directly (no manual editing needed for first-time setup; the GUI wizard handles it).

`~/.emrg/config.toml` template example (the GUI generates equivalent content on save):

```toml
[llm]
Expand Down Expand Up @@ -158,16 +173,12 @@ context_window = 128000
vision = true
```

```bash
emrg
```

Type `/help` to see all commands, or just start talking — EMRG reads files, runs commands, and makes edits.

---

## 🎮 Commands

> The GUI covers most daily operations (chat/sessions/settings/model switching); the TUI offers these advanced commands.

| Command | What it does |
|---|---|
| **Just type** | Ask EMRG anything — it reads files, runs commands, makes edits |
Expand Down Expand Up @@ -309,6 +320,9 @@ Any OpenAI-compatible API. Tested with DeepSeek and OpenAI. Works with Anthropic
**How is this different from Claude Code or Codex?**<br>
They're products. EMRG is an experiment in *closing the loop* — the AI improves the AI. Also: fully open source, no vendor lock-in, and you control your data.

**Why does the Windows installer show "Unknown publisher"?**<br>
The Windows installer is not Authenticode-signed (that certificate costs money to obtain and is not procured yet), so SmartScreen shows "Publisher: Unknown" and may block the run. This is a standard Microsoft security prompt for newly released/unsigned software — it does **not** mean the file is bad: EMRG is fully open source (MIT) and auditable. To proceed: click "Keep" on the browser prompt; click "More info → Run anyway" on the run prompt; or right-click the exe → Properties → check "Unblock". The macOS installer is signed + notarized (v0.2.7+) and has no such prompt.

---

## 📜 License
Expand Down
56 changes: 35 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ EMRG 是一个关于*自主进化*的实验。它能帮你写代码——读文

| 特性 | 说明 |
|---|---|
| 🧠 **读写改跑,样样精通** | 完整的工具调用能力——bash、文件读写、diff 编辑,全在终端里搞定 |
| 🖥️ **Electron GUI(主入口)** | 非开发者主入口——安装即用:首次启动引导配置 API Key、聊天/会话/工具状态/设置全图形化。v0.2.5 完全重设计:浅/深双主题跟随系统、工具过程友好化(折叠展开)、多模型管理(增删改/设默认/对话中切换)、空状态欢迎屏、回到底部按钮。v0.2.6 键盘可达性补全:模型切换器/右键菜单/对话列表 ↑↓ 导航、表单 Enter 提交。v0.2.7 macOS 签名+公证零 Gatekeeper 弹窗。**GUI 配好即 TUI 可用**(配置共享) |
| 🧠 **读写改跑,样样精通** | 完整的工具调用能力——bash、文件读写、diff 编辑 |
| 🔄 **吐槽驱动进化** | 你的 `/rant` 直接驱动后台演化循环——吐槽 → 分析 → 写代码 → 提 PR → 自动变强 |
| 📝 **永不忘事** | 项目记忆 + 会话记忆 + 每日日志——上下文持续保留,不怕断线 |
| 🖥️ **颜值在线的 TUI** | 斜杠命令自动补全、会话选择器、流式 Markdown 渲染、请求计时器、ESC 中断 |
| 🖱️ **Electron GUI(新)** | 非开发者主入口——聊天/会话/工具状态/设置,自动拉起 daemon,`npm start` 即开即用。v0.2.5 完全重设计:浅/深双主题跟随系统、工具过程友好化(折叠展开)、多模型管理(增删改/设默认/对话中切换)、空状态欢迎屏、回到底部按钮。v0.2.6 键盘可达性补全:模型切换器/右键菜单/对话列表 ↑↓ 导航、表单 Enter 提交(全组件键盘可用)。v0.2.7 macOS 签名+公证:Developer ID 双证书、内嵌 Python runtime 签名、公证+spctl 终验——安装零 Gatekeeper 弹窗 |
| 🖥️ **颜值在线的 TUI** | 斜杠命令自动补全、会话选择器、流式 Markdown 渲染、请求计时器、ESC 中断。`/rant` `/model` `/memory` 等进阶命令 |
| ⚡ **并行工具调用** | 独立的工具调用并发执行,速度飞快 |
| 🔌 **微内核守护进程** | `emrgd` 持久运行——随时重连,状态不丢 |
| 🎮 **Vim 友好** | `j`/`k` 导航、`Ctrl+W`/`Ctrl+K` 编辑、`Tab` 展开工具卡片 |
Expand All @@ -56,15 +56,21 @@ EMRG 是一个关于*自主进化*的实验。它能帮你写代码——读文
| Linux | `EMRG-<ver>-linux-x86_64.AppImage` | 首次运行自解压到 `~/.emrg/install/` |
| Linux (ARM64) | `EMRG-<ver>-linux-aarch64.AppImage` | 同上 |

> **Windows SmartScreen 提示**:Windows 安装包未做 Authenticode 签名(发布者显示"未知"),首次下载/运行时 SmartScreen 可能提示"通常不会下载此文件"或"Windows 已保护你的电脑"。这是未签名软件的常见安全提醒,不代表文件有问题(EMRG 完全开源,源码可审计)。放行方法:
> (1) 浏览器下载提示 → 点**保留**(或三个点 → 保留)
> (2) 双击 exe 若提示"Windows 已保护你的电脑" → 点**更多信息** → 点**仍要运行**
> (3) 或右键 exe → 属性 → 勾选**解除锁定**(若有)→ 确定 → 双击运行

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

- GUI:启动台 / 开始菜单点击 **EMRG**
- TUI:`~/.emrg/install/bin/emrg`(macOS 安装时写 shell rc PATH anchor,新开终端直接 `emrg`;Linux 另生成 `~/.local/bin/emrg` 软链)
- 首次启动引导填写 API key;会话内可直接执行 python 脚本
**三步开始使用:**
1. 启动台 / 开始菜单点击 **EMRG**(GUI)
2. 首次启动引导配置 **API Key / 模型**
3. 开始对话——**TUI 同步可用**(新开终端运行 `emrg`)

> **卸载**:macOS 运行"卸载 EMRG.app";Windows 控制面板卸载;Linux 运行 `~/.emrg/install/bin/emrg-uninstall`(或删 AppImage + 软链)。卸载保留 `~/.emrg` 中非 EMRG 的用户文件,并生成终止报告与数据快照。**Windows 卸载彻底**(v0.2.2+):先终止 GUI 进程防止 daemon 复活,白名单全量清理运行时文件,`[UninstallDelete]` 兜底删除 install/,`~/.emrg` 卸载后不残留。
>
> **macOS 签名与公证**:v0.2.7 起 macOS 安装包已用 Developer ID 双证书签名并完成 Apple 公证(零 Gatekeeper 弹窗,双击直接安装)。仅当安装包未签名时(如自建旧版本),才需要首次打开右键 → 打开。API key 配置除 GUI 外也可直接编辑 `~/.emrg/config.toml`(GUI 保存设置会重写 config,注释会丢失——高级配置建议直接编辑文件)。
> **macOS 签名与公证**:v0.2.7 起 macOS 安装包已用 Developer ID 双证书签名并完成 Apple 公证(零 Gatekeeper 弹窗,双击直接安装)。仅当安装包未签名时(如自建旧版本),才需要首次打开右键 → 打开。

### 🍎 macOS(源码安装)

Expand Down Expand Up @@ -116,20 +122,29 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba

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

安装完成后,编辑自动生成的配置文件即可使用:
### 🖥️ 首次配置(GUI 第一)

```bash
vim ~/.emrg/config.toml
```
安装完成后,**打开 GUI 完成首次配置**:

1. **macOS**:启动台 → 点击 **EMRG**;**Windows**:开始菜单 → **EMRG**
2. 首次启动引导会带你配置 **API Key / 接口地址 / 模型**(也随时可在设置 ⚙ 中修改)
3. 保存后即可开始对话——**配置写入 `~/.emrg/config.toml`,GUI 与 TUI 共享**

> 💡 **GUI 配好,TUI 直接用**:安装包内置完整 TUI。GUI 保存的配置(API Key/模型/工作目录)写入 `~/.emrg/config.toml`,终端新开窗口运行 `emrg` 即进入 TUI,无需重复配置。GUI 覆盖大部分日常操作;TUI 提供 `/rant` `/model` `/memory` 等进阶命令。

**不想用终端?** 非开发者可用图形界面(Electron GUI):
### ⌨️ 使用 TUI

```bash
git clone https://github.com/argszero/emrg.git && cd emrg/emrg/gui
npm ci && npm start # 自动拉起 daemon,聊天/会话/设置全图形化
emrg
```

`~/.emrg/config.toml` 模板示例:
输入 `/help` 查看所有命令,或者直接开始说话——EMRG 会读文件、跑命令、做编辑。

### 🔧 高级配置(可选)

> GUI 保存设置会重写 config 并丢失注释——高级用户可直接编辑 `~/.emrg/config.toml`(首次配置无需手动编辑,GUI 引导即可)。

`~/.emrg/config.toml` 模板示例(GUI 保存后自动生成等价内容):

```toml
[llm]
Expand Down Expand Up @@ -158,16 +173,12 @@ context_window = 128000
vision = true
```

```bash
emrg
```

输入 `/help` 查看所有命令,或者直接开始说话——EMRG 会读文件、跑命令、做编辑。

---

## 🎮 命令一览

> GUI 覆盖大部分日常操作(聊天/会话/设置/模型切换);TUI 提供以下进阶命令。

| 命令 | 功能 |
|---|---|
| **直接打字** | 问 EMRG 任何事——它会读文件、跑命令、做编辑 |
Expand Down Expand Up @@ -325,6 +336,9 @@ emrg/
**和 Claude Code 或 Codex 有什么不同?**<br>
它们是产品。EMRG 是一个关于*闭环进化*的实验——AI 改进 AI。此外:完全开源、无厂商锁定、你掌控自己的数据。

**为什么 Windows 安装包会提示"未知发布者"?**<br>
Windows 安装包未做 Authenticode 签名(该证书需付费申请,暂不采购),因此 SmartScreen 会显示"发布者:未知"并可能阻止运行。这是微软对新发布/未签名软件的通用安全提醒,**不代表文件有问题**——EMRG 完全开源(MIT),源码可审计。放行:浏览器提示点"保留";运行提示点"更多信息 → 仍要运行";或右键 exe → 属性 → 勾选"解除锁定"。macOS 安装包已签名+公证(v0.2.7+),无此问题。

---

## 📜 许可证
Expand Down
Loading