@ictechgy/lterm 1.0.12 → 1.0.14
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.
- package/README.ko.md +15 -2
- package/README.md +9 -2
- package/package.json +5 -5
package/README.ko.md
CHANGED
|
@@ -76,7 +76,7 @@ GitHub에서 Cargo로 설치할 때는 release tag를 고정하세요. 아래
|
|
|
76
76
|
README 릴리스 기준이며, 더 최신 tag가 있는지는 Releases 페이지에서 확인하세요:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
79
|
+
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.14
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
저장소를 클론한 뒤 직접 빌드하려면 Rust 1.85 이상이 필요합니다.
|
|
@@ -343,7 +343,7 @@ lterm codex --mobile --tail 200 --refresh 1s --read-only
|
|
|
343
343
|
lterm agy --status -- -p "lterm status를 유지해줘"
|
|
344
344
|
```
|
|
345
345
|
|
|
346
|
-
Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini profile의 기본 attach 정책은 `auto`입니다. 데스크톱에서는 lterm status bar를 끈 raw full-terminal attach를 사용하므로 각 도구의 자체 TUI/status/alternate-screen 렌더링이 그대로 동작합니다. Termius 계열 모바일 클라이언트에서는 `auto`가 위에서 설명한 normal-screen transcript로 전환되어 긴 agent 출력을 모바일 기본 scrollback으로 읽을 수 있습니다.
|
|
346
|
+
Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini/OMX/OMC profile의 기본 attach 정책은 `auto`입니다. 데스크톱에서는 lterm status bar를 끈 raw full-terminal attach를 사용하므로 각 도구의 자체 TUI/status/alternate-screen 렌더링이 그대로 동작합니다. Termius 계열 모바일 클라이언트에서는 `auto`가 위에서 설명한 normal-screen transcript로 전환되어 긴 agent 출력을 모바일 기본 scrollback으로 읽을 수 있습니다. raw attach를 강제하려면 `--raw`, transcript를 강제하려면 `--mobile`을 사용하세요. `--status`로 lterm status bar를 강제로 켜거나, raw launch/profile에서 표시되는 status bar는 `--no-status`로 숨길 수 있습니다. agent에 넘길 인자가 lterm launch option처럼 보일 수 있으면 앞에 `--`를 두세요. `lterm agent <name>`은 `PATH`에서 찾을 수 있는 안전한 bare command name이면 바로 동작하므로, 예를 들어 `lterm agent qwen-code`처럼 미래/서드파티 agent도 쓸 수 있습니다. `lterm run -- <command>`는 더 낮은 수준의 tmux-compatible primitive를 직접 쓰고 싶을 때만 사용하세요.
|
|
347
347
|
|
|
348
348
|
launcher 제어 옵션은 agent의 흔한 short flag(`-c` 등)를 빼앗지 않도록 long-only(`--name`, `--cwd`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`)입니다. 이 옵션들은 `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, `agent <profile>`에 동일하게 적용됩니다. 해당 agent 세션이 이후 attach에서도 특정 lterm status 색을 유지하게 하려면 `--status-theme` / `--status-color`를 사용하세요.
|
|
349
349
|
`--detach`는 각 field의 control character와 Unicode line/paragraph separator를 공백으로 바꾼 `name<TAB>pane<TAB>command`를 출력하며, 나중에 `lterm resume <name>` 또는 호환 이름 `lterm attach <name>`으로 다시 붙으면 됩니다. detach record에는 `--cwd`가 포함되지 않으므로 나중에 필요하면 session을 조회하세요.
|
|
@@ -411,6 +411,11 @@ lterm run -- codex exec "저장소를 요약해줘"
|
|
|
411
411
|
호환성 참고: lterm은 각 root session을 하나의 pseudo-window로 모델링합니다
|
|
412
412
|
(`window_index=0`, `window_panes=1`). lterm은 client별 process/TTY metadata를
|
|
413
413
|
노출하지 않기 때문에 `client_pid`와 `client_tty`는 빈 문자열로 확장됩니다.
|
|
414
|
+
Detached `split-window -d -t <target>`은 같은 daemon socket 안에서 기존 live lterm
|
|
415
|
+
target이면 현재 pane이 아니어도 허용합니다. 이는 tmux의 cross-pane helper launch
|
|
416
|
+
동작을 맞추기 위한 것이며, daemon은 요청 처리 전에 같은 OS 사용자 peer credential을
|
|
417
|
+
검증합니다. detached helper는 target pane 안에 붙지 않고 별도 lterm session으로
|
|
418
|
+
생성됩니다.
|
|
414
419
|
`lterm tmux-compat list-commands --verbose`는 `command`, alias, support tier,
|
|
415
420
|
usage를 tab-separated로 출력하고, `--json`은 machine-readable row를 출력합니다.
|
|
416
421
|
Support tier는 lterm compatibility boundary 안에서 `full`, `partial`, `noop`
|
|
@@ -418,6 +423,14 @@ Support tier는 lterm compatibility boundary 안에서 `full`, `partial`, `noop`
|
|
|
418
423
|
shim에 도달했을 때 opt-in stderr diagnostic row를 출력합니다.
|
|
419
424
|
tmux `-f` filter는 조용히 무시하지 않고 의도적으로 거부합니다.
|
|
420
425
|
|
|
426
|
+
Status bar redraw는 보수적으로 allowlist된 terminal client(예: xterm/iTerm2/WezTerm
|
|
427
|
+
identity)에서만 xterm SGR stack control을 사용해 실행 중인 TUI의
|
|
428
|
+
foreground/background color state를 빼앗지 않도록 합니다.
|
|
429
|
+
`LTERM_STATUS_SGR_STACK=0`으로 `CSI # {` / `CSI # }`를 끌 수 있고, 클라이언트가
|
|
430
|
+
해당 private CSI를 지원하거나 안전하게 무시함을 확인했다면 `1`로 강제할 수 있습니다.
|
|
431
|
+
Kitty, Alacritty, Ghostty, Termius, generic `TERM=xterm-*` 값은 SGR-stack 동작이
|
|
432
|
+
검증될 때까지 opt-in 경로로 둡니다.
|
|
433
|
+
|
|
421
434
|
## cmux 동작
|
|
422
435
|
|
|
423
436
|
`lterm tmux-compat split-window`가 cmux 환경(`CMUX_WORKSPACE_ID`, `CMUX_SURFACE_ID`, 또는 cmux socket)을 감지하면 다음 순서로 동작합니다.
|
package/README.md
CHANGED
|
@@ -79,7 +79,7 @@ With Cargo from GitHub, pin a release tag. The example below uses the current
|
|
|
79
79
|
README release; check the Releases page for newer tags:
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
82
|
+
cargo install --locked --git https://github.com/ictechgy/light_terminal --tag v1.0.14
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
Building from this checkout requires Rust 1.85 or newer:
|
|
@@ -354,7 +354,7 @@ lterm codex --mobile --tail 200 --refresh 1s --read-only
|
|
|
354
354
|
lterm agy --status -- -p "keep lterm status visible"
|
|
355
355
|
```
|
|
356
356
|
|
|
357
|
-
Known Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini profiles default to the `auto` attach policy. On desktop that means a raw full-terminal attach without the lterm status bar, so their own TUI/status/alternate-screen rendering stays in control. On Termius-style mobile clients, `auto` uses the normal-screen transcript described above so long agent output can be reviewed with native mobile scrollback.
|
|
357
|
+
Known Claude/Codex/OpenCode/Copilot/Cursor Agent/Antigravity/Kiro/Jules/Aider/Goose/Amp/Crush/Kimi/Qwen/Gemini/OMX/OMC profiles default to the `auto` attach policy. On desktop that means a raw full-terminal attach without the lterm status bar, so their own TUI/status/alternate-screen rendering stays in control. On Termius-style mobile clients, `auto` uses the normal-screen transcript described above so long agent output can be reviewed with native mobile scrollback. Use `--raw` to force raw attach, `--mobile` to force transcript attach, `--status` to force the lterm status bar on, or `--no-status` to suppress it for any raw launch/profile that would otherwise show it. Put `--` before agent arguments that could be parsed as lterm launch options. `lterm agent <name>` also works for any safe bare command name available in `PATH` (for example `lterm agent qwen-code`); use `lterm run -- <command>` only when you want the lower-level tmux-compatible primitive directly.
|
|
358
358
|
|
|
359
359
|
Launcher controls are long-only (`--name`, `--cwd`, `--detach`, `--status`, `--no-status`, `--status-theme`, `--status-color`, `--attach-mode`, `--raw`, `--mobile`, `--tail`, `--refresh`, `--read-only`) so common agent short flags such as `-c` pass through naturally. They apply uniformly to built-in agent shortcuts such as `claude`, `codex`, `opencode`, `copilot`, `cursor-agent`, `agy`, `kiro`, `jules`, `aider`, `goose`, `amp`, `crush`, `kimi`, `qwen`, `gemini`, `omx`, `omc`, and `agent <profile>`. Use `--status-theme` / `--status-color` on agent launches when you want that session to keep a specific lterm status color across future attaches.
|
|
360
360
|
`--detach` prints `name<TAB>pane<TAB>command` with control characters and Unicode line/paragraph separators in each field replaced by spaces; resume later with `lterm resume <name>` or compatibility name `lterm attach <name>`. The detach record does not echo `--cwd`; query the session if you need to inspect it later.
|
|
@@ -424,8 +424,15 @@ Compatibility notes: lterm models each root session as one pseudo-window
|
|
|
424
424
|
(`window_index=0`, `window_panes=1`). `client_pid` and `client_tty` expand to
|
|
425
425
|
empty strings because lterm does not expose per-client process or TTY metadata.
|
|
426
426
|
tmux `-f` filters are intentionally rejected instead of being silently ignored.
|
|
427
|
+
Detached `split-window -d -t <target>` accepts any existing live lterm target,
|
|
428
|
+
matching tmux's cross-pane helper launch behavior inside the same daemon socket;
|
|
429
|
+
the daemon verifies same-OS-user peer credentials before honoring requests, and
|
|
430
|
+
the detached helper is created as a separate lterm session rather than being
|
|
431
|
+
attached into the target pane.
|
|
427
432
|
Use `lterm tmux-compat list-commands --verbose` for tab-separated `command`, alias, support tier, and usage fields, or `--json` for machine-readable rows. Support tiers are `full`, `partial`, and `noop` within lterm's compatibility boundary. Set `LTERM_DEBUG_TMUX=1` to emit an opt-in stderr diagnostic row when an unsupported tmux command reaches the shim.
|
|
428
433
|
|
|
434
|
+
Status-bar redraws use xterm SGR stack controls only on conservatively allowlisted terminal clients (for example xterm/iTerm2/WezTerm identities) to avoid stealing the foreground/background color state of the running TUI. Set `LTERM_STATUS_SGR_STACK=0` to disable `CSI # {` / `CSI # }`; set it to `1` to force the stack after verifying your client supports or safely ignores those private CSI sequences. Kitty, Alacritty, Ghostty, Termius, and generic `TERM=xterm-*` values stay opt-in until their SGR-stack behavior is verified.
|
|
435
|
+
|
|
429
436
|
## cmux behavior
|
|
430
437
|
|
|
431
438
|
When `lterm tmux-compat split-window` detects cmux (via `CMUX_WORKSPACE_ID`, `CMUX_SURFACE_ID`, or a cmux socket), it:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ictechgy/lterm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"description": "Lightweight tmux-compatible terminal session daemon with cmux-friendly notifications.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/ictechgy/light_terminal#readme",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"scripts/validate_npm_packages.mjs"
|
|
37
37
|
],
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"lterm-darwin-arm64": "1.0.
|
|
40
|
-
"lterm-darwin-x64": "1.0.
|
|
41
|
-
"lterm-linux-arm64": "1.0.
|
|
42
|
-
"lterm-linux-x64": "1.0.
|
|
39
|
+
"lterm-darwin-arm64": "1.0.14",
|
|
40
|
+
"lterm-darwin-x64": "1.0.14",
|
|
41
|
+
"lterm-linux-arm64": "1.0.14",
|
|
42
|
+
"lterm-linux-x64": "1.0.14"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=16"
|