원문 캡처 · github.com
원문 캡처 · github.com

Zulu Assistant의 데모는 38초짜리 영상으로도 제공된다. 화면에 나오는 이름은 모두 합성 데이터다.

Zulu Assistant는 Mac에서 백그라운드 작업과 Claude Code·Codex 세션을 함께 살피고, 안전하게 처리할 수 있는 문제는 복구하며 나머지는 사용자에게 알리는 오픈소스 도구다. 자동화 작업과 AI 에이전트를 한 화면에서 관리하려는 Mac 사용자와 팀이 살펴볼 만하다.

이 도구는 무엇을 관리하나?

Zulu Assistant는 Mac의 작업 상태를 모으는 관제판과 에이전트 작업 공간을 제공한다. 여러 상태판을 한데 모은 대시보드를 떠올리면 쉽다. 실제로는 실행 예약 작업, 컨테이너, 네트워크 주소, 프로세스와 에이전트 세션을 수집해 브라우저에 보여준다.

관제판에는 launchd 작업, 컨테이너, 접속 주소, cron 예약 작업, 프로세스별 카드와 디스크·메모리 표시기가 나온다. 예약 정보와 로그, 마지막 성공 시각은 설정 목록인 plist에서 가져온다. 24시간 타임라인과 이벤트 표시줄, ?tv 키오스크 모드, / 명령 팔레트도 포함한다.

cmux에서 실행 중인 Claude Code와 Codex 세션은 RUNNING, IDLE, NEEDS INPUT 상태로 표시된다. 마지막 메시지와 컨텍스트 창 사용량도 볼 수 있다.

무엇을 자동화하고 어떻게 알리나?

알림은 cmux 알림으로 즉시 시작한다. 문제가 30분 동안 계속되면 이메일을 보내고, 심각한 항목에는 SMS 웹훅을 호출한다. 매일 08:00에는 요약을 보낸다. 관제판 자체가 멈춘 경우를 감지하는 데드맨 스위치도 있다.

자동 복구 기능은 cmux 소켓 암호 분실, 재부팅 뒤 복원되지 않은 세션, 디스크 공간 부족을 다룬다. 디스크 문제에는 사용자가 허용한 조치만 적용하며, 복구 시도마다 이벤트 표시줄에 기록을 남긴다.

Mission Control은 고정된 cmux 작업 공간에서 마스터 에이전트를 실행한다. 저장소마다 장기 실행하는 에이전트와 작업마다 만드는 작업자를 둘 수 있으며, 각 에이전트가 독자적으로 할 수 있는 일은 사용자의 POLICY.md가 정한다. Agent Mesh는 에이전트 목록과 작업 기록, 결과 전달 규칙을 제공한다. 에이전트끼리는 작업을 넘기며, 사용 중인 창에 직접 입력하지 않는다. 승인은 관제판에서 처리한다.

Brain 기능은 조직 메모리용 Obsidian 보관함, 코드 메모리용 Graphify, 에이전트 메모리용 Claude 메모리 파일을 연결한다. 자세한 내용은 Brain 문서에 있다.

안전 장치와 설치 조건은?

Zulu Assistant는 기본적으로 감시 대상에 쓰기 작업을 하지 않는다. 자체 data/ 디렉터리, cmux 알림, 하트비트 기록, 사용자가 클릭한 KICKSTART, RESTART, START, DISPATCH, ASK MASTER 동작만 예외다. 데모 모드는 어떤 동작도 실행하지 않는다.

유료·외부 공개·파괴적 작업은 매번 사용자에게 넘기도록 정책을 둔다. 에이전트는 승인 요청을 할 수 있지만 관제판의 WORK 패널에서 설치별 결정 토큰을 사용해야 승인된다. 신뢰 확인 창에 자동으로 답하지 않고, 준비된 창에만 메시지를 전달한다. 그 밖의 메시지는 대기열에 넣고 보고한다. 관제판은 로컬호스트와 사용자의 Tailscale 범위에서만 제공하며, 로컬 네트워크에는 403을 반환한다. 파일은 publish/manifest.json에서 분류하고, CI에서 민감 정보 제거 검사와 gitleaks를 실행한다. 자세한 내용은 보안 문서를 참고할 수 있다.

서버는 외부 의존성이 없는 Node 22 프로세스다. 수집기는 60초마다 시간 제한을 두고 실행되며, 상태 스냅숏은 서버 전송 이벤트(SSE)를 통해 브라우저로 전달된다. 감시 대상, 에이전트, 승인 설정 등 사용자별 설정은 overlay/에 둔다. 구조 문서에 설명이 더 있다.

설치에는 macOS 14 이상과 Node 22가 필요하다. Node는 nvm install 22 또는 brew install node@22로 설치할 수 있다. cmux 0.65.x가 필요하며 0.64.x도 코드에서 차이를 처리해 작동한다. Claude Code는 2.1.280 이상이 필요하고 2.1.296에서 테스트했다. Codex CLI 0.162.x는 선택 사항이다. gh에 로그인해야 데드맨 스위치를 설정할 수 있으며, 별표 표시 요청에도 사용된다. Docker, Tailscale(휴대전화 접속용), Obsidian과 Graphify(Brain용)는 선택 사항이다.

