Agent Desktop · Windows

누가 멈췄는지, BOM이 압니다.

권한 확인을 끈 코딩 에이전트를 여럿 돌려도, 창을 열지 않고 누가 기다리는지 압니다.

PLATFORM
Windows 10 1809 이상 · Windows 11 검증
AGENTS
Claude Code · Codex · 셸(pwsh, cmd)
ISOLATION
Docker 호환 엔진의 컨테이너, 선택 사항
DATA
서버 없음 · 계정 가입 없음 · 텔레메트리 없음
Claude OpenAIChatGPT · Codex Windows Chrome Docker GitHub .NET 10 macOS Linux

병렬의 비용

권한 확인을 끈 에이전트는 혼자 달리다 조용히 멈춰 기다립니다.

탭 여덟 개를 오가며 확인하는 일을 BOM이 대신합니다. 기다리는 세션은 Dock 배지·탭·메뉴바·Windows 알림이 함께 알립니다.

약속 — 시작Ctrl+T 한 번이면 뜹니다.

이름과 폴더를 정하고 「시작」. 권한 확인 없이 바로 일합니다.

약속 — 상태열지 않아도 압니다.

Dock 배지, 탭 점, 메뉴바 「확인 필요」가 같은 사실을 말합니다.

약속 — 세션탭을 닫아도 세션은 돕니다.

다시 열면 스크롤백째 붙습니다. 새로고침해도 같습니다.

약속 — 창탭을 옮겨도 세션은 무사합니다.

Chrome 탭처럼 옮기고 떼어냅니다. 옮겨지는 것은 참조입니다.

01 — 상태 판정

열어보지 않아도
압니다.

상태는 넷입니다. 유휴, 작업 중, 입력 대기, 종료됨. 판정은 두 단계입니다.

프로세스 트리가 먼저

자식이 없으면 유휴, 손자가 있으면 작업 중. 버전과 무관한 사실이라 먼저 봅니다.

그다음 정규식

화면이 조용해진 뒤 꼬리 여덟 줄에만 패턴을 맞춰 「입력 대기」를 잡습니다. 제어 시퀀스는 먼저 벗겨냅니다.

모르면 모른다고 말합니다

격리 세션의 사실 채널이 끊기면 유휴로 추측하지 않고 「상태 알 수 없음」을 올립니다.

유휴 작업 중 입력 대기 종료됨

02 — 세션 수명

닫기는
종료가 아닙니다.

세션은 탭이나 창이 아니라 데몬이 소유합니다. 탭과 창은 가리킬 뿐입니다.

탭을 닫아도, 창을 닫아도

세션은 계속 돌고, 다시 열면 스크롤백째 붙습니다. 새로고침해도 Dock 칩으로 돌아옵니다.

종료는 확인을 지납니다

「세션 종료…」 확인을 지나야 끝납니다. 확인되지 않은 종료는 활성으로 세고 지우지 않습니다.

세션 허브

Ctrl+Shift+P 로 이름·폴더·에이전트로 찾고, 확인 필요·작업 중·유휴로 묶어 봅니다.

03 — 실행 환경

내 PC가 기본,
격리는 선택.

「격리 환경」을 고르면 세션이 컨테이너 안에서 뜹니다. 이 컴퓨터의 파일은 보이지 않습니다.

마운트 없음, 공개 포트 없음

컨테이너 bom의 유일한 마운트는 명명 볼륨 bom-home입니다. 작업 폴더도 그 안에서 고릅니다.

풀 개발 환경

Debian 12 에 node 22, npm, git, apt, sudo, Playwright Chromium 라이브러리. npm installapt-get이 됩니다.

준비 안 되면 멈춥니다

엔진이나 이미지가 없으면 이유를 말하고 멈춥니다. 「내 PC」로 조용히 바꾸지 않습니다.

세션 단위 격리는 아닙니다

모든 격리 세션이 같은 컨테이너·볼륨·사용자를 공유합니다. 같은 폴더면 서로 덮어씁니다.

04 — 계정과 사용량

계정은 여러 개,
남은 양은 메뉴바에.

Claude 와 ChatGPT 계정을 여러 개 등록하고, 세션마다 고릅니다.

다음 세션부터 적용

이미 도는 세션은 그대로입니다. 격리 환경의 계정은 컨테이너 안에 따로 저장됩니다.

잔여를 퍼센트로

공급자의 사용률을 잔여로 뒤집어 보여줍니다. 15% 아래면 경고색, 모르면 색을 쓰지 않습니다.

