ddiring 터미널 매핑·Windows 알림 리서치 — 요약 (2026-08-23)

8개 에이전트 팬아웃(4축+확장 4), 소스 102건, 주장 74건 중 검증 42 / 미확정 32 / 반박 0 (validate_ledger 통과, signature 588417d1).

확정 결론

  1. 기존 매핑 대부분 유효, 수정 1건 확정: Cursor 매핑은 와일드카드가 위험 — com.todesktop.*는 다른 ToDesktop 배포 앱(예: ClickUp)까지 오탐하므로 고정 ID com.todesktop.230313mzl4w4u92 정확 매칭으로 바꿔야 한다. Windsurf는 Devin Desktop으로 리브랜드됐지만 번들 ID com.exafunction.windsurf는 그대로다.
  2. CC 병렬 세션 관리 앱 신규 매핑(검증): cmux com.cmuxterm.app, Conductor com.conductor.app, Orca com.stablyai.orca(로컬 실측), Sculptor com.electron.sculptor, Paseo sh.paseo.desktop(로컬 실측). tmux/Zellij 류 CLI 멀티플렉서는 앱 번들이 없어 호스트 터미널로 잡힌다(실측 — 올바른 동작).
  3. Windows 토스트: 의존성 0의 PS 5.1 WinRT 원샷(클릭 무반응)과 BurntToast v1.0(클릭 포커스 가능, 모듈 설치)이 두 축. WSL은 powershell.exe interop 경유.
  4. Windows 부모 앱 식별: 만능 변수가 없어 2단 — env 판별(안쪽 변수 우선: TERM_PROGRAM=vscode를 WT_SESSION보다 먼저 검사, 상속 오탐 함정) → PowerShell 부모 프로세스 추적 폴백.

미확정 요약 (재확인 후 채택)


ddiring 터미널 매핑 + Windows 알림 구현 리서치 (2026-08-23)

본문은 검증(verified) 주장만 단정형으로 기술한다. 단일 출처 등으로 교차검증 미달인 항목은 맨 아래 미확정(Unresolved) annex에 모아뒀다 — 채택 전 재확인 필요.

1. 기존 매핑 검증 결과 — 확정분

앱 번들 ID 근거 비고
Terminal com.apple.Terminal 로컬 실측
Cursor com.todesktop.230313mzl4w4u92 로컬 실측+cask ⚠️ com.todesktop.* 와일드카드는 ClickUp 등 타 ToDesktop 배포 앱까지 오탐 위험 → 고정 ID 정확 매칭으로 변경
Windsurf→Devin com.exafunction.windsurf cask 개명 이력 교차 2026-06-02 Devin Desktop으로 리브랜드(cask windsurf→devin-desktop)됐지만 번들 ID는 그대로 — 기존 매핑 유효, 표시명 "Devin" 병기 고려
Warp dev.warp.Warp-Stable 로컬 실측 채널 접미사 → dev.warp.Warp* prefix 유지 적절
Alacritty org.alacritty brew API 실측
kitty net.kovidgoyal.kitty brew API 실측
WezTerm com.github.wez.wezterm brew API 실측
Tabby org.tabby 공식 저장소 appId 정의+cask 교차 미특정이었던 ID 확정
Hyper co.zeit.hyper brew API 실측 Vercel 개명 후에도 zeit 네임스페이스 유지
Zed dev.zed.Zed 로컬 실측+cask Preview/Dev 채널 → dev.zed.Zed* prefix 유지
Paseo sh.paseo.desktop 로컬 실측+cask

나머지 기존 매핑 6종(통념 부합 단일출처들과 상충 1건)은 미확정 annex 참조.

2. CC 병렬 세션 관리 앱 — 확정 매핑

앱 번들 ID 근거 형태
cmux (manaflow-ai) com.cmuxterm.app (+.nightly/.debug) repo 설정 1차+cask Swift+libghostty 네이티브
Conductor (Melty Labs) com.conductor.app cask zap+공식 macOS 전용 클로즈드소스
Orca (Stably AI) com.stablyai.orca 로컬 실측 Electron. ⚠️ brew 'orca'는 plotly 도구(동명이인)
Sculptor (Imbue) com.electron.sculptor cask zap+공식 Electron 기본 appId 그대로 출하
Waku (egoist) sh.waku (dev sh.waku.dev) Info.plist 1차 Rust+GPUI 네이티브
GraphCode dev.graphcode.app Tuist Project.swift 1차 Swift 네이티브
Fletch (fwdai) com.fletch.desktop tauri.conf.json 1차 Tauri
constellagent com.constellagent.app electron-builder.yml 1차 Electron

