mintOps는 여러 서버에 동시에 SSH로 접속해 작업하는 터미널 운영 도구입니다. 여기에 Tailcat으로 어디서든 서버에 닿고, 서버에 herdr가 있으면 코딩 에이전트의 워크스페이스·탭·pane을 네이티브 UI로 다루며, 에이전트가 만든 결과물을 파일 브라우저와 웹 브라우저로 앱 안에서 바로 리뷰합니다. 에이전트가 질문하거나 일을 끝내면 알림이 오고, iCloud로 연결된 내 Mac에는 탭 한 번으로 접속해 화면까지 봅니다. 계정이 없고, 기기와 서버가 직접 통신합니다.
화면으로 둘러보기
이미지를 탭하면 크게 볼 수 있습니다. 좌우 화살표(또는 키보드 ← →)로 넘겨 보세요.
한눈에 보기
- Tailcat 지원공인 IP·VPN·계정 없이 WireGuard 터널로 서버에 접속합니다. NAT 뒤의 집·사무실 서버에도 닿습니다.
- herdr 네이티브 지원서버의 herdr를 자동 감지해 워크스페이스·탭·분할 pane·에이전트를 네이티브 화면으로 보여줍니다.
- 파일 브라우저변경 파일 목록, 색이 있는 diff, Markdown·HTML·이미지·PDF·소스 코드를 앱 안에서 읽습니다.
- 웹 브라우저워크스페이스에서 띄운 개발 서버를 자동으로 찾아 SSH 포트 포워딩으로 앱 안 웹뷰에 엽니다.
- 에이전트 알림에이전트가 승인·선택을 기다리거나 일을 끝내면 알림. 누르면 그 pane으로 갑니다.
- 서버 모드와 iCloudMac을 서버로 켜 두면 iPhone·iPad에 "내 Mac"으로 나타나고, 키 등록까지 iCloud가 해 줍니다.
- Mac 화면 공유내 Mac의 화면을 iPhone·iPad·다른 Mac에서 버튼 하나로 보고 조작합니다.
- Mac 앱This Mac으로 원격 로그인 없이 이 Mac의 herdr를, 창 하나에 서버 하나, 키보드 단축키.
주요 기능 자세히 보기
Tailcat 지원
mintOps에는 Tailscale이 공개한 tailcat("Tailscale without Tailscale")이 내장돼 있습니다. tailcat은 Tailscale의 데이터 플레인(WireGuard 터널, DERP 릴레이, NAT 홀펀칭)만 사용하고 컨트롤 플레인(계정, 조정 서버)은 쓰지 않습니다. 서버에서 tailcat serve 22 한 줄로 열어 두면, 공인 IP나 포트 포워딩 없이도 mintOps가 그 서버에 SSH로 접속합니다.
- 계정도 서버도 필요 없음Tailscale 계정, 조정 서버, 별도 VPN 앱이 없습니다. 서버가 출력한
tc…주소 하나(또는 DNS TXT 레코드에 게시한 이름)로 접속합니다. - 릴레이로 시작해 직접 연결로 자동 전환먼저 DERP 릴레이로 연결하고, NAT 통과에 성공하면 직접 연결로 자동 업그레이드됩니다. 세션 탭에
relay · 79 ms→direct · 0.3 ms처럼 경로와 지연이 표시됩니다. - 클라이언트 신원 키 관리설정에서 신원 키를 생성하거나 tailcat CLI의 키 파일을 가져옵니다. 공개키를 서버의
--allow목록에 넣으면 허용한 기기만 접속할 수 있습니다. 키를 만들지 않으면 접속마다 일회용 신원을 씁니다. - 연결 블록 한 번에 붙여넣기서버 주인이 준 연결 블록(JSON)을 새 연결 화면의 Paste로 붙여넣으면 주소·포트·사용자·인증·신원 키가 한 번에 채워집니다. 인증은 비밀번호 / SSH 키 / None(
no-auth-ssh서버용) 중 선택합니다. - DNS 이름 안전 검사DNS 이름으로 게시된 서버에 접속할 때, 모르는 기기로도 들어갈 수 있는 서버인지 함께 시험해 보고 그렇다면 경고합니다.
- macOS: 명령줄 도구 설치Mac 버전은 tailcat CLI를 함께 번들합니다. 설정에서 한 번 링크하면 터미널에서
tailcat ssh,tailcat ping,tailcat serve를 그대로 쓸 수 있고, 앱에서 만든 키를 CLI로 내보낼 수도 있습니다. - 연결 로그설정 → Tailcat → Connection Log에서 DNS 해석, 릴레이 핸드셰이크, 직접 연결 전환 등 이벤트를 확인할 수 있습니다.
서버 준비는 두 줄이면 됩니다
tailcat genkey --key=default --fixed-region # 재시작해도 주소가 유지되는 서버 키
tailcat serve 22 # 로컬 sshd를 터널로 노출 파일 브라우저와 웹 브라우저를 포함한 모든 기능이 Tailcat 터널 위에서도 동일하게 동작합니다.
herdr 네이티브 지원
herdr는 "코딩 에이전트가 사는 런타임"입니다. 워크스페이스 안의 탭과 분할 pane에서 Claude Code 같은 에이전트를 돌리는 터미널 멀티플렉서(백그라운드 서버 + CLI)입니다. mintOps는 SSH 접속 직후 서버에 herdr가 설치돼 있는지 확인하고, 있으면 일반 셸 대신 herdr 전용 모드로 들어갑니다. tmux 화면을 좁은 폰에서 스크롤하는 대신, 워크스페이스·탭·pane·에이전트가 모두 네이티브 UI가 됩니다.
- 자동 감지, 자동 구동접속 성공 후
herdr가 있는지 확인합니다(Homebrew, cargo, 로컬 bin 경로까지 탐색). 서버가 떠 있지 않으면herdr server를 자동으로 띄웁니다. 설정할 것이 없습니다. - 워크스페이스 사이드바서버의 워크스페이스를 네이티브 리스트로 보여주고, 포커스된 워크스페이스가 선택됩니다. 하단에는 에이전트 목록이 상태(idle / working / blocked)와 함께 고정 표시되고, 탭하면 그 에이전트의 pane으로 바로 이동합니다.
- 탭과 분할 pane 그대로워크스페이스의 탭을 네이티브 탭 바로 보여주고 생성·닫기·전환할 수 있습니다. herdr의 BSP 분할 레이아웃을 셀 단위 좌표로 받아 화면에 비례 매핑하므로, 서버에서 나눈 pane 구조가 그대로 재현됩니다.
- pane 하나하나가 진짜 터미널각 pane은 전용 SSH 채널로 herdr 터미널 세션에 붙습니다. 서버가 보내는 프레임을 SwiftTerm에 그리고, 키 입력과 리사이즈를 되돌려 보냅니다. 즉 pane 안은 그냥 완전한 터미널입니다.
- 프롬프트 작성 창터미널 키보드 대신 화면 하단의 작성 창으로 에이전트에게 긴 지시를 씁니다. 보내기(⌘↩)·줄바꿈 키를 안내하고, 하드웨어 키보드에서는 ? 버튼으로 자세히 설명합니다.
- 모든 워크스페이스 보기모든 space를 격자로 펼쳐 마지막으로 본 화면을 보고, 골라서 옮기거나 새로 만들고 닫습니다. 검색과 화살표 키를 쓰고, iPad는 두 손가락 오므리기로 엽니다.
- worktree브랜치별 worktree space를 원본 저장소 아래 묶어 보여 주고(머리 행에 원본 브랜치), 만들기·열기·checkout 삭제·space 닫기를 앱에서 합니다.
- 세션 기억앱을 나갔다 오거나 앱이 종료돼도 세션을 잊지 않고, 마지막 세션은 같은 space·탭·pane으로 자동 재접속합니다. 키보드가 뜨고 사라지거나 탭을 오가도 보던 줄이 그대로이고, 위로 올렸을 때는 "맨 아래로" 버튼이 나옵니다.
- iPad·Mac은 줌, iPhone은 pageriPad와 Mac은 전체 레이아웃 보기와 pane 하나 줌을 오갑니다. iPhone은 항상 pane 하나를 크게 보여주고, 좌우로 넘겨 pane 사이를 이동합니다.
동작 구조
SSH 접속 ──▶ command -v herdr ──▶ (있음) herdr 모드 진입
├─ workspace / tab / pane / agent 목록 ← herdr CLI (JSON, SSH exec)
├─ pane 레이아웃 ← herdr pane layout → SwiftUI 좌표로 비례 매핑
└─ pane 터미널 ← herdr terminal session control <pane> (프레임 ↔ 키 입력·리사이즈) 파일 브라우저
에이전트에게 일을 시키면 결과는 서버의 파일 변경으로 나타납니다. 그걸 확인하려고 좁은 터미널에서 git status, git diff, cat을 치고 색도 구조도 없는 텍스트를 스크롤할 필요가 없습니다. herdr 모드의 탭 스트립 오른쪽 폴더 버튼을 누르면 워크스페이스 화면이 파일 브라우저로 바뀝니다. 읽기 전용이고, 서버에 아무것도 설치하지 않으며, 서버의 파일을 바꾸는 명령은 실행하지 않습니다.
- 워크스페이스 단위, git 저장소 자동 인식포커스된 pane의 작업 디렉터리가 속한 git 저장소 루트를 기준으로 삼습니다. git 저장소가 아니면 그 디렉터리 자체를 보여줍니다.
- 변경 파일 목록git 저장소라면 작업 트리와 HEAD의 차이(staged + unstaged + 추적되지 않은 파일)를 M / A / D / R / ? 배지와 함께 한눈에 보여줍니다. 항목마다 "diff 보기"와 "전체 보기" 버튼이 있습니다.
- 색이 있는 diffdiff2html로 렌더링한 읽기 쉬운 diff입니다. iPad와 Mac은 side-by-side와 unified를 전환할 수 있고, iPhone은 unified로 봅니다. 구문 강조가 적용됩니다.
- 파일 종류에 맞는 전체 보기Markdown은 렌더링해서, HTML은 참조하는 이미지·CSS·JS까지 함께 가져와 웹뷰로, 소스 코드는 구문 강조와 줄 번호로, 이미지는 핀치 줌 되는 미리보기로, PDF는 PDF 뷰어로 엽니다. Markdown·HTML은 "원본 보기"로 전환할 수 있습니다.
- 디렉터리 트리와 파일명 검색git 저장소가 아닌 디렉터리는 트리로 접어 보여주고, 파일명 일부를 입력하면 하위 디렉터리까지 부분 일치로 빠르게 찾습니다. 숨김 파일도 포함합니다.
- 안전한 크기 한도파일·이미지·HTML 리소스 각각에 크기 한도(기본 100MB, 설정에서 변경)가 적용돼 큰 파일 때문에 앱이 멈추지 않습니다. 세션이 끝나면 캐시는 지워집니다.
파일 브라우저를 보는 동안에도 터미널 스트림은 살아 있습니다. 터미널로 돌아오면 화면이 즉시 이어집니다.
웹 브라우저
에이전트가 웹 애플리케이션을 만들면 결과는 서버에서 돌아가는 개발 서버(pnpm dev, next dev, python -m http.server…)입니다. 원래라면 터미널에서 포트 번호를 찾고, 다른 터미널에서 ssh -L로 포워딩을 걸고, 브라우저를 열어야 합니다. 폰에서는 사실상 불가능한 일입니다. mintOps에서는 탭 스트립의 지구본 버튼 하나로 끝납니다.
- 개발 서버 자동 탐지워크스페이스 디렉터리 이하에서 실행돼 TCP 포트를 listen 중인 프로세스를 서버에서 찾습니다. Linux는
/proc, macOS는lsof만 사용하므로 서버에 아무것도 설치하지 않습니다. - HTTP만 골라서찾은 포트에 직접 HTTP 요청을 보내 응답하는 것만 탭으로 만듭니다. DB나 Redis 같은 비HTTP 포트는 제외됩니다.
- 포트마다 탭 하나서버가 여러 개면 탭이 여러 개 생기고, 탭을 옮겨 가며 번갈아 봅니다. 탭에는 프로세스 이름과 포트가 표시됩니다.
- SSH 포트 포워딩, 자동으로기기의 127.0.0.1 포트를 SSH direct-tcpip 채널로 원격 포트에 잇습니다. 로컬 포트는 원격과 같은 번호를 먼저 시도하므로
localhost:5173을 박아 넣은 HMR 웹소켓 같은 참조도 그대로 통합니다. 포워딩은 루프백에만 열려 LAN에 노출되지 않습니다. - 살아 있는 탭 목록화면이 보이는 동안 5초마다 다시 탐지합니다. 새 서버가 뜨면 탭이 추가되고, 죽은 서버의 탭은 정리됩니다. 개발 서버가 재시작할 때 탭이 깜빡이지 않도록 잠시 기다립니다.
- 뒤로 · 앞으로 · 새로고침WKWebView 위에서 페이지 안 링크를 따라 이동할 수 있습니다. 쿠키와 로그인 상태는 세션 안에서 탭과 새로고침을 넘어 유지되고, 세션이 끝나면 사라집니다. Mac에서는 Safari 웹 인스펙터를 붙일 수 있습니다.
동작 흐름
지구본 버튼 ──▶ 서버에서 listen 포트 + 프로세스 cwd 조회 (/proc 또는 lsof)
──▶ 기기에서 direct-tcpip 채널로 HTTP 판정 (3초)
──▶ 127.0.0.1:<포트> 로컬 리스너 ↔ SSH 채널 ↔ 원격 포트
──▶ WKWebView 탭 열기 · 5초마다 재탐지 에이전트 알림
에이전트에게 일을 맡기고 다른 일을 하다가도, herdr 안의 에이전트가 승인·선택을 기다리거나 일을 끝내면 바로 알 수 있습니다. 알림을 누르면 그 에이전트의 pane이 열립니다.
- 질문과 끝남만에이전트 상태가 기다림(승인·선택)이나 끝남으로 바뀔 때만 알립니다. 같은 pane의 알림은 마지막 것만 남습니다.
- iPhone·iPad는 푸시 알림앱을 닫아 두어도 옵니다. 접속할 때 앱이 서버에 작은 알림 스크립트(python3)를 설치하고, 민트기술의 알림 중계(relay.mintech.kr)가 Apple 푸시로 전달합니다. 알림 내용은 중계에 저장하지 않습니다.
- 기기당 하루 50건 무료한도에 닿으면 한 번 알리고, 설정에 오늘 사용량을 보여 줍니다.
- Mac은 로컬 알림Mac은 접속해 있는 동안 앱이 직접 에이전트 상태를 보고 알림을 띄웁니다. 중계를 쓰지 않습니다.
- 켜고 끄기설정에서 전체를, 접속마다 "Agent notifications"로 서버별로 켜고 끕니다.
서버 모드와 iCloud
Mac 앱을 서버 모드로 켜 두면 같은 iCloud 계정의 iPhone·iPad에 그 Mac이 "내 Mac"으로 나타나고, 탭 한 번으로 접속합니다. 공인 IP도 포트 포워딩도, 주소 복사도 필요 없습니다.
- iCloud로 자동 발견Mac이 자기 Tailcat 주소를 iCloud에 올리면 iPhone·iPad의 접속 목록에 "내 Mac"으로 보입니다. 주소가 바뀌어도 따라갑니다.
- 키 등록도 자동iPhone·iPad에서 접속 키를 만들면 iCloud로 Mac의 허용 목록에 들어가 잠시 뒤 바로 접속됩니다. Mac의 Devices에서 기기를 차단하고, 기기에서 키를 지우면 Mac에서도 빠지고 열린 접속이 끊깁니다.
- Mac 계정으로 로그인Mac의 원격 로그인(SSH)과 Mac 계정으로 접속합니다. 로그인할 때 서버 모드를 자동으로 켜는 옵션이 있습니다.
- herdr가 내장Mac에 herdr를 설치하지 않아도 앱에 내장된 herdr로 herdr 화면이 열립니다. 설치된 herdr가 있으면 그것을 먼저 씁니다.
Mac 화면 공유
서버 모드 › Screen Sharing을 켜면 iPhone·iPad·다른 Mac에서 버튼 하나(⇧⌘R)로 그 Mac의 화면을 보고 마우스·키보드로 조작합니다. 별도의 원격 데스크톱 앱이나 민트기술의 서버 없이 mintOps가 직접 화면을 내줍니다(RustDesk 프로토콜 호환).
- 묻지 않는 접속Mac이 만든 임의 비밀번호가 iCloud로 내 기기에만 전달되므로 비밀번호를 입력하지 않습니다. 화면 버튼은 iCloud로 연결된 내 Mac에서만 보입니다.
- 하드웨어 인코딩ScreenCaptureKit으로 캡처해 VideoToolbox HEVC/H.264로 보냅니다. 커서 모양과 여러 디스플레이 전환을 지원합니다.
- iPad 트랙패드 모드손가락을 움직이면 커서가 지금 위치에서 따라 움직이고 탭하면 클릭합니다. ⋯ › Pointer에서 터치한 곳을 바로 누르는 모드로 바꿉니다.
- Mac에서 통제화면 기록·손쉬운 사용 권한을 허용해야 켜집니다. 보고 있는 기기 목록에서 바로 끊을 수 있고, 보는 동안 화면이 잠들지 않습니다.
Mac 앱
Mac 버전은 이 홈페이지에서 내려받는 Developer ID 공증 앱입니다. App Store 샌드박스 없이 동작해 Mac에서 할 수 있는 일을 모두 합니다.
- This Mac접속 목록의 "This Mac"을 누르면 원격 로그인도 암호도 없이 앱이 이 Mac의 herdr를 직접 실행해, 원격 서버와 똑같은 herdr 화면을 엽니다. 설치된 herdr가 먼저이고, 없으면 내장 herdr를 씁니다.
- 창 하나에 서버 하나새 창 가운데에 접속 목록이 뜨고, 접속하면 그 창이 서버 화면이 됩니다. 여러 서버는 새 창(⌘N)으로, 이미 열린 서버를 고르면 그 창으로 갑니다.
- 키보드 단축키⌘1~9 space, ⌥⌘1~9 탭, ⌥⌘화살표 pane 이동, ⌘D·⇧⌘D 분할, ⌘W pane 닫기, ⇧⌘↩ 줌, ⇧⌘F 파일, ⇧⌘P 웹 미리보기. ⌘를 1초 누르면 단축키가 보입니다. iPad 하드웨어 키보드도 같습니다.
- tailcat 명령줄과 ssh-agent번들된
tailcatCLI를 터미널에 설치하고, SSH agent forwarding으로 시스템 ssh-agent의 키도 서버에 전달합니다.
기본기: SSH 터미널
- 다중 SSH 세션탭으로 여러 서버에 동시에 접속합니다. 접속 정보는 저장되고 비밀번호는 Keychain에 보관됩니다.
- 완전한 터미널SwiftTerm 기반의 터미널 에뮬레이터와 Citadel(swift-nio-ssh) 기반 SSH 클라이언트로, 256색·마우스·리사이즈가 모두 동작합니다.
- 인증 방식비밀번호, SSH 키, 그리고 Tailcat의
no-auth-ssh서버용 None 인증을 지원합니다. - 막히지 않는 접속 화면Connect는 회색으로 꺼지지 않습니다. 빠진 칸이 있으면 빨갛게 표시하고 무엇을 넣어야 하는지 말해 주며, 신원 키 없이 Tailcat 서버에 접속하려 하면 미리 경고합니다.
- SSH agent forwarding키로 접속한 서버에서, 서버에 개인 키를 두지 않고 앱의 키로
git push·ssh를 합니다. herdr pane에서도 되고 첫 서명 때 묻습니다. - 라이트·다크 모드시스템 설정을 따라 터미널과 파일 뷰어까지 함께 바뀝니다. 터미널 색 테마 8가지.
- 텍스트 선택·복사iPhone·iPad 터미널에서 트리플탭·끌기·길게 누르기로 선택해 복사하고, 키 줄의 mouse 키로 tmux·vim 마우스 모드를 켭니다.
- 오픈소스 크레딧사용한 오픈소스와 라이선스 전문을 설정 → About(Mac은 앱 메뉴 → About mintOps)에서 볼 수 있습니다.
iPhone · iPad · macOS
한 코드베이스로 세 플랫폼을 지원하며, 각 기기의 화면 크기와 입력 방식에 맞춰 배치가 달라집니다.
iPhone
- herdr pane을 하나씩 크게 보고 좌우로 넘겨 이동
- 에이전트 푸시 알림
- 터미널 텍스트 선택·복사, 커스텀 키패드
- 내 Mac에 탭 한 번으로 접속하고 화면 보기
iPad
- 사이드바(워크스페이스·에이전트) + 오른쪽 작업 영역, 줌 전환
- 하드웨어 키보드 단축키, 두 손가락 오므리기로 모든 워크스페이스
- 내 Mac 화면 보기(트랙패드 모드)
- side-by-side diff, 파일 목록과 뷰어 좌우 분할
macOS
- 이 홈페이지에서 내려받는 Developer ID 공증 앱
- This Mac: 원격 로그인 없이 이 Mac의 herdr
- 서버 모드·화면 공유로 iPhone·iPad가 이 Mac에 접속
- 창 하나에 서버 하나, 키보드 단축키, tailcat 명령줄 도구
사용 방법
- +로 서버 접속 정보를 넣거나 받은 연결 블록을 붙여넣어 접속합니다. Mac에서는 접속 목록의 This Mac으로 이 Mac에 바로 들어가고, iPhone·iPad에서는 서버 모드로 켠 내 Mac이 목록에 나타납니다.
- 서버에 herdr가 있으면 자동으로 herdr 모드로 들어갑니다. 사이드바에서 워크스페이스를, 탭 바에서 탭을 고릅니다.
- pane 안의 터미널이나 하단 프롬프트 입력 바로 에이전트에게 일을 시킵니다.
- 폴더 버튼으로 변경된 파일과 diff, 새로 생긴 문서·이미지를 리뷰합니다.
- 지구본 버튼으로 워크스페이스에서 띄운 웹 서버를 앱 안에서 바로 열어 봅니다.
시스템 요구 사항
- iOS 26.2 이상 (iPhone · iPad), macOS 26.2 이상. Mac 버전은 이 홈페이지에서 내려받습니다(App Store 배포 안 함).
- SSH 접속이 가능한 서버. herdr 네이티브 모드는 서버에 herdr가 설치돼 있을 때 자동으로 켜집니다.
- Tailcat 접속은 서버에서 tailcat CLI로
tailcat serve를 실행해 두어야 합니다. 일반 SSH 접속에는 필요하지 않습니다. - 파일 브라우저와 웹 브라우저는 서버의 표준 도구(
git,find,/proc또는lsof)만 사용합니다. 추가 설치는 없습니다. - 에이전트 알림은 서버에 python3가 필요합니다. 서버 모드·화면 공유는 Mac의 원격 로그인과 iCloud(같은 계정), 화면 공유는 Mac의 화면 기록·손쉬운 사용 권한이 필요합니다.
개인정보 보호
mintOps에는 계정이 없습니다. 터미널·파일·화면 공유는 모두 사용자의 기기와 사용자의 서버 사이에서 SSH(또는 Tailcat 터널 위의 SSH)로 직접 이뤄집니다. 접속 정보와 Tailcat 신원 키는 기기의 Keychain과 앱 저장소에만 보관되고, 내 Mac 정보는 사용자 본인의 iCloud로만 오갑니다. 민트기술의 서버를 거치는 것은 iPhone·iPad의 에이전트 푸시 알림뿐이며, 알림 중계는 전달에 필요한 기기 정보만 보관하고 알림 내용은 저장하지 않습니다.
언어별 개인정보 처리방침
Mac용 내려받기
Mac 버전은 App Store가 아니라 여기서 내려받습니다. Apple Developer ID로 서명하고 Apple의 공증을 받은 빌드로, This Mac·서버 모드·화면 공유·내장 herdr·tailcat 명령줄 도구를 모두 씁니다. 압축을 풀어 응용 프로그램 폴더에 넣으면 됩니다. macOS 26.2 이상.
mintOps for Mac 내려받기 (zip) 버전 1.1 · 빌드 2610141252 · 48.5 MB
Gatekeeper 확인을 거친 공증 빌드입니다. 처음 실행할 때 "인터넷에서 다운로드한 앱" 확인 창만 나옵니다. 이전 빌드 목록
릴리스 노트
로드맵
만들고 있는 것과 끝난 것을 릴리스 단위로 공개합니다.