오케스트레이션은 선택

설정 카드에서 bom-orch 플러그인을 설치하면 Claude 와 Codex 가 서로를 교차검증합니다. BOM은 번들하지 않습니다.

05 — Windows 알림과 트레이

자리를 비워도
놓치지 않게.

앱이 뒤에 있을 때만 Windows 알림을 띄웁니다. 앞에 있으면 앱 안의 토스트입니다.

본문은 사건 한 문장

「api 2 · 입력이 필요합니다」. 터미널 출력·명령어·경로·계정은 싣지 않습니다. 몰리면 개수만 말합니다.

20분 일시중지

알림을 잠시 멈춥니다. 멈춘 동안의 사건은 나중에 재생하지 않습니다.

트레이가 돌아갈 길

창을 닫아도 데몬은 돕니다. 트레이에서 다시 열거나 종료합니다.

우회하지 않습니다

Windows 알림 차단을 우회하지 않습니다. 알림에는 Windows App Runtime 2.4 가 필요합니다.

06 — 프로세스 회수

에이전트가 데몬보다
오래 살지 않습니다.

권한 확인을 끈 에이전트라서, 회수는 기능이 아니라 전제입니다.

Job Object 에 묶입니다

세션 프로세스는 데몬의 Job Object 에 묶여 함께 닫힙니다. 핸들은 상속되지 않습니다.

정확한 신원으로만

정리는 PID 와 시작 시각의 쌍에만 묶습니다. PID 재사용으로 남의 프로세스를 죽이지 않습니다.

격리에서는 보장이 약합니다

정상 종료는 컨테이너 안까지 회수합니다. 데몬이 크래시하면 다음 데몬이 컨테이너를 재시작할 때까지 안의 에이전트가 살 수 있습니다.

07 — 구조

Electron 없는
Electron.

.NET 10 프로세스 하나가 설치된 Chrome 또는 Edge 를 앱 창으로 엽니다. 그 창이 데스크톱입니다.

두 평면은 섞이지 않습니다

창·탭·상태는 SignalR 로, 터미널 바이트는 WebSocket 으로 갑니다. 터미널 출력은 Blazor 를 거치지 않습니다.

루프백만 듣습니다

127.0.0.1 의 사용자별 포트에만 붙습니다. 첫 요청의 토큰이 HttpOnly 쿠키가 되고, 다른 Origin 은 거절합니다.

Chrome 이 그립니다

xterm.js 와 WebGL. 렌더러가 진짜 브라우저라 번들할 것이 없습니다.

08 — 고지

BOM이 하지 않는 것.

권한 확인을 끈 에이전트를 띄우는 도구는 한계를 먼저 말해야 합니다.

01
권한 확인을 대신하지 않습니다.

claude --dangerously-skip-permissionscodex --yolo로 띄웁니다. 결과는 사용자 몫입니다.

02
세션 단위로 격리하지 않습니다.

같은 폴더의 두 세션은 「내 PC」에서도 「격리 환경」에서도 덮어씁니다. 격리가 막는 것은 이 컴퓨터의 파일 접근입니다.

03
데몬 재시작을 넘지 않습니다.

데몬이 내려가면 세션도 끝납니다. 탭과 창을 넘어 살 뿐, 프로세스를 넘지는 않습니다.

04
회사 서버로 보내지 않습니다.

서버도, 계정 가입도, 텔레메트리도 없습니다. 사용량 조회는 공급자에게 직접 가고, 개인정보 처리방침이 밝힙니다.

05
알림 차단을 우회하지 않습니다.

Windows 의 방해 금지 모드가 켜져 있으면 알림도 조용합니다. 앱 안의 배지와 세션 허브는 남습니다.

09 — 받기

지금 받기.

Microsoft Store 에서 설치하고 CLI 에 로그인한 뒤 Ctrl+T 를 누릅니다.

버전 3.0.0게시자 BOMTOBEx64
필수Windows 10 1809 이상

검증은 Windows 11 에서 했습니다. 64비트 전용입니다.

필수Chrome 또는 Edge

설치된 브라우저를 제품 창으로 씁니다. 따로 받는 것은 없습니다.

권장Claude Code · Codex

쓰는 CLI 를 설치하고 로그인해 두세요. 맨 셸은 없어도 됩니다.

선택Docker 엔진 · Windows App Runtime 2.4

격리 환경에는 엔진, Windows 알림에는 런타임 2.4. 없으면 그 기능만 꺼집니다.

페이지를 그리는 중 문제가 생겼습니다. 새로고침 ×