cmux는 별도 GPL 라이선스 앱이다. 사용자가 직접 수정하지 않은 상태로 설치해야 하며, Zulu Assistant는 cmux를 포함하거나 연결해 배포하지 않고 명령줄 인터페이스와 소켓만 호출한다.

설치와 설정은 어떻게 하나?

설치 스크립트는 필요한 도구 목록을 보여주고 한 번 확인을 받은 뒤 도구 체인, 관제판, cmux 설정, Brain과 에이전트 작업 환경을 설치한다. 이후 zulu setup을 시작한다. 설정 단계는 GitHub 연결, Mission Control과 작업자에 쓸 Claude Code 또는 Codex 선택, Mac을 검사해 감시 대상을 고르는 일, 알림 채널 추가, 보관함 생성, macOS 권한 부여 순이다.

sh
curl -fsSL https://zuluassistant.com/install | bash

GitHub에서 직접 설치하려면 다음 명령을 쓴다.

sh
curl -fsSL https://raw.githubusercontent.com/zulu-assistant/zulu-assistant/main/get.sh | bash

설정은 나중에 다시 실행할 수 있다. 예를 들어 엔진 설정만 다시 하려면 zulu setup --step engines를 실행한다. 설정이 끝날 때까지 관제판에 설정 카드가 표시된다.

설치하지 않고 살펴보려면 저장소를 복제한 뒤 ./install.sh --demo를 실행한다. Node 22만으로 :3210에서 합성 데이터를 사용하는 관제판을 띄운다. 설치 과정과 자동화할 수 없는 작업은 설치 문서에 정리돼 있다.

설정은 overlay/ → 핵심 설정 → examples/ 순서로 적용된다. overlay/config/jobs.mjs에 항목 하나를 추가하면 감시 범위를 늘릴 수 있고, 다음 수집 주기부터 관제판에 반영된다. 저장소가 제공하는 설정 파일은 다음과 같다.

text
examples/          generic templates, shipped (the board runs on these until you add overlay/) overlay/           YOUR config, gitignored: ./install.sh init copies examples/ here   config/jobs.mjs    what to watch: JOBS, DOCKER_CONTAINERS, ENDPOINTS, CRON, PROCESSES, gauges, SETTINGS   config/agents.json the mesh directory (maintained by the board)   POLICY.md          what agents may do without you   MISSION-CONTROL.md the master agent's contract data/secrets.env   SMTP, SMS webhook, heartbeat keys (template: secrets.env.example)

Zulu Assistant는 tmux 대신 cmux를 사용한다. 저장소는 tmux가 창을 유지하는 데는 유용하지만 에이전트의 작업 상태를 알지는 못한다고 설명한다. cmux는 에이전트 생명주기 훅, 작업 공간별 상태 표시, 알림 피드, Claude 자동 재개를 포함한 세션 복원, 인증된 소켓 API를 제공하며 관제판과 에이전트 메시 연결에 쓰인다. tmux가 더 나은 경우를 포함한 비교는 tmux와의 비교 문서에 있다.

이번 버전은 v0.1이다. 관제판, 데모 모드, Mission Control, Agent Mesh, Brain 템플릿, 설치 프로그램을 포함한다. 다음 단계로 Homebrew 탭, npx 단일 명령 설치, Linux/systemd 수집기, Slack·ntfy 알림 플러그인, 자체 데이터베이스 없이 데드맨 스위치를 쓸 수 있는 호스팅 하트비트 중계기가 계획돼 있다. 아이디어와 투표는 토론 게시판에서 확인할 수 있고, 첫 기여에 적합한 이슈는 별도 라벨로 표시된다.

설치 프로그램은 대화형 터미널에서만 GitHub 별표 여부를 한 번 묻는다. 기본값은 아니요이며, gh에 로그인하지 않았다면 질문을 건너뛴다. 명시적으로 y를 입력한 경우에만 사용자의 gh 계정으로 별표를 표시한다. 관제판은 처음 문제를 발견했을 때 별표 페이지를 여는 버튼과 다시 묻지 않는 버튼이 있는 알림을 한 번 띄울 수도 있다. 선택은 data/star-prompt.json에 저장되며, 어떤 기능도 별표 여부에 의존하지 않는다. 나중에 별표를 표시하려면 ./install.sh star를 실행한다.

설치하려면 macOS·Node·cmux·Claude Code 버전을 확인하고, 에이전트가 사용자 확인 없이 할 수 있는 일을 POLICY.md에 정해야 한다. 원문은 가격이나 Linux용 정식 지원 시점을 밝히지 않으며, Linux/systemd 수집기는 향후 계획으로만 제시한다.