번들 ID 없음(호스트 터미널로 잡힘): Vibe Kanban(npx 로컬 웹앱, 데스크톱 배포 없음). Zellij/tmux는 앱 번들이 없는 CLI로 실측 확인 — 멀티플렉서 세션은 frontmost가 호스트 터미널(예: ghostty)로 잡히므로 ddiring 훅에는 자동으로 호스트 터미널이 표시된다(올바른 동작).

추가 터미널/IDE 확정 ID: Rio=com.raphaelamorim.rio, Termius=com.termius-dmg.mac(비정형 주의), VSCodium=com.vscodium, Wave=dev.commandline.waveterm, Positron=com.rstudio.positron, Kiro(AWS)=dev.kiro.desktop, Trae=com.trae.app.

3. Windows 구현 가이드 — 확정분

토스트 발화

부모 터미널 식별

4. ddiring 반영 권고

  1. 매핑 수정: Cursor를 고정 ID로 정확 매칭(확정). 구글 IDE는 신·구 버전 ID 갈림 → prefix 확대(annex 상충 항목 — 신버전 실측 후).
  2. 매핑 추가: cmux·Conductor·Orca·Sculptor(확정분 우선), Rio·Kiro·Trae·Wave·VSCodium 검토. 그 외 미확정 매니저들은 annex 재확인 후.
  3. Windows 지원: notify.sh 단일 파일 uname 분기 — mac=terminal-notifier / win=powershell.exe WinRT 원샷 기본 + BurntToast 옵트인(클릭 포커스). 부모 식별은 §3 env 2단 판별표 이식. 셸 스크립트 줄끝을 LF로 고정하는 설정 필수(annex 함정 항목 참조).
  4. 표시명 갱신: Windsurf→"Devin" 병기.

미확정 (Unresolved) — 재확인 후 채택 (32건 중 채택 관련 핵심)

아래는 단일 출처(대부분 공식 문서·저장소 설정이라 신뢰도는 높으나 교차검증 미달) 또는 상충으로 abstention 처리된 항목. 전체는 unresolved_claims.json.

항목 내용 재확인 방법
iTerm2 com.googlecode.iterm2 (cask 단일출처, 통념 부합) 설치 후 Info.plist
VS Code com.microsoft.VSCode / Insiders com.microsoft.VSCodeInsiders 〃
Ghostty com.mitchellh.ghostty (cask 단일출처) 〃
JetBrains com.jetbrains.* — WebStorm 대소문자 혼재, case-insensitive prefix 권장. Android Studio는 별도 네임스페이스 Toolbox 설치본 실측
Antigravity 상충 신 cask(v2.9.1)=com.google.antigravity, 로컬 구버전=com.google.antigravity-ide → com.google.antigravity* prefix 필요 신버전 업데이트 후 실측
Crystal com.stravu.crystal (package.json 단일출처) 설치 실측
Superset com.superset.desktop(+.canary), ELv2, 13k stars 설치 실측
clave / diri / jean / Tempest / parallel-code / Xum com.clave.app / 스크립트 조립 / com.jean.desktop / com.user.tempest(스캐폴드 기본값 — 변경 위험) / com.parallel-code.app / com.mux.app 각 설치 실측
Claude Squad / Omnara / Terragon CLI·웹 전용, 번들 ID 없음. Terragon은 2026-01-16 서비스 종료→terragon-oss 저장소 재확인
인기도 순위 Homebrew 30일 설치수: Ghostty 32k > iTerm2 22k > Zed 9.1k > Warp 8.9k > Cursor 8.1k > kitty > WezTerm > VSCodium > Antigravity > Alacritty brew analytics API
훅 실행 셸 Windows 훅 셸 기본 bash(Git Bash)·미설치 시 powershell 폴백, 핸들러별 shell 필드 강제 가능(args와 배타) — 공식문서 단일출처 Windows 실기 테스트
네이티브 토스트 부재 preferredNotifChannel에 windows_toast 없음, 요청 이슈 #67220 'not planned' 마감 이슈/문서 재확인
PS7 WinRT pwsh에서 WinRT 프로젝션 제거로 원샷 실패 가능, 미등록 AppId는 Win11에서 미표시 사례 Windows 실기
AUMID 차용 Claude Desktop AUMID Claude_pzs8sxrjxfjjc!Claude로 공식 아이콘 표시 가능(PoC) Windows 실기
CRLF 함정 core.autocrlf=true 시 .sh 훅 CRLF 체크아웃으로 Git Bash 실행 실패 → .gitattributes LF 고정 Windows 실기
SESSIONNAME 터미널 식별에 사용 불가(모든 로컬 터미널 'Console') Windows 실기
Cursor 판별 한계 Windows에서 TERM_PROGRAM=vscode 동일 → exe 이름 부모 추적으로 구분, CURSOR_TRACE_ID류 고유 변수는 미검증 Windows 실기
soulee-dev 기성품 claude-code-notify-powershell — 의존성 0 ps1, 이벤트별 토스트 저장소 검토

Refuted

없음.