<div align="center">
<img src="https://raw.githubusercontent.com/izll/agent-session-manager-desktop/HEAD/build/logo-readme.png" alt="ASMGR Desktop" width="180">
Agent Session Manager — Desktop
하나의 창에서 전체 AI 코딩 에이전트 팀을 실행하세요.
Claude, Codex, Gemini, Aider 등—각각 자체 라이브 터미널에서, 모두 나란히, 그리고 지속적으로 유지됩니다.
Release
Go
Wails
License
<img src="https://raw.githubusercontent.com/izll/agent-session-manager-desktop/HEAD/docs/screenshot-session.png" alt="A running Claude session in Agent Session Manager Desktop" width="900">
</div>
아마 세 개의 터미널 창을 열어두고 각기 다른 에이전트가 작업하는 것을 보며, 어떤 것이 당신을 기다리느라 막혀 있는지 확인하기 위해 alt-tab을 반복했을 것입니다. Agent Session Manager Desktop은 이 모든 것을 한곳에 모아줍니다. 각 에이전트는 자체 탭을 할당받고 백그라운드에서 계속 실행되며, 심지어 휴대폰에서도 주의가 필요할 때 알려줍니다.
이것은 ASMGR TUI의 그래픽 버전으로, Wails (Go) + Svelte + xterm.js로 구축되었습니다.
모든 세션이 자체 멀티플렉서(multiplexer) 세션—Linux 및 macOS에서는 tmux, Windows에서는 psmux—에 존재하기 때문에, 에이전트는 창을 닫거나 앱을 재시작하거나 심지어 기기 이동에도 살아남습니다. 다시 연결하여 이전에 작업하던 지점부터 정확히 이어갈 수 있습니다.
터미널을 선호하시나요? 원래의 TUI 버전은 izll/agent-session-manager에 있습니다.
왜 이것이 필요한가
- 더 이상 대기 중인 에이전트를 놓치지 마세요. 에이전트가 무언가를 물어보기 위해 멈출 때, 헤더에 ⏳ 카운터가 표시되어 클릭 한 번으로 해당 위치로 바로 이동할 수 있습니다. 또는 탭을 전환하지 않고 드롭다운에서 yes / no / Enter / Esc를 바로 답변할 수 있습니다. 데스크톱 알림과 ntfy 모바일 푸시를 활성화하여 어디서든 알림을 받을 수 있습니다.
- 모든 것이 계속 실행됩니다. 창을 닫거나, 앱을 재부팅하거나, 내일 다시 돌아와도 세션은 여전히 그 자리에 있고 작동합니다. 왜냐하면 세션이 앱 내부가 아닌 멀티플렉서(multiplexer)에 존재하기 때문입니다. 클릭 한 번으로 다시 연결하세요.
- 전체 그림을 확인하세요. 프로젝트 대시보드는 사이드바처럼 그룹화된 모든 세션을 한눈에 보여줍니다. 실시간 활동 내역, 리포지토리별 Git 상태(브랜치, 변경 사항 여부(dirty state), 앞섬/뒤짐(ahead/behind), 마지막 커밋), 그리고 Claude 및 Codex/GPT 사용량—남은 속도 제한 창(rate-limit window)이 얼마나 되는지까지 확인할 수 있습니다.
- 원하는 에이전트에 즉시 접근하세요. 모든 세션을 검색하고, 프로젝트로 그룹화하며, 즐겨찾기에 별표를 표시할 수 있습니다. 자주 돌아가는 탭의 번호가 매겨진 이동 목록을 만들고(
Ctrl+J), Ctrl+Shift+L로 터미널 스크롤백 내부까지 검색할 수 있습니다. 어느 세션에서 대화했는지 잊었나요? Ctrl+Shift+F를 사용하면 모든 에이전트의 기록을 한 번에 검색합니다.
- 떠나지 않고 작성된 내용을 읽으세요. 구문 강조(syntax highlighting) 기능을 사용하여 프로젝트 파일을 탐색하고 편집하며, 이름이나 내용으로 검색할 수 있습니다. 또한 세션의 변경 파일(diff file)을 파일별로 검토하고, 동의하지 않는 부분이 있다면 단일 덩어리(hunk)를 되돌릴 수도 있습니다.
기능 (Features)
에이전트 및 세션 (Agents & sessions)
- 다양한 에이전트 선택: Claude, Gemini, Aider, Codex, Amazon Q, OpenCode, 사용자 지정 명령어 또는 일반 셸 등 원하는 것을 선택할 수 있습니다.
- 멀티 탭 세션: 하나의 세션 내에서 여러 에이전트나 터미널을 사용할 수 있으며, 각 탭은 자체적인 멀티플렉서(multiplexer) 창을 가지며, 원한다면 탭별 작업 디렉터리도 설정할 수 있습니다.
- 재개 및 포크(fork): 이전 대화를 이어서 진행하거나, Claude 스레드를 새로운 탭 또는 완전히 새로운 세션으로 분기(fork)하여 다른 경로를 탐색할 수 있습니다.
- 백그라운드 에이전트: 전용 패널에서 Claude의
--bg / Ctrl+B 백그라운드 에이전트를 나열합니다. 이를 탭이나 새 세션에 연결(attach)하거나, 로그를 추적(tail)하거나, 중지할 수 있습니다. 실수로 세션을 백그라운드로 보냈더라도 다음 재개 시 깨끗하게 다시 연결됩니다.
- 세션 템플릿: 반복적으로 재구성하는 배열(에이전트, 그 인자들, 그리고 옆의 탭들)을 저장하고 한 단계로 다시 생성할 수 있습니다. 템플릿을 특정 디렉터리에 고정(pin)하거나 재사용 가능하게 남겨두고 사용할 때 해당 디렉터리를 선택할 수도 있습니다.
- 저장된 명령어:
Ctrl+P에서 검색 가능한 라이브러리 형태로, 그룹별로 정리되어 있습니다. 명령어는 매개변수(parameters)를 가질 수 있으며—예: {{name}}, 또는 {{name:default}}—명령어가 실행되기 전에 해당 매개변수를 입력하라는 메시지가 표시됩니다.
- 명령어 팔레트(Command palette):
Ctrl+K를 사용하여 타이핑만으로 모든 것을 찾을 수 있습니다. 세션, 프로젝트, 탭 또는 차이점 보기 열기(opening the diff), 탭 재시작, 또는 다음 대기 에이전트로 이동하는 등의 작업을 수행할 수 있습니다.
- 빠른 이동 목록(Quick jump list):
Ctrl+J를 누르면 자주 돌아가는 장소들을 사용자가 직접 번호를 매긴 짧은 목록이 열립니다. 1부터 9까지의 숫자로 바로 이동할 수 있습니다. Alt+J로 현재 탭을 추가하고, 항목 이름을 변경하며, 전체 세션이나 특정 탭 하나를 지정할 수도 있습니다.
- 키보드로 새 탭 만들기: 전체 대화 상자는
Ctrl+T를 사용하고, 단순히 터미널만 원할 때는 Ctrl+Shift+T를 사용합니다. 이 경우 이름만 입력하라고 요청하며, 이름이 채워지고 선택됩니다.
제어권을 유지하다
- 어텐션 인박스(Attention inbox) — 입력이 필요한 모든 탭의 타이머 드롭다운 메뉴로, 탭 전환 없이 원클릭 답장이 가능합니다.
- 데스크톱 및 모바일 알림(Desktop + mobile notifications) — 에이전트가 대기 상태에 진입하는 즉시 플랫폼의 시스템 알림 및/또는 휴대폰의 ntfy 토픽을 통해 알려줍니다. 완전히 옵트인 방식입니다.
- 모든 곳에서의 실시간 상태(Live status everywhere) — 사이드바와 탭 헤더에 바쁜/대기 중/유휴 상태 점 및 상태 표시줄이 나타나며, 이는 패널에서 직접 읽어옵니다. 소음이 싫다면 개별 탭마다 채팅이 많은 탭의 상태 표시줄을 숨길 수 있습니다.
- YOLO 표시기(YOLO indicator) — 에이전트가 무인 상태로 실행되는 경우(Claude의 권한 우회(bypass permissions) / 자동 모드(auto mode))를 보여주며, Shift+Tab 토글을 추적하여 실시간으로 읽어옵니다.
- 더욱 정교한 활동 감지(Fresher activity detection) — 에이전트가 작업 중인지 대기 중인지를 결정하는 패턴은 앱의 릴리즈를 기다리지 않고 자체적으로 업데이트될 수 있습니다.
작업 내용 확인(Seeing your work)
- 프로젝트 대시보드(Project dashboard) — 한눈에 보는 개요: 그룹화된 세션 카드, 리포지토리별 Git 상태, 그리고 Claude / Codex 사용 창이 있습니다.
- 활동 통계(Activity statistics) — 지난 7일, 30일 또는 90일 동안 로컬에서 관찰된 에이전트 활동: 일별 타임라인, 에이전트별 분석, 그리고 가장 많은 작업을 수행한 세션이 무엇인지 보여줍니다.
- 차이점(Diff) 및 메모(Notes) — 세션의 Git 변경 사항을 파일별로, 디렉토리 트리로 그룹화하여 검토하고 단일 파일 또는 단일 덩어리(hunk)를 되돌릴 수 있습니다. 인라인 또는 나란히 읽을 수 있으며, 드래그 가능한 분할 기능을 제공합니다.
Ctrl+F7/Ctrl+Shift+F7을 사용하여 변경 사항을 단계별로 탐색하고, 편집기 내의 아무 위치에서든 해당 지점으로 이동할 수 있습니다. 대규모 차이점(diffs)은 UI가 멈추지 않도록 보호됩니다. 개별 탭 메모를 유지하며, 검색(Ctrl+F) 및 전체 되돌리기 기능을 갖추고 있으며, 제목이 지정된 페이지로 분할됩니다 (Ctrl+PgUp/Ctrl+PgDn으로 여러 개의 노트 페이지 간 전환 가능, 다른 탭에서도 사용).
- 커밋 기록(Commit history) —
Ctrl+Shift+Y를 사용하여 리포지토리의 커밋과 브랜치를 탐색합니다: 각 커밋이 건드린 파일, 해당 차이점(diff), 그리고 메시지를 검색할 수 있습니다. 변경 사항을 개별적으로 또는 전체 파일에서 읽을 수 있으며, F7을 사용하여 하나씩 다음으로 이동할 수 있습니다.
창이 모서리에서 크기가 조정되며, 공간이 더 필요할 때 패널들이 접힙니다.
- 분할 보기 (Split view) — 현재 보고 있는 탭 옆에 다른 탭을 고정하고 두 에이전트가 동시에 작업하는 것을 지켜보거나, 세션을 자기 자신과 비교할 수 있습니다. 위치를 잃지 않고 두 측면을 교체하거나 고정된 쪽의 연결 대상을 재설정할 수 있습니다.
- 전역 히스토리 검색 (Global history search) —
Ctrl+Shift+F를 사용하여 모든 세션의 대화 기록(Claude, Aider, OpenCode 및 일반 터미널 스크롤백)을 검색하며, 찾은 교환 내용의 미리보기와 함께 순위가 매겨집니다.
- 파일 브라우저 및 에디터 (File browser & editor) — 앱을 벗어나지 않고도 에이전트가 작업하는 파일을 읽고 편집할 수 있습니다. 열두 가지 언어에 대한 구문 강조(읽기 및 편집 모두 가능, CodeMirror 6 사용하며 문법은 필요할 때 로드됨),
Ctrl+Shift+O를 이용한 이름 또는 내용 검색, 그리고 색상 코드가 지정된 파일 형식을 제공합니다. 저장 시 파일의 줄 바꿈 문자(line endings), BOM, 후행 개행 문자(trailing newline)가 정확하게 보존되므로, 건드리지 않은 파일을 열고 저장해도 바이트 단위로 동일합니다.
- 현재 브랜치 (Current branch) — 작업 디렉터리의 Git 브랜치가 세션 이름 옆이나 상태 표시줄에 표시되며, 사용자가
cd 명령으로 이동할 때 패널을 따라가고 저장소(repo)의 다른 브랜치 목록은 읽기 전용으로 제공됩니다.
- 마감 기한이 있는 작업 (Tasks with deadlines) — 작업 디렉터리별 실제 할 일 목록을 제공합니다: 우선순위, 마감일(지연됨으로 표시), 하위 작업(subtasks), 종속성("무엇이 이것을 기다리고 있는지"), 그리고 전체에 대한 필터링 기능. 에이전트에게 작업을 보내 처리하도록 하거나, 세션에 연결하여 해당 세션을 삭제할 때 미완료된 작업에 대해 먼저 경고를 받도록 할 수 있습니다. 아직 열려 있는 항목의 개수가 탭에 표시됩니다.
- 모든 프로젝트의 작업 한 곳에 (Every project's tasks in one place) — 모든 프로젝트의 모든 작업을 하나의 표로 모아 마감일 순으로 정렬하고, 지연되었거나 미완료된 항목만 필터링할 수 있습니다.
- 태스크 마스터 (Task Master) (선택 사항) — 작업 목록은 자체적으로 작동합니다. 이것을 켜면
task-master-ai MCP 패키지를 통해 AI 기반 액션(PRD 파싱, 작업을 하위 작업으로 확장, 복잡성 점수화 등)이 추가됩니다.
편의성과 완성도
-
음성 받아쓰기 (Voice dictation) — 타이핑 대신 에이전트에게 말로 지시합니다 (무료 또는 API 기반 음성 인식 모드 지원).
-
나만의 설정 (Make it yours) — 8가지 인터페이스 악센트 또는 원하는 모든 색상 지정 가능; 에이전트별 및 탭별 터미널 팔레트를 포함하여 사용자가 정의한 팔레트도 지원합니다. 전역적으로, 탭별로, 또는 Ctrl + 스크롤을 통해 조정 가능한 터미널 글꼴 크기 설정; 세션이나 그룹에 색상을 지정하고, 필요하지 않은 탭의 보기(view)나 상태 표시줄(status bar)을 숨길 수 있습니다. 일반 터미널 탭이 어떤 기능을 수행할지 선택 가능하며, 텍스트를 선택했을 때 즉시 복사할지 아니면 Shift 키를 누른 경우에만 복사할지 설정할 수 있습니다.
-
사용자 정의 색상 구성표 가져오기 (Bring your own colour scheme) — Konsole, kitty, Alacritty, WezTerm 또는 Ghostty에 이미 설치된 테마를 가져오거나, iTerm2-Color-Schemes 컬렉션에서 수백 가지를 탐색하거나, 어디서든 스킴 파일(scheme file)을 열 수 있습니다. 각 구성표는 적용하기 전에 미리보기가 가능합니다.
-
재설정 가능한 단축키 (Rebindable shortcuts) — 모든 키보드 단축키는 설정(Settings)에서 편집할 수 있으며, 도움말 대화 상자(help dialog)도 동일한 목록을 기반으로 생성되므로 키가 실제로 어떤 기능을 하는지 항상 보여줍니다. 사용하지 않는 단축키는 끌 수 있습니다. 일부 키는 위치에 따라 의미가 결정되기 때문에 고정되어 유지됩니다 — Esc, Enter, /, 확대/축소(zoom)를 위한 Ctrl + 스크롤, 그리고 즐겨찾기 슬롯을 위한 Ctrl+Shift+1…7. 이 README 전반에서 언급된 키들이 기본값입니다.
-
선택 가능한 터미널 렌더러 (Selectable terminal renderer) — 캔버스(canvas) (기본값), WebGL 또는 DOM을 설정(Settings)에서 실시간으로 전환할 수 있습니다.
-
복구 센터 (Recovery centre) — 삭제된 세션과 탭은 복원할 수 있는 휴지통으로 이동하며, 사용자가 지정한 기간 동안 보관됩니다. 또한, 설정 및 세션 목록은 변경될 때마다 자동으로 스냅샷(snapshot)이 찍힙니다 — 지난 한 시간의 모든 기록부터 시작하여 이후에는 매시간, 매일, 그리고 몇 달 전까지 주간 단위로 간격을 좁혀갑니다. 따라서 내일 발견한 실수도 여전히 되돌릴 수 있습니다. 작업 파일은 별도로 백업되며, 언제든지 수동으로 스냅샷을 찍을 수 있습니다.
-
이전 위치 기억 (Picks up where you left off) — 세션으로 돌아올 때 작업하던 탭과 파일 내의 위치가 복원됩니다.
-
20개 언어 — 전체 사용자 인터페이스(UI)가 번역되었습니다.
-
자체적으로 안전함(Safe alongside itself) — 두 번째 창을 열어도 첫 번째 창의 터미널에 간섭하지 않습니다. 대신 경고 메시지를 표시하고 해당 프로젝트에 대해서는 읽기 전용 상태를 유지합니다.
-
자가 업데이트(Self-updating) — 백그라운드에서 새 버전을 확인하며, .deb / .rpm 설치 및 macOS .app 번들을 포함한 모든 플랫폼에서 제자리에 업데이트됩니다. Windows 설치 프로그램은 사용자별(per-user)이므로 관리자 권한이 필요하지 않습니다.
-
휴대성(Take it with you) — 세션을 파일로 내보내기(export)하여 다른 장치에서 가져오기(import)할 수 있습니다.
-
사전 설치 불필요(Nothing to install first) — tmux (또는 Windows의 경우 psmux)가 누락된 경우, 앱이 직접 설치를 제안합니다.
-
작동 상태 확인(See what it's doing) — 무언가를 설명해야 할 때 유용한 애플리케이션 로그는 설정(Settings)에서 읽기 가능하며, 필터링 및 복사도 가능합니다.
<img src="https://raw.githubusercontent.com/izll/agent-session-manager-desktop/HEAD/docs/screenshot-dashboard.png" alt="Git 상태와 에이전트 사용량이 그룹화된 프로젝트 대시보드" width="900">
<img src="https://raw.githubusercontent.com/izll/agent-session-manager-desktop/HEAD/docs/screenshot-diff.png" alt="파일 트리 옆에 해당 파일의 변경 사항이 나란히 표시됨" width="900">
서버에서의 세션 관리