@kaydash9999/banker-plugins 0.19.4 → 0.20.0
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +25 -0
- package/README.md +6 -3
- package/bin/lib/telemetry-config.mjs +16 -3
- package/codex/manifest.json +1 -1
- package/commands/setup.md +1 -1
- package/hooks/update-checkin.mjs +2 -2
- package/package.json +1 -1
- package/skills/payload-mon/SKILL.md +6 -4
- package/skills/payload-mon/scripts/payload-mon.mjs +12 -2
- package/skills/setup-omc-hud/SKILL.md +113 -52
- package/skills/setup-omc-hud/assets/LICENSE-omc_hud +21 -0
- package/skills/setup-omc-hud/assets/apply-hud.mjs +234 -0
- package/skills/setup-omc-hud/assets/hud-config.json +53 -0
- package/skills/setup-omc-hud/assets/omc-hud-custom.mjs +545 -0
- package/skills/setup-omc-hud/scripts/claude-update-last.mjs +11 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "banker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Claude Code plugin: QA/audit/docs/architecture skills + commands, a /banker:setup installer for OS dependencies (playwright, etc.), and wiki compaction.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "smallOpenSource",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.20.0] - 2026-10-19
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- `setup-omc-hud` 가 상태표시줄 파일을 내려받지 않고 스킬에 든 파일(`skills/setup-omc-hud/assets/`)로 설치한다. 모든 OS 에서 `node assets/apply-hud.mjs` 한 명령이고, 네트워크가 없어도 끝까지 된다. 예전에는 GitHub 의 omc_hud 저장소에서 OS 별 스크립트를 받아, 원본이 바뀌면 설치 결과도 말없이 바뀌었다.
|
|
7
|
+
- 설치 스크립트는 설정 폴더 경로의 공백과 `settings.json` 앞의 BOM 을 처리하고, 손으로 고친 래퍼와 HUD 설정은 `.backup.<시각>` 으로 남긴다. 백업은 원본의 바이트와 권한을 그대로 두고, statusLine 의 다른 필드(`padding` 등)는 남긴다.
|
|
8
|
+
- 설치 스크립트는 `settings.json` 이 JSON 객체가 아니거나, OMC 가 없거나, 설정 폴더 경로에 셸이 해석하는 글자(`"`, `$`, 백틱, `%`, `\`, 줄바꿈)가 있거나, 쓸 수 없는 파일이 있으면 아무 파일도 바꾸지 않고 멈춘다(종료 1). 예기치 못한 오류로 중간에 멈추면 종료 2 로 알린다.
|
|
9
|
+
- 첨부 HUD 설정은 OMC 출력을 8줄까지 둔다. 3줄이면 에이전트가 하나만 돌아도 갱신 안내와 함께 상세 줄이 `... (+N lines)` 로 접혔다.
|
|
10
|
+
- 상태표시줄 래퍼가 v4 로 바뀐다. 첫 줄은 `<model>/<effort>|5h:<pct>/<reset>|wk:<pct>/<reset>|<mm>:<pct>/<reset>|think|PL:<mb>M|se:<hours>h|ctx:<pct>%|🤖<agents>|🔧<tools>|⚡<skills>|<cwd>|<account>|<branch>|claude<cur>→<new>` 이고, 둘째 줄부터 에이전트 목록 같은 상세 줄이 붙는다. 화면 폭을 넘으면 칸 사이에서 접는다. OMC 와 Claude Code 의 갱신 안내 줄, OMC 판 표시는 보이지 않는다.
|
|
11
|
+
- `setup-omc-hud` 는 설치할 때마다 payload-mon 을 켠다. `PL:` 칸이 payload-mon 의 크기 계산 모듈을 쓰기 때문이다. 예전에는 켜져 있던 경우만 다시 켰다.
|
|
12
|
+
- `setup-omc-hud` 의 Claude 갱신 안내 블록 단계를 뺀다. 새 래퍼가 안내를 줄여 직접 맨 끝에 둔다. 인자 `off`, `status` 는 옛 래퍼에 넣은 블록을 위해 남는다.
|
|
13
|
+
- 유지보수자용: 설치 스크립트, 래퍼 형식, 블록 도구 둘과 래퍼 v4 의 왕복을 시험한다. smoke 는 스킬 설명서에 내려받기 명령이 없는지와 Codex 사본의 설치 스크립트가 도는지를 본다.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- `payload-mon` 과 `setup-omc-hud` 의 블록 도구가 따옴표 안에서 펼쳐지지 않은 `~` 나 끝 공백이 든 `CLAUDE_CONFIG_DIR` 를 그대로 경로로 써서, 설치 스크립트가 만든 래퍼를 찾지 못하던 것. 이제 설치 스크립트와 같이 `~/x` 를 `<홈>/x` 로 읽는다.
|
|
17
|
+
|
|
18
|
+
## [0.19.5] - 2026-10-17
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- 유지보수자용: 시험이 링크인 `config.json` 의 `telemetry:false`, 기록 자리를 거절한 뒤의 써 본 스킬 집합, `readRegular` 와 `writeByRename` 을 직접 덮는다.
|
|
22
|
+
- 유지보수자용: 암호 모듈 없이 빌드한 Node 를 흉내 내는 시험 도구(`scripts/test-fixtures/no-crypto.mjs`)로 훅을 시험한다. 그런 Node 처럼 `node:crypto` 와 함께 `https`, `tls`, `http2` 도 불러오지 못하게 한다.
|
|
23
|
+
- 유지보수자용: 업데이트 확인 체크인 훅의 차지 이름 난수도 같은 도우미(`randomHex`)로 만든다.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- 사용량 기록 훅과 세션 시작 알림은 Node 의 암호 모듈(`node:crypto`)을 시작할 때 불러오지 않고, 임시 파일 이름의 난수가 필요할 때만 불러온다. 0.19.4 부터 시작할 때마다 이 모듈을 불러와, 사용량 기록 훅 한 번이 약 8ms 느려졌다(node 24 에서 70ms 가 79ms). 암호 모듈 없이 빌드한 Node 에서는 이 훅들이 0.19.4 부터 시작하자마자 실패했다. 이제는 난수를 `Math.random` 으로 만들어 그대로 돈다. 업데이트 확인 체크인과 백그라운드 갱신 확인은 https 를 쓰므로, 그런 Node 에서는 전과 같이 시작하지 못한다.
|
|
27
|
+
|
|
3
28
|
## [0.19.4] - 2026-10-17
|
|
4
29
|
|
|
5
30
|
### Changed
|
package/README.md
CHANGED
|
@@ -180,7 +180,7 @@ USER_RESOURCES 가이드의 공통 요소를 OS별·런타임별(Claude Code/Cod
|
|
|
180
180
|
| `setup-omc` | oh-my-claudecode(OMC) 설치·갱신 (Codex는 OMX) |
|
|
181
181
|
| `setup-harness-factory` | revfactory/harness 팀 아키텍처 팩토리 설치·구성·사용안내 (Codex=meta-harness) |
|
|
182
182
|
| `setup-playwright` | Playwright + headless 브라우저 (RHEL8/Rocky8·non-root·no-conda 폴백) |
|
|
183
|
-
| `setup-omc-hud` | omc_hud 상태표시줄
|
|
183
|
+
| `setup-omc-hud` | omc_hud 상태표시줄(래퍼 v4). 스킬에 든 파일로 오프라인 설치, 모든 OS 같은 명령 |
|
|
184
184
|
| `setup-insane-search` | insane-search 플러그인 설치 (Claude·Codex) |
|
|
185
185
|
| `setup-stitch` | Stitch 디자인 MCP 프록시 등록(RockyLinux8 proxy) |
|
|
186
186
|
| `docs-setup` | arch-diagram·pdf-vision-extract 의존성(pptx·pymupdf·plantuml) 설치 |
|
|
@@ -247,7 +247,7 @@ banker uninstall # 제거
|
|
|
247
247
|
| `setup-mcp` | `claude mcp add` (context7·seq-thinking·filesystem·git·fetch) | `[mcp_servers.*]` |
|
|
248
248
|
| `setup-lsp` | LSP MCP 등록 | `[mcp_servers.lsp_bridge]` |
|
|
249
249
|
| `setup-stitch` | `claude mcp add stitch` | `codex mcp add stitch` |
|
|
250
|
-
| `setup-omc-hud` | `statusLine` + `hud/omc-hud-custom.mjs`
|
|
250
|
+
| `setup-omc-hud` | `statusLine`(`settings.json` 백업) + `hud/omc-hud-custom.mjs`, `hud/omc-hud.mjs`, `.omc/hud-config.json`(바뀐 파일은 `.backup.<시각>` 백업) + payload-mon 켜기. 옛 판이 넣은 갱신 안내 블록은 `off` 로 원복 | — (Codex는 OMX `hud`) |
|
|
251
251
|
| `setup-pwsh` | `env.CLAUDE_CODE_GIT_BASH_PATH` (병합) | — (네이티브 셸, 배선 불필요) |
|
|
252
252
|
| `setup-harness-factory` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` (env 영속) | — |
|
|
253
253
|
| `smart-compact` | `statusLine.command` 래핑 + `UserPromptSubmit` 훅 추가 (백업·멱등) | `~/.codex/` 대응 |
|
|
@@ -301,7 +301,8 @@ Codex는 재설치할 때마다 기존 `banker-*` 를 먼저 정리하므로 옛
|
|
|
301
301
|
> 표시 블록과 모듈 사본은 플러그인 밖(`~/.claude/hud/`)에 있어서, 플러그인을 지워도 남아 계속 표시됩니다.\
|
|
302
302
|
> 이미 지웠다면 HUD를 재설치하거나, `omc-hud-custom.mjs` 에서 `// >>> payload-mon >>>` 부터 `// <<< payload-mon <<<` 까지 지우면 됩니다.
|
|
303
303
|
|
|
304
|
-
> `setup-omc-hud` 가
|
|
304
|
+
> `setup-omc-hud` 가 설치한 상태표시줄 래퍼와 설정도 플러그인 밖(`~/.claude/hud/`, `~/.claude/.omc/`)에 있어서, 플러그인을 지워도 남습니다.\
|
|
305
|
+
> 0.19.5 이하의 `setup-omc-hud` 가 옛 래퍼에 넣은 Claude 갱신 안내 블록은 제거 전에 `/banker:setup-omc-hud off` 로 뺄 수 있습니다.\
|
|
305
306
|
> 이미 지웠다면 HUD를 재설치하거나, `// >>> claude-update-last >>>` 부터 `// <<< claude-update-last <<<` 까지 지우면 됩니다. 블록을 남겨 두어도 상태표시줄은 깨지지 않습니다.
|
|
306
307
|
|
|
307
308
|
> `setup-bypass-permissions` 로 바꾼 권한 모드는 `settings.json` 에 남아, 플러그인을 지워도 모든 세션에서 확인 없이 도구가 실행됩니다. 제거 전에 `/banker:setup-bypass-permissions off` 를 실행하세요.\
|
|
@@ -366,6 +367,8 @@ banker 자체는 **MIT** ([LICENSE](LICENSE)). Owner: [smallOpenSource](https://
|
|
|
366
367
|
패턴 목록은 Wikipedia [*Signs of AI writing*](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)(WikiProject AI Cleanup, **CC BY-SA**)에 기반합니다.
|
|
367
368
|
- `skills/3d-intro-build/references`: [oso95/scroll-world](https://github.com/oso95/scroll-world) 의 스크럽 엔진(`scrub-engine.js`·`index-template.html`)을 그대로 벤더링, **MIT License**(© 2026 cyw).\
|
|
368
369
|
원본 라이선스 고지는 `skills/3d-intro-build/references/LICENSE` 와 `NOTICE.md` 에 포함.
|
|
370
|
+
- `skills/setup-omc-hud/assets`: 상태표시줄 래퍼와 설치 스크립트는 [smallOpenSource/omc_hud](https://github.com/smallOpenSource/omc_hud) d3cedd5 를 고친 것, **MIT License**(© 2026 smallOpenSource).\
|
|
371
|
+
원본 라이선스 고지는 `skills/setup-omc-hud/assets/LICENSE-omc_hud` 에 포함.
|
|
369
372
|
- `skills/theme-selection/assets`: 번들 팔레트(`palettes.json`)는 [VoltAgent/awesome-design-md](https://github.com/VoltAgent/awesome-design-md) 의 DESIGN.md 에서 색 값을 읽어 만든 것, **MIT License**(© 2026 VoltAgent).\
|
|
370
373
|
원본 라이선스 고지는 `skills/theme-selection/assets/LICENSE` 와 `NOTICE.md` 에 포함.\
|
|
371
374
|
테마 이름의 상표는 각 소유자에게 있으며, banker 는 그 회사들과 관계가 없습니다.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* telemetry-config - banker 텔레메트리 config/consent 공용 모듈 (bin·hook 공유).
|
|
3
|
-
* 의존성 0 (Node 내장 모듈만: node:fs, node:path, node:os, node:
|
|
3
|
+
* 의존성 0 (Node 내장 모듈만: node:fs, node:module, node:path, node:os, node:url. node:crypto 는 임시 이름의
|
|
4
|
+
* 난수가 필요할 때만 불러온다). ESM(.mjs).
|
|
4
5
|
* import 시 부작용 없음: 경로는 resolver 로 호출 시 계산하고, 파일시스템 접근·mkdir 은
|
|
5
6
|
* 각 함수 호출 시에만 일어난다. readConfig/isEnabled/endpoint 는 어떤 예외도 밖으로 던지지 않는다.
|
|
6
7
|
*/
|
|
7
|
-
import crypto from 'node:crypto';
|
|
8
8
|
import fs from 'node:fs';
|
|
9
|
+
import { createRequire } from 'node:module';
|
|
9
10
|
import path from 'node:path';
|
|
10
11
|
import os from 'node:os';
|
|
11
12
|
import { fileURLToPath } from 'node:url';
|
|
@@ -87,12 +88,24 @@ export function readRegular(file) {
|
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
|
|
91
|
+
const requireBuiltin = createRequire(import.meta.url);
|
|
92
|
+
|
|
93
|
+
// 16진 소문자 8자 난수. node:crypto 는 부를 때 불러온다: 맨 위에서 가져오면 훅을 시작할 때마다 약 8ms 가 든다(node 24
|
|
94
|
+
// 실측). crypto 없이 빌드한 Node 에서는 Math.random 으로 만든다. 임시 이름을 미리 알기 어렵게 하려는 값이라 비밀이 아니다.
|
|
95
|
+
export function randomHex() {
|
|
96
|
+
try {
|
|
97
|
+
return requireBuiltin('node:crypto').randomBytes(4).toString('hex');
|
|
98
|
+
} catch {
|
|
99
|
+
return Math.floor(Math.random() * 0x100000000).toString(16).padStart(8, '0');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
90
103
|
// target 자리에 data 를 놓는다. 새 임시 파일을 만들어(wx: 그 이름에 무엇이 있으면 만들지 않음) 쓰고 rename 으로
|
|
91
104
|
// 옮겨, 임시 이름이나 target 자리의 링크를 따라 다른 파일을 덮지 않는다. 임시 이름에 난수를 붙이는 것은 Windows 의
|
|
92
105
|
// wx 가 끊어진 링크를 따라가 그 너머에 새 파일을 만들기 때문이다: 이름을 미리 알 수 없어야 링크를 심어 둘 수 없다.
|
|
93
106
|
// 실패하면 던진다. 지우는 것은 이 호출이 만든 임시 파일뿐이고, 그 이름에 이미 있던 것은 둔다.
|
|
94
107
|
export function writeByRename(target, data) {
|
|
95
|
-
const tmp = `${target}.${process.pid}.${
|
|
108
|
+
const tmp = `${target}.${process.pid}.${randomHex()}.tmp`;
|
|
96
109
|
let made = false;
|
|
97
110
|
try {
|
|
98
111
|
const fd = fs.openSync(tmp, 'wx');
|
package/codex/manifest.json
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{ "name": "ultra-init", "type": "skill", "target": "both", "reason": "orchestrates ralplan->ralph->QA gate (no ultragoal ledger: OMC 5.6.1 checkpoints need a /goal snapshot that would compete with ralph); Claude=OMC 5 (verify cycle in place of the removed ultraqa; needs the omc CLI with `omc ralph verify`), Codex=OMX (OMX ultraqa); body runtime-aware", "supportingFiles": [] },
|
|
29
29
|
{ "name": "omc-reference", "type": "skill", "target": "both", "reason": "OMC/OMX agent/tool/skill registry reference; runtime-aware (Codex counterpart is OMX)", "supportingFiles": [] },
|
|
30
30
|
{ "name": "setup-omc", "type": "skill", "target": "both", "reason": "installs OMC (Claude) or OMX (Codex `omx setup`); body already dual-runtime", "supportingFiles": [] },
|
|
31
|
-
{ "name": "setup-omc-hud", "type": "skill", "target": "both", "reason": "installs omc_hud (Claude statusLine) and
|
|
31
|
+
{ "name": "setup-omc-hud", "type": "skill", "target": "both", "reason": "installs the omc_hud statusline wrapper v4 (Claude statusLine) from files bundled in assets/, offline and with one node command on every OS, then turns payload-mon on for the PL segment; off/status handle the update-notice block older wrappers took; Codex uses OMX `hud`; runtime-aware", "supportingFiles": ["assets/apply-hud.mjs", "assets/omc-hud-custom.mjs", "assets/hud-config.json", "assets/LICENSE-omc_hud", "scripts/claude-update-last.mjs"] },
|
|
32
32
|
{ "name": "setup-stitch", "type": "skill", "target": "both", "reason": "registers the Stitch MCP proxy (RockyLinux8 ~/bin/stitch-proxy.sh); Claude `claude mcp add`, Codex `codex mcp add`", "supportingFiles": [] },
|
|
33
33
|
|
|
34
34
|
{ "name": "docs-setup", "type": "skill", "target": "both", "reason": "installs arch-diagram/pdf-vision-extract deps (python-pptx, pymupdf, plantuml); python-env detect/select; runtime-agnostic installer", "supportingFiles": [] },
|
package/commands/setup.md
CHANGED
|
@@ -31,7 +31,7 @@ banker 플러그인이 제공하는 설치 스킬들을 **multi-select**로 골
|
|
|
31
31
|
- **setup-omc** — oh-my-claudecode(OMC) 설치/갱신(Codex는 OMX). `all-in-one`·`ultra-chain`·`ultra-init`·`/banker:front-qa` 의존성.
|
|
32
32
|
- **setup-harness-factory** — revfactory/harness(팀 아키텍처 팩토리) 설치+구성+안내(Codex=meta-harness).
|
|
33
33
|
- **setup-insane-search** — insane-search 플러그인(차단 사이트 우회, Claude/Codex 양쪽).
|
|
34
|
-
- **setup-omc-hud** — omc_hud 상태표시줄(
|
|
34
|
+
- **setup-omc-hud** — omc_hud 상태표시줄(래퍼 v4, 스킬에 든 파일로 오프라인 설치).
|
|
35
35
|
- **setup-stitch** — Stitch(디자인 생성) MCP 프록시 등록(RockyLinux8 proxy-script, API key 필요).
|
|
36
36
|
|
|
37
37
|
**의존성 라이브러리**
|
package/hooks/update-checkin.mjs
CHANGED
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
* countingActive + 엔드포인트 설정 시 fetcher 로 detached spawn 한다(응답 latest 가 알림 캐시를 겸함).
|
|
19
19
|
*/
|
|
20
20
|
import { lstatSync, readdirSync, renameSync, unlinkSync } from 'node:fs';
|
|
21
|
-
import { randomBytes } from 'node:crypto';
|
|
22
21
|
import http from 'node:http';
|
|
23
22
|
import https from 'node:https';
|
|
24
23
|
import { dirname, join } from 'node:path';
|
|
@@ -37,6 +36,7 @@ import {
|
|
|
37
36
|
netDeadlineMs,
|
|
38
37
|
readRegular,
|
|
39
38
|
writeByRename,
|
|
39
|
+
randomHex,
|
|
40
40
|
} from '../bin/lib/telemetry-config.mjs';
|
|
41
41
|
|
|
42
42
|
const NET_TIMEOUT_MS = 10_000;
|
|
@@ -193,7 +193,7 @@ function claimLog() {
|
|
|
193
193
|
} catch {
|
|
194
194
|
return { raw: '', claim: null };
|
|
195
195
|
}
|
|
196
|
-
const claim = join(dirname(USAGE_LOG_PATH), `usage-log.sending-${process.pid}-${Date.now()}-${
|
|
196
|
+
const claim = join(dirname(USAGE_LOG_PATH), `usage-log.sending-${process.pid}-${Date.now()}-${randomHex()}`);
|
|
197
197
|
return renameAside(USAGE_LOG_PATH, claim) ? { raw: readRegular(claim), claim } : { raw: '', claim: null };
|
|
198
198
|
}
|
|
199
199
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaydash9999/banker-plugins",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "banker — Claude Code + Codex CLI plugin (QA, audit, docs, architecture, wiki skills). Install via Claude Code marketplace, or `npm i -g @kaydash9999/banker-plugins` then `banker setup`.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"banker": "bin/banker.js"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: payload-mon
|
|
3
|
-
description: "OMC HUD
|
|
3
|
+
description: "OMC HUD 상태표시줄에 현재 세션이 보내는 API 요청의 페이로드 추정치를 32MB 한도 대비로 표시하는 기능을 켜고 끔. 래퍼 v4 는 `PL:` 칸으로 늘 보이고, 옛 래퍼는 8MB 부터 `ctx` 옆에 보임. 'payload-mon'/'payload 모니터 켜/꺼'/'상태표시줄 payload 표시'/'요청 크기 경고'/'32MB 한도 경고'/'payload 표시가 안 보여' 시 사용."
|
|
4
4
|
argument-hint: "on | off | status"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -11,6 +11,7 @@ argument-hint: "on | off | status"
|
|
|
11
11
|
Claude Code 는 요청 본문이 32MB 를 넘으면 "Request too large (max 32MB)" 로 거절한다.
|
|
12
12
|
이 한도는 토큰이 아니라 바이트라서, ctx(컨텍스트 %)가 낮아도 이미지나 큰 도구 결과가 쌓이면 걸린다.
|
|
13
13
|
이 스킬은 그 바이트를 추정해 한도의 25%(8MB)부터 ctx 옆에 `payload:28%/9.0MB` 처럼 보여 준다.
|
|
14
|
+
`setup-omc-hud` 가 까는 래퍼 v4 는 이 스킬의 모듈로 크기를 늘 `se` 앞에 `PL:0.5M` 처럼 보이고, 블록이 내는 칸은 그 `PL:` 이 대신한다.
|
|
14
15
|
|
|
15
16
|
## 실행
|
|
16
17
|
|
|
@@ -41,13 +42,14 @@ node "<이 스킬 디렉터리 절대경로>/scripts/payload-mon.mjs" <on|off|st
|
|
|
41
42
|
블록이 불러오는 추정 모듈은 래퍼 옆 `hud/payload-mon/payload-size.mjs` 에 사본으로 둔다. 플러그인 설치 경로는 버전마다 바뀌어 업데이트 뒤에 사라지기 때문이다.
|
|
42
43
|
이미 켜져 있으면 래퍼를 바꾸지 않고, 모듈 사본이 이 버전과 다를 때만 사본을 맞춘다. 예전 방식(블록 2개)으로 켜져 있었다면 새 방식으로 바꾼다.
|
|
43
44
|
바꾸기 전 내용은 `omc-hud-custom.mjs.payload-mon.bak` 에 남는다.
|
|
44
|
-
- `off`: 그 블록만 빼서 래퍼를 켜기 전 상태로 되돌리고, 모듈 사본과 추정치 캐시를 지운다.
|
|
45
|
+
- `off`: 그 블록만 빼서 래퍼를 켜기 전 상태로 되돌리고, 모듈 사본과 추정치 캐시를 지운다. 래퍼 v4 에서는 모듈 사본이 없어져 `PL:` 칸도 사라진다.
|
|
45
46
|
- `status`: 켜짐·꺼짐, 모듈 사본이 이 버전과 같은지, statusLine 이 이 래퍼를 쓰는지, 현재 세션의 추정치를 보여 준다.
|
|
46
47
|
- 같은 래퍼에 자기 표시 블록을 넣는 다른 도구가 있어도 서로의 블록을 건드리지 않는다.
|
|
47
48
|
|
|
48
49
|
## 무엇을 어떻게 보여 주는가
|
|
49
50
|
|
|
50
|
-
- `
|
|
51
|
+
- 래퍼 v4: `PL:9.0M|se:0.7h|…`. 크기(MB, 소수 1자리)를 늘 보이고, 색은 32MB 대비 %(70% 미만 초록, 85% 미만 노랑, 그 이상 분홍)다.
|
|
52
|
+
- 옛 래퍼: `ctx:21%|payload:28%/9.0MB|se:…`: 32MB 대비 %(ctx 와 같은 색: 70% 미만 초록, 85% 미만 노랑, 그 이상 빨강)와 크기(MB, 청록). 8MB 미만이면 숨긴다.
|
|
51
53
|
- 값은 마지막 `/compact` 이후 Claude Code 가 실제로 보내는 메시지의 바이트다. Claude Code 가 32MB 한도를 판정하는 방식과 같고, 무엇을 넣고 뺄지는 Claude Code 2.1.288 의 요청 필터를 따른다.
|
|
52
54
|
- 세션 파일 크기가 아니다. 71MB 짜리 세션 파일도 실제 전송분은 0.1MB 일 수 있다. 알려진 오차는 `scripts/payload-size.mjs` 머리 주석에 있다.
|
|
53
55
|
|
|
@@ -60,7 +62,7 @@ node "<이 스킬 디렉터리 절대경로>/scripts/payload-mon.mjs" <on|off|st
|
|
|
60
62
|
- "모듈 사본을 쓰지 못했습니다": 래퍼 옆 `hud/payload-mon/` 에 쓸 수 없다(권한, 같은 이름의 파일, 디스크 공간). 래퍼는 그대로다.
|
|
61
63
|
- "표시(>>> / <<<)의 짝이 맞지 않습니다": 래퍼에 payload-mon 표시 줄이 한쪽만 남았다. `on`·`off` 모두 거부하므로, 손으로 고치지 말라는 원칙의 유일한 예외다.
|
|
62
64
|
`setup-omc-hud` 로 HUD 를 재설치하거나, 래퍼에서 짝 없이 남은 `// >>> payload-mon >>>` 또는 `// <<< payload-mon <<<` 줄을 지운 뒤 다시 실행한다.
|
|
63
|
-
- HUD 를 재설치한 뒤 payload 가 안 보이면 `on` 을 다시 실행한다. `setup-omc-hud`
|
|
65
|
+
- HUD 를 재설치한 뒤 payload 가 안 보이면 `on` 을 다시 실행한다. `setup-omc-hud` 는 설치할 때마다 이 스킬을 늘 켠다(래퍼 v4 의 `PL:` 칸이 모듈 사본을 씀).
|
|
64
66
|
- banker 업데이트 알림에 payload-mon 이 바뀌었다고 나오거나 `status` 에 "모듈 사본이 이 버전과 다름" 이 나오면, `on` 을 한 번 실행해 사본을 맞춘다.
|
|
65
67
|
- `status` 에 "주의: statusLine 명령에 … 보이지 않습니다" 가 나오면 statusline 이 다른 명령이다. smart-compact 처럼 HUD 를 감싸 호출하는 래퍼라면 정상 표시된다. 이 스킬은 OMC 커스텀 HUD 래퍼에만 붙는다.
|
|
66
68
|
- 추정치가 실제 "Request too large" 시점과 크게 어긋나면 Claude Code 가 세션 파일 형식이나 요청 필터를 바꿨을 수 있다. banker 이슈로 알린다.
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
writeFileSync,
|
|
50
50
|
} from "node:fs";
|
|
51
51
|
import { homedir, tmpdir } from "node:os";
|
|
52
|
-
import { basename, dirname, join } from "node:path";
|
|
52
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
53
53
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
54
54
|
import { CACHE_DIR, clearCache, estimatePayloadBytes, REQUEST_LIMIT_BYTES, SHOW_FROM_BYTES } from "./payload-size.mjs";
|
|
55
55
|
|
|
@@ -62,7 +62,17 @@ const CTX_LINE = /^ {2}if \(f\.ctx\) colored\.push\(colorCtx\(f\.ctx\)\);\r?\n/m
|
|
|
62
62
|
const INPUT_DECL = /^(?:let|const) input\b/m;
|
|
63
63
|
const MB = 1024 * 1024;
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
// The same rules as setup-omc-hud's installer (OMC's getClaudeConfigDir): trim, expand a leading "~",
|
|
66
|
+
// make it absolute, drop a trailing separator. A value no shell expanded ("~/x" in quotes) still finds
|
|
67
|
+
// the wrapper the installer put there.
|
|
68
|
+
function configDir() {
|
|
69
|
+
const v = (process.env.CLAUDE_CONFIG_DIR || "").trim();
|
|
70
|
+
if (!v) return join(homedir(), ".claude");
|
|
71
|
+
if (v === "~") return homedir();
|
|
72
|
+
if (v.startsWith("~/") || v.startsWith("~\\")) return join(homedir(), v.slice(2));
|
|
73
|
+
return resolve(v);
|
|
74
|
+
}
|
|
75
|
+
const CONFIG_DIR = configDir().replace(/[\\/]+$/, "");
|
|
66
76
|
|
|
67
77
|
const DEFAULTS = {
|
|
68
78
|
hudFile: process.env.PAYLOAD_MON_HUD_FILE || join(CONFIG_DIR, "hud", "omc-hud-custom.mjs"),
|
|
@@ -1,73 +1,134 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: setup-omc-hud
|
|
3
|
-
description: "Claude Code
|
|
3
|
+
description: "Claude Code 상태표시줄 omc_hud 래퍼를 스킬에 든 파일로 설치. 내려받지 않고 오프라인에서 모든 OS 같은 명령으로 동작하며, PL 칸에 쓰는 payload-mon 모듈도 켬. Codex 는 OMX 의 `hud` 스킬을 씀. 'setup-omc-hud'/'omc_hud 설치'/'상태표시줄 설치' 또는 `/banker:setup` 시 사용."
|
|
4
4
|
argument-hint: "[off|status]"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# setup-omc-hud
|
|
7
|
+
# setup-omc-hud: omc_hud 상태표시줄 설치 (오프라인)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
이 스킬 폴더의 `assets/` 에 든 파일로 상태표시줄 래퍼 v4 를 설치한다. 답변은 한글.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
- 내려받는 것이 없다. 네트워크가 없어도 끝까지 된다.
|
|
12
|
+
- Windows, Linux, macOS 모두 `node` 명령 하나로 같은 절차를 밟는다.
|
|
13
|
+
- 설치 파일: `apply-hud.mjs`(설치 스크립트), `omc-hud-custom.mjs`(래퍼 v4), `hud-config.json`(HUD 설정), `LICENSE-omc_hud`(원본 omc_hud 의 MIT 라이선스)
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
**런타임:** Claude Code 상태표시줄(`<설정 폴더>/settings.json` 의 `statusLine`)이 대상이다. Codex 런타임에서는 oh-my-codex(OMX)가 자체 `hud` 스킬을 주므로 이 스킬 대신 OMX 의 `hud` 를 쓴다.
|
|
16
|
+
|
|
17
|
+
**인자가 `off` 또는 `status` 일 때:** 0~3단계를 건너뛰고 "인자 off, status" 절만 실행한다.
|
|
18
|
+
|
|
19
|
+
## 표시 형식
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
<model>/<effort>|5h:<pct>/<reset>|wk:<pct>/<reset>|<mm>:<pct>/<reset>|think|PL:<mb>M|se:<hours>h|ctx:<pct>%|🤖<agents>|🔧<tools>|⚡<skills>|<cwd>|<account>|<branch>|claude<cur>→<new>
|
|
23
|
+
<에이전트 목록, 경고 같은 상세 줄>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
| 변수 | 뜻 | 예 | 나오는 조건 |
|
|
27
|
+
|---|---|---|---|
|
|
28
|
+
| `<model>` | 모델 이름 앞 2글자와 버전 | `Op5.5` | 항상 |
|
|
29
|
+
| `<effort>` | 추론 강도 | `high` | Claude Code 가 넘기거나 OMC 가 effort 칸을 낼 때 |
|
|
30
|
+
| `<pct>`, `<reset>` | 사용률과 초기화까지 남은 시간 | `96%`, `1h5m` | 사용량 정보가 있을 때 |
|
|
31
|
+
| `<mm>` | 모델별 사용량의 모델 이름 앞 2글자 | `Fa` | OMC 가 모델별 사용량을 낼 때 |
|
|
32
|
+
| `think` | 확장 사고 표시 | `think` | 확장 사고가 켜져 있을 때 |
|
|
33
|
+
| `<mb>` | 요청 크기 추정치(MB, 소수 1자리) | `0.5` | payload-mon 모듈이 있을 때 |
|
|
34
|
+
| `<hours>` | 세션 시간(시간, 소수 1자리) | `0.7` | 항상 |
|
|
35
|
+
| `ctx:<pct>%` | 대화 맥락 사용률 | `ctx:12%` | OMC 가 ctx 를 낼 때 |
|
|
36
|
+
| `<agents>` | 이 세션의 에이전트 호출 수 | `1` | 1 이상일 때 |
|
|
37
|
+
| `<tools>` | 도구 호출 수 | `14` | 1 이상일 때 |
|
|
38
|
+
| `<skills>` | 스킬 호출 수 | `3` | 1 이상일 때 |
|
|
39
|
+
| `<cwd>` | 작업 폴더 | `/home/user/project` | 항상 |
|
|
40
|
+
| `<account>` | 로그인 계정 이메일의 `@` 앞부분 | `user` | `.claude.json` 에 이메일이 있을 때 |
|
|
41
|
+
| `<branch>` | git 브랜치 | `main` | git 저장소 안일 때 |
|
|
42
|
+
| `<cur>`, `<new>` | 지금 Claude Code 판과 새 판 | `2.1.300`, `2.1.302` | 새 판이 있을 때. 지금 판을 모르면 `claude→<new>` |
|
|
43
|
+
|
|
44
|
+
- 조건이 맞지 않는 칸은 구분자 `|` 와 함께 빠진다.
|
|
45
|
+
- 색
|
|
46
|
+
- `%` 는 70% 미만 초록, 85% 미만 노랑, 그 이상 분홍(256색 213)
|
|
47
|
+
- `<mb>` 는 32MB 대비 같은 기준
|
|
48
|
+
- OMC 는 ctx 가 80% 를 넘으면 뒤에 `COMPRESS?`, `CRITICAL` 을 붙인다. 래퍼는 이 글자를 빼고 색으로만 보인다.
|
|
49
|
+
- ralph, autopilot, `agents:<n>`(실행 중인 에이전트) 같은 OMC 상태 칸은 활성일 때만 `⚡<skills>` 와 `<cwd>` 사이에 흐리게 나온다.
|
|
50
|
+
- 화면 폭을 넘으면 칸 사이에서 다음 줄로 넘어간다.
|
|
51
|
+
- 둘째 줄부터는 OMC 의 상세 줄(에이전트 목록, todo, 경고)이다. OMC 와 Claude Code 의 갱신 안내 줄은 뺀다.
|
|
52
|
+
- 첨부 HUD 설정은 OMC 출력을 8줄까지 둔다. 넘으면 OMC 가 상세 줄을 `... (+N lines)` 한 줄로 접는다.
|
|
14
53
|
|
|
15
54
|
## 0. 감지
|
|
55
|
+
|
|
56
|
+
- `node -v` 로 Node 18 이상인지 본다. OMC 5.7.4 는 Node 20 이상을 적는다.
|
|
57
|
+
- 설정 폴더는 `$CLAUDE_CONFIG_DIR`, 없으면 `~/.claude` 다.
|
|
58
|
+
- OMC 가 설치돼 있어야 한다. 없으면 1단계가 멈추고 알린다.
|
|
59
|
+
|
|
60
|
+
## 1. 적용
|
|
61
|
+
|
|
62
|
+
모든 OS 에서 같은 명령이다.
|
|
63
|
+
|
|
64
|
+
bash, zsh:
|
|
16
65
|
```bash
|
|
17
|
-
|
|
18
|
-
command -v wget >/dev/null && echo "dl=wget" || { command -v curl >/dev/null && echo "dl=curl" || echo "dl=none(설치 필요)"; }
|
|
19
|
-
# 적용 스크립트가 래퍼를 덮어쓰면 payload-mon 표시 블록이 빠진다. 지금 켜져 있는지 기억해 둔다(3단계에서 사용).
|
|
20
|
-
HUD_FILE="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud/omc-hud-custom.mjs"
|
|
21
|
-
grep -qF '// >>> payload-mon >>>' "$HUD_FILE" 2>/dev/null && echo "payload-mon=on" || echo "payload-mon=off"
|
|
66
|
+
node "<이 스킬 디렉터리 절대경로>/assets/apply-hud.mjs"
|
|
22
67
|
```
|
|
23
|
-
|
|
68
|
+
|
|
69
|
+
PowerShell:
|
|
24
70
|
```powershell
|
|
25
|
-
|
|
26
|
-
if (Select-String -Quiet -SimpleMatch -LiteralPath "$cfg\hud\omc-hud-custom.mjs" -Pattern '// >>> payload-mon >>>' -ErrorAction SilentlyContinue) { "payload-mon=on" } else { "payload-mon=off" }
|
|
71
|
+
node "<이 스킬 디렉터리 절대경로>\assets\apply-hud.mjs"
|
|
27
72
|
```
|
|
28
73
|
|
|
29
|
-
|
|
74
|
+
- `[ok] statusLine -> node "<설정 폴더>/hud/omc-hud-custom.mjs"` 줄을 확인한다.
|
|
75
|
+
- 기존 statusLine 이 다른 명령이었으면 `[..] statusLine ran ...` 줄이 나온다. 보고에 그대로 넣는다.
|
|
76
|
+
- 종료 코드 1 이면 출력의 `[x]` 줄을 그대로 보고하고 멈춘다. 이때 바뀐 파일은 없다.
|
|
77
|
+
- `settings.json` 이 JSON 객체가 아니면 사용자가 고친 뒤 다시 실행한다.
|
|
78
|
+
- OMC 가 없으면 OMC 를 먼저 설치한다(`setup-omc` 스킬). 이 스킬은 OMC 를 설치하지 않는다.
|
|
79
|
+
- 설정 폴더 경로에 셸이 해석하는 글자가 있으면 그 글자가 없는 폴더를 쓰게 안내한다.
|
|
80
|
+
- 쓸 수 없는 파일이나 폴더가 있으면 권한을 고친 뒤 다시 실행한다.
|
|
81
|
+
- 종료 코드 2 면 예기치 못한 오류로 중간에 멈춘 것이다. 출력을 그대로 보고하고, 바뀐 파일의 이전 판은 `<파일>.backup.<시각>` 에 있다고 알린다.
|
|
82
|
+
|
|
83
|
+
## 2. payload-mon 켜기
|
|
84
|
+
|
|
85
|
+
이전 상태와 상관없이 늘 실행한다.
|
|
86
|
+
|
|
30
87
|
```bash
|
|
31
|
-
|
|
32
|
-
mkdir -p ~/dummy && cd ~/dummy
|
|
33
|
-
script=$([ "$OS" = mac ] && echo apply-hud-macos.sh || echo apply-hud-linux.sh)
|
|
34
|
-
for f in "$script" apply-hud.mjs hud-config.json omc-hud-custom.mjs; do
|
|
35
|
-
if command -v wget >/dev/null; then wget -q "$RAW/$f"; else curl -fsSLO "$RAW/$f"; fi
|
|
36
|
-
done
|
|
37
|
-
chmod +x "$script" && "./$script"
|
|
38
|
-
rm -f "$script" apply-hud.mjs hud-config.json omc-hud-custom.mjs # 정리
|
|
39
|
-
cd - >/dev/null
|
|
88
|
+
node "<이 스킬 디렉터리 절대경로>/../payload-mon/scripts/payload-mon.mjs" on
|
|
40
89
|
```
|
|
41
90
|
|
|
42
|
-
|
|
43
|
-
`
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
91
|
+
- Codex 사본에서 실행할 때 경로는 `<이 스킬 디렉터리 절대경로>/../banker-payload-mon/scripts/payload-mon.mjs` 다.
|
|
92
|
+
- 이유: `PL:` 칸은 payload-mon 이 래퍼 옆(`hud/payload-mon/`)에 두는 크기 계산 모듈을 쓴다. 모듈이 없으면 `PL:` 이 나오지 않는다.
|
|
93
|
+
- 이 단계의 출력 "8MB 이상이면 ctx 옆에 payload가 표시됩니다" 는 옛 래퍼 기준이다. 그대로 옮기지 말고 "PL 칸에 쓰는 모듈을 설치함" 으로 보고한다.
|
|
94
|
+
|
|
95
|
+
## 3. 보고
|
|
96
|
+
|
|
97
|
+
- 1단계 출력의 statusLine 줄과 백업 경로
|
|
98
|
+
- 2단계 결과
|
|
99
|
+
- statusLine 이 바뀌었으면 Claude Code 재시작 안내
|
|
100
|
+
|
|
101
|
+
## 인자 off, status
|
|
102
|
+
|
|
103
|
+
옛 래퍼(v3)에 넣었던 Claude 갱신 안내 블록(`claude-update-last`)을 다룬다. v4 래퍼는 갱신 안내를 직접 줄 맨 끝에 두므로 새 설치에는 이 블록이 필요 없다.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
node "<이 스킬 디렉터리 절대경로>/scripts/claude-update-last.mjs" off
|
|
48
107
|
```
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
- HUD는 **다음 프롬프트/세션**부터 반영될 수 있음 → 안 보이면 재시작 안내.
|
|
54
|
-
- `~/dummy` 임시파일 정리 확인. 이미 적용돼 있으면 재적용 불필요.
|
|
55
|
-
- **payload-mon 복구**: 0단계에서 `payload-mon=on` 이었다면, 적용 스크립트가 래퍼를 덮어써 payload 표시 블록이 빠진 상태다.
|
|
56
|
-
payload-mon 스킬(Claude Code `/banker:payload-mon`, Codex `banker-payload-mon`)을 `on` 으로 실행해 다시 켜고, 그 결과를 함께 보고한다.
|
|
57
|
-
`payload-mon=off` 였다면 아무것도 하지 않는다(사용자가 켠 적 없는 기능을 켜지 않는다).
|
|
58
|
-
- **Claude 갱신 안내 위치**: payload-mon 처리 뒤에 이 스킬의 스크립트를 `on` 으로 실행한다. 재적용을 건너뛴 경우에도 실행하고, Windows 도 같은 명령이다.
|
|
59
|
-
```bash
|
|
60
|
-
node "<이 스킬 디렉터리 절대경로>/scripts/claude-update-last.mjs" on
|
|
61
|
-
```
|
|
62
|
-
새 Claude Code 가 나오면 OMC 가 띄우는 `[Claude#2.1.288] -> 2.1.289 claude update` 를 상태표시줄 1번째 줄 맨 끝(OMC 표시 뒤)으로 옮긴다. 2번째 줄의 `[!] claude 2.1.289 - paste: ! claude update` 안내는 그대로 둔다.
|
|
63
|
-
출력을 그대로 보고한다. 종료 코드 1(거부)이면 래퍼는 바뀌지 않았으니 이유만 보고하고, 2(예기치 못한 오류로 중간에 멈춤)면 `status` 결과를 함께 보고한다.
|
|
64
|
-
되돌리기는 `off`, 상태 확인은 `status`.
|
|
108
|
+
|
|
109
|
+
- `off` 는 블록을 뺀다. `status` 는 상태만 본다.
|
|
110
|
+
- 출력을 그대로 보고한다. 종료 코드 1(거부)이면 래퍼는 바뀌지 않았으니 이유만 보고한다.
|
|
111
|
+
- 종료 코드 2(예기치 못한 오류로 중간에 멈춤)면 `status` 결과를 함께 보고한다.
|
|
65
112
|
|
|
66
113
|
## 함정
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
- `
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
114
|
+
|
|
115
|
+
- 다시 설치하면 래퍼와 `hud-config.json` 을 첨부 파일로 덮어쓴다. 손으로 고친 내용은 `.backup.<시각>` 에만 남는다.
|
|
116
|
+
- `settings.json` 의 `omcHud` 값은 `hud-config.json` 의 같은 키를 덮어쓴다. 래퍼가 기대는 아래 키를 바꾸면 칸이 달라지거나 OMC 원문이 그대로 나온다.
|
|
117
|
+
- `omcLabel`, `useBars`
|
|
118
|
+
- `maxWidth`, `maxOutputLines`
|
|
119
|
+
- `showCallCounts`, `callCountsFormat`
|
|
120
|
+
- `contextBar`, `gitBranch`
|
|
121
|
+
- `payload-mon off` 를 실행하면 크기 계산 모듈이 지워져 `PL:` 칸도 사라진다. 다시 보려면 `payload-mon on`.
|
|
122
|
+
- v4 에서 payload-mon 블록은 모듈을 깔기 위해서만 남는다. 갱신마다 크기 추정이 두 번 돌지만 두 번째는 캐시를 쓴다.
|
|
123
|
+
- 래퍼를 손으로 고칠 때 `if (f.ctx) colored.push(colorCtx(f.ctx));` 줄을 지우지 않는다. 실행상 비어 있지만 `payload-mon on` 이 이 줄 바로 뒤에 블록을 넣는다.
|
|
124
|
+
- 래퍼는 statusLine 프로세스가 받은 터미널 폭(stderr, stdout 의 `columns`, 그다음 `COLUMNS`)으로 줄을 접는다. 폭을 받지 못하면 한 줄로 나오고 Claude Code 가 끝을 자른다.
|
|
125
|
+
- Claude Code 는 자기 화면이 터미널이면 그 폭과 높이를 `COLUMNS`, `LINES` 로 넘긴다(2.1.303 에서 확인). 그래서 보통은 접힌다.
|
|
126
|
+
- 분홍은 256색 코드다. 256색을 못 쓰는 터미널에서는 기본 색으로 보인다.
|
|
127
|
+
- statusLine 은 PATH 의 `node` 를 쓴다. GUI 로 띄운 Claude Code(macOS Dock, VS Code 확장)는 PATH 에 `/opt/homebrew/bin` 같은 폴더가 빠질 수 있다(추정). 상태표시줄이 안 나오면 PATH 를 확인한다.
|
|
128
|
+
- 설정 폴더 경로에 `"`, 백틱, `$`, `%`, `\`, 줄바꿈이 있으면 설치 스크립트가 거부한다. statusLine 명령의 큰따옴표 안에서도 셸이 이 글자를 해석해, 명령이 깨지거나 경로 속 명령이 실행되기 때문이다.
|
|
129
|
+
- 기존 statusLine 의 다른 필드(`padding`, `refreshInterval` 등)는 그대로 둔다. 다른 래퍼(smart-compact 등)가 감싼 명령은 이 래퍼의 명령으로 바뀐다. 이전 값은 `settings.json` 백업에 있다.
|
|
130
|
+
- 갱신 안내는 OMC 의 문구 `[Claude#<cur>] -> <new> claude update` 로 찾는다. OMC 가 문구를 바꾸면 줄이지 못하고 원문이 경로 앞 칸에 남는다. 상태표시줄은 깨지지 않는다.
|
|
131
|
+
- `[!] omc <ver> - paste: ` 와 `[!] claude <new> - paste: ` 로 시작하는 갱신 안내 줄은 뺀다. OMC 가 이 문구를 바꾸면 다시 보인다.
|
|
132
|
+
- 설치는 네트워크를 쓰지 않는다. 다만 OMC 가 렌더할 때 네트워크로 얻는 정보(새 Claude Code 판 같은)는 오프라인에서 빠질 수 있다.
|
|
133
|
+
- 래퍼, HUD 설정, 모듈 사본은 플러그인 밖(`<설정 폴더>/hud/`, `<설정 폴더>/.omc/`)에 있다. 플러그인을 지워도 상태표시줄은 남는다.
|
|
134
|
+
- OMC 를 지울 때는 statusLine 도 지운다. OMC 로더는 플러그인을 못 찾으면 작업 폴더의 `node_modules` 에서 OMC HUD 를 찾아 불러오기 때문이다.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 smallOpenSource
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|