Claude Code 세션을 10개 이상 동시에 운영해서 수정할 부분을 지정하는 Mac 앱을 만들었습니다
요약
개발자가 여러 개의 AI 코드 세션을 동시에 운영하며 발생하는 '수정할 위치 지정'의 비효율성을 해결한 Mac 앱 Aki를 소개합니다. 이 앱은 화면의 특정 요소(CSS selector, 파일 등)를 포착하여 적절한 에이전트 터미널에 정확하게 전달하는 기능을 제공합니다.
핵심 포인트
- 여러 Claude Code 세션 관리의 어려움을 해결했습니다.
- 화면상의 요소를 캡처하여 AI 세션에 직접 지정할 수 있습니다.
- 브라우저뿐 아니라 터미널, Finder 등 모든 앱에서 작동합니다.
안녕하세요! 이것은 저의 첫 공개 프로젝트이니 너그러이 봐주세요(하지만 솔직하게요). 🙂
문제점
제 스타트업에서는 피처별로 각각 독립된 git worktree에서 10개 이상의 Claude Code 세션을 동시에 운영합니다. 수정 자체는 빨랐습니다. 하지만 어디를 고쳐야 하는지 설명하는 과정이 어려웠습니다:
스크린샷 → 붙여넣기 → "오른쪽에 있는 버튼요, 아니, 다른 거요" → 탭 전환… 잘못된 탭으로 이동.
하나의 에이전트만 사용해도 짜증 납니다. 열 개를 쓰면 그게 제 시간 대부분을 차지했습니다.
제가 만든 것
Aki는 이 문제를 해결하기 위한 작은 Mac 앱입니다. ⇧⌘A를 누르고 화면의 아무 곳이나 지정한 뒤, 변경되어야 할 내용을 작성하고 ⌘⏎를 누릅니다. 해당 메모가 정확한 요소를 포함하여 적절한 에이전트의 터미널에 도착합니다. 스크린샷은 필요 없습니다.

Chrome, Brave, Edge, Arc에서는 페이지가 포인터 아래의 요소(고유한 CSS selector, 텍스트, HTML, dev build 상태에서의 React 컴포넌트 파일 등)에 대해 (확장 프로그램 없이 Apple Events를 통해) 정보를 요청합니다. 화살표 키로 화면을 이동할 수 있으며, ⇧ + 화살표를 누르면 다음 요소를 표시 대상에 추가합니다.
브라우저에만 국한되지 않음
터미널 오류 메시지, Finder의 파일, Figma 프레임 등. 만약 그것이 화면에 있다면, 지정할 수 있습니다. 브라우저 외부에서는 Aki가 macOS Accessibility tree를 사용하며, 모든 앱에서 작동합니다.

적절한 세션 지정 기능
이 부분이 가장 필요했던 기능입니다. localhost:3001의 페이지는 특정 프로젝트에 속하므로, Aki는 해당 포트를 서비스하는 프로세스, 폴더 및 worktree를 찾아내고 마크(mark)를 그곳에서 작업 중인 에이전트 세션으로 전송합니다. 다른 모든 것은 화면 가장자리에 있는 작은 사이드바에서 선택한 세션으로 전달됩니다 (각 Claude Code / Codex 세션당 하나의 링: 작동 중, 대기 중, 마크 보류).

에이전트가 받는 것 (What the agent gets)
텍스트입니다. 각 마크는 자신이 덮고 있는 텍스트를 가지고 있으며, 오직 표시한 내용이 시각적일 때만 작은 잘림(crop) 이미지가 함께 제공되어 에이전트가 전체 스크린샷을 읽으며 토큰을 소모하는 것을 방지합니다. 에이전트는 로컬 MCP 서버(read_annotations, wait_for_annotations, get_annotation_image, resolve_annotation) 또는 aki 명령어를 통해 마크를 읽고, 코드를 수정하며, 각각의 마크를 해결합니다.

구축 방법 (How it's built)
- 네이티브 Swift (SwiftPM, Xcode 프로젝트 없음)로 제작되었으며, 화면 가장자리에 위치하고 Dock 아이콘은 없습니다.
- 앱 내부에 작은 HTTP 서버가 있으며,
127.0.0.1에서만 작동하며 Origin/Host를 확인합니다. 마크는 사용자의 Mac에~/.aki경로에 저장됩니다. 계정 로그인이 필요 없습니다. - 이 기능의 대부분은 Claude Code 자체로 구축했습니다. 이는 매일
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기