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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); emrg: README adds Running the TUI startup section (rant 2026-08-14T12:04:47) by argszero · Pull Request #783 · argszero/emrg · GitHub
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
24 changes: 24 additions & 0 deletions README.cn.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ EMRG 不只是一个工具——它是一个**会听吐槽、会自我改进**

---

## 运行 TUI(终端版)

EMRG 骨子里是个终端应用——Electron GUI 只是同一引擎上的便捷外壳。

**安装版**:任意终端运行 `emrg`(Windows 为 `emrg.cmd`,安装器已自动注册 PATH)。

**源码版**:`uv run emrg`(或 `uv run python -m emrg`)。

首次运行 `emrg` 会自动拉起后台守护进程(`emrgd`)并进入交互式 TUI。守护进程常驻后台,可随时重连。

守护进程管理:
| 命令 | 作用 |
|---|---|
| `emrg` | 启动 TUI(必要时自动启动 daemon) |
| `emrg server` | 前台运行 daemon |
| `emrg server stop` | 停止后台 daemon |
| `emrg server restart` | 重启 daemon |
| `emrg rant <msg> [@project]` | 从命令行发反馈(无需进 TUI) |
| `emrg update` | 拉取最新源码并重装(源码安装) |

TUI 内:`Esc` 中断流式输出,`Ctrl+C` / `exit` 退出(配置与 GUI 共享——API Key 只需在一处设置一次)。

---

## 命令一览

> 全部命令在 GUI 与 TUI 均可使用(GUI 输入框敲 `/` 弹出补全菜单;TUI `/help` 列出全部)。
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,30 @@ Download from [GitHub Releases](https://github.com/argszero/emrg/releases) and d

---

## Running the TUI

EMRG is a terminal app at heart — the Electron GUI is a convenience shell on the same engine.

**Install**: `emrg` in any terminal (Windows: `emrg.cmd`, PATH auto-registered by the installer).

**From source**: `uv run emrg` (or `uv run python -m emrg`).

The first `emrg` run starts a background daemon (`emrgd`) and drops you into the interactive TUI. The daemon stays alive so you can reconnect anytime.

Daemon management:
| Command | What it does |
|---|---|
| `emrg` | Start the TUI (auto-starts the daemon if needed) |
| `emrg server` | Run the daemon in the foreground |
| `emrg server stop` | Stop the background daemon |
| `emrg server restart` | Restart the daemon |
| `emrg rant <msg> [@project]` | Send feedback from the CLI (no TUI needed) |
| `emrg update` | Pull latest source + reinstall (source installs) |

In the TUI: `Esc` interrupts streaming, `Ctrl+C` / `exit` quits (config is shared with the GUI — set your API key once in either).

---

## Commands

> All commands work in both the GUI (type `/` for autocomplete) and the TUI (`/help` lists everything).
Expand Down
Loading