기업 개발자용 원격 개발 콘솔사내 서버 설치데스크톱 · 휴대폰

개발자들의 Claude Code 를,
회사 서버로 어디서든.

SSemTong Console 은 기업 개발자를 위한 Claude Code 원격 개발 콘솔입니다. 회사가 자기 서버에 중계 서버를 두면, 개발자들은 각자의 Mac 에서 tmux 로 띄운 Claude Code 세션을 그 서버를 거쳐 데스크톱 브라우저와 휴대폰에서 보고 제어합니다 — 프롬프트 보내기 · 권한 승인 · 질문 답하기 · 중단까지.

사내 서버 설치 · 각 Mac 은 macOS + tmux · Claude Code 2.1.x 에서 확인 · 데스크톱 브라우저와 휴대폰(홈 화면 앱)

SSemTong Console연결됨 응답 필요 2작업 1사용량관리설정새 세션
세션4개 · 호스트 2대
api-server작업 중
Mac Studio · Claude 1 · sonnet-5-5
결제 금액을 최소 단위로 바꾸는 중
✻ Refactoring… 1:12
todo-app승인 대기
MacBook · Claude 1 · opus-5-5
이제 시험을 돌리겠습니다.
docs-site입력 대기
MacBook · Claude 2 · haiku-4-5
설치 안내 세 쪽을 고쳤습니다.
ml-notebook작업 중
Mac Studio · Ollama · qwen3-coder
데이터 정리 스크립트를 확인하는 중
서브에이전트 2개 실행 중 · 전체 3
api-server 작업 중
Mac Studio · Claude 1 · sonnet-5-5 · ~/work/api-server · main
■ 중단파일sonnet-5-5 · high권한: 자동⋯
결제 금액을 통화별 최소 단위로 바꾸고, 같은 주문이 두 번 결제되지 않게 해줘
금액 변환 함수를 만들고 결제 호출에 멱등 키를 넣겠습니다.
수정src/payments/charge.ts +2 −1
31 export async function charge(order: Order) {32- const res = await gateway.pay(order.total);32+ const amount = toMinorUnits(order.total, order.currency);33+ const res = await gateway.pay(amount, { key: order.id });34 if (!res.ok) throw new PaymentError(res.code);
Bashnpm test -- payments
PASS src/payments/charge.test.ts ✓ 원화는 소수점 없이 보낸다 (3 ms) ✓ 같은 주문을 두 번 결제하지 않는다 (5 ms)+14줄 더 보기
시험 18개가 모두 통과했습니다. 환불 쪽도 같은 방식으로 바꾸겠습니다.
✻ Refactoring… 1:12 · ↓ 2.8k 토큰중단 (Esc)
모델·effort/compact/clear/cost/status
api-server에 보낼 메시지
⌘↵ 보내기 · 파일은 끌어다 놓거나 ⌘V 로 붙여넣기

승인 대기 1

todo-app · 권한 요청 · Bash
npm test -- login
허용거부

에이전트 호스트

MacBook세션 2 · 12ms
Mac Studio세션 2 · 18ms

Hook 이벤트

14:02PermissionRequest · todo-app
14:01PostToolUse · api-server
13:58Stop · docs-site
13:57SubagentStop · ml-notebook
todo-app승인 대기
MacBook · opus-5-5 · xhigh · 권한: 기본
로그인 화면에 비밀번호 보기 단추를 넣고 시험까지 돌려줘
단추를 추가했습니다. 이제 시험을 돌리겠습니다.
수정src/Login.tsx +9 −1
41 <input type={show ? "text" : "password"} />42 + <button onClick={toggle}>보기</button>
권한 요청 · Bash
npm test -- login
허용이 명령 항상 허용거부
Brewing… 42초 · ↓ 1.2k 토큰
todo-app 에 보낼 메시지
세션알림작업사용량관리

데스크톱세션 목록 · 대화 · 승인을 세 칸으로 넓게

휴대폰같은 세션을 한 손으로 — 승인 · 답하기 · 중단

회사 서버 위에서 돌아갑니다

SSemTong Console 은 회사가 직접 운영하는 서버에 설치합니다. 개발자들은 각자의 Mac 에서 하던 대로 Claude Code 를 쓰고, 그 세션을 회사 서버를 거쳐 자리 밖에서도 이어 갑니다.

중계는 회사 서버에서

웹 콘솔 · 중계 · 화면용 대화 사본 · 대화 백업을 모두 회사 서버 한 곳에 둡니다. 원격 제어를 위해 바깥 클라우드 서비스를 거치지 않습니다.

계정 비밀값은 각 Mac 에만

Claude 로그인 정보와 Ollama 키는 개발자의 Mac 에만 둡니다. 웹에서 로그인할 때도 서버는 과정을 전달만 하고 비밀값을 저장하지 않습니다.

Mac 은 나가는 연결만

각 Mac 의 Agent 가 회사 서버로 먼저 연결합니다. Mac 에 열어 둘 포트가 없고, Agent 연결은 사내망(VPN) 안에서만 받습니다.

원격 명령은 모두 감사 기록

누가 · 어느 세션에 · 무엇을 · 결과까지 남깁니다. 웹은 아이디 · 비밀번호에 OTP 까지 거쳐야 열립니다.

관리자 화면

호스트(개발자 Mac) 등록 · 해제, Mac 별 계정 로그인 상태, 쓸 모델과 기본값, 사용량, 서버 설정과 보존 기간을 관리자가 웹에서 다룹니다.

대화 백업 · 되살리기

각 Mac 의 대화 기록을 10분마다 회사 서버에 백업합니다. 관리자가 백업된 대화를 찾아 되살리면 새 세션의 「이어하기」로 엽니다.

Claude Code 가 모델과 주고받는 통신(Anthropic API 등)은 콘솔과 상관없이 원래대로 각 Mac 에서 직접 이루어집니다.

한눈에 보기

터미널 앞에 없어도 Claude 가 묻는 것에 답하고, 얼마나 썼는지 보고, 다른 Mac 으로 일을 넘깁니다. 아래 화면은 지어낸 예시 데이터로 그린 그림입니다.

Claude 가 묻습니다
배포 범위
어디까지 진행할까요?
개발 서버까지 (Recommended)운영은 리허설 뒤에
운영까지오늘 밤 점검 시간에
직접 입력 — 선택지 대신 이 글로 답합니다
답 보내기답하지 않기
질문에 바로 답하기Claude 의 질문을 카드로 띄웁니다. 하나·여럿 고르기, 직접 입력까지 터미널과 같은 모양의 답으로 넘깁니다.
추정 비용
$412
▲ 18%
캐시 적중
96%
▼ 0.8%p
5시간23%
주간71%
⚠ 지금 속도면 금요일 14:00 에 주간 한도에 닿습니다
사용량과 한도 예측계정 한도(5시간·주간)와 지금 속도의 예측, API 단가로 환산한 비용 추정을 모델·프로젝트·시간대별로 봅니다.
api-server → Mac Studio옮기는 중
대화 내보내기2.1 MB
작업 폴더 묶기38 MB
서버로 올리기62%
받는 Mac 에 풀기
이어 열기
다른 Mac 으로 옮기기대화를(원하면 작업 폴더까지) 다른 Mac 으로 넘겨 이어 씁니다. 웹을 닫아도 계속되고, 다시 들어오면 진행이 보입니다.

데스크톱에서는 넓게, 휴대폰에서는 한 손으로

같은 콘솔을 어느 화면에서나 씁니다. 데스크톱 브라우저에서는 세션 목록 · 대화 · 알림을 세 칸으로 나란히 두고 파일 편집기와 사용량 대시보드를 넓게 보며, 휴대폰에서는 아래 탭으로 세션 · 알림 · 작업 · 사용량 · 관리를 오갑니다. 아래 화면도 지어낸 예시 데이터로 그린 그림입니다.

세 칸으로 넓게, 필요하면 접어서

왼쪽 세션 목록 · 가운데 대화 · 오른쪽 승인과 호스트를 한 화면에 둡니다. 양쪽 칸을 접으면 세션은 요약 줄(상태 · 경과 시간 · 승인 수)로, 알림은 아이콘 줄로 남고 대화가 넓어집니다.

  • 고친 파일은 줄 번호 diff, 긴 출력은 접어서
  • 접은 상태는 이 브라우저가 기억
  • ⌘↵ 로 보내기, 파일은 끌어다 놓기

옆으로 밀어서 보세요

파일 탐색기와 편집기

세션 폴더를 트리로 보고 두 파일을 나란히 열어 고칩니다. 잠금을 풀고 고친 뒤 ⌘S 로 저장하고, Claude 가 고친 파일은 바로 다시 읽어 옵니다.

  • 마크다운 미리보기 · 이미지 보기
  • 이름 바꾸기 · 복제 · 휴지통으로 지우기 (영구 삭제 없음)
  • .git · .claude 안은 고칠 수 없음

옆으로 밀어서 보세요

사용량 대시보드

계정 한도와 지금 속도의 예측, 추정 비용 · 요청 · 출력 · 캐시 적중을 이전 기간과 비교합니다. 날마다 모델별 막대와 요일 × 시간 열지도로 언제 · 어디에 썼는지 봅니다.

  • 기간: 오늘 · 7일 · 30일 · 90일 · 이번 달
  • 급증한 날은 ▲ 로 표시
  • 비용은 API 단가로 환산한 추정치

옆으로 밀어서 보세요

무엇을 할 수 있나요

터미널에서 하던 일을 웹에서도 그대로 합니다. 원본은 언제나 각 Mac 의 대화 파일이고, 서버는 화면을 위한 사본입니다.

실시간 대화 보기

대화·도구 호출·결과·서브에이전트를 터미널과 같은 순서로 실시간으로 봅니다. 고친 파일은 줄 번호 diff 로, 긴 출력은 접어서 보이고 마크다운·mermaid 도표·이미지도 그립니다.

권한 승인 · 질문 답하기

Claude 가 명령 실행 권한을 묻거나 질문을 하면 웹·휴대폰에 카드가 뜹니다. 터미널에도 같은 창이 함께 떠 있고, 먼저 답한 쪽이 적용됩니다.

프롬프트 · 파일 · 중단

긴 글도 그대로 보내고, 파일은 입력창에 끌어다 놓거나 붙여 넣으면 세션 폴더에 올라가 @경로로 들어갑니다. 진행 줄을 보다가 Esc 처럼 중단합니다.

새 세션 · 이어하기

허용한 폴더 안에서 tmux 로 새 세션을 열고, 끝난 대화를 이어 엽니다. 다른 계정으로 이어 열면 대화 파일을 그 계정으로 복사해 씁니다.

모델 · effort · 권한 모드

세션 중에 모델과 effort 를 바꾸고(기본은 이 세션만), 권한 모드 다섯 가지(기본·편집 자동 수락·플랜·자동·모두 허용)를 오갑니다.

세션 옮기기

끝난 세션을 다른 Mac 으로 옮겨 이어 씁니다. 작업 폴더도 함께 옮길 수 있고(다시 만들 수 있는 폴더는 빼고), 진행 막대로 단계마다 봅니다.

파일 탐색기 · 편집기

세션 폴더를 둘러보고 미리 보고 고칩니다. Claude 가 고친 파일은 바로 반영되고, 지우기는 휴지통으로 옮기기뿐입니다.

작업 — 백그라운드 에이전트

세션을 가로질러 지금 도는 백그라운드 에이전트와 워크플로우를 한 화면에서 보고, 최근 24시간 동안 끝난 것도 확인합니다.

사용량 대시보드

계정 한도와 지금 속도의 예측, 비용 추정, 날마다 모델별 막대, 많이 쓴 세션, 요일×시간 열지도를 봅니다. 비용은 API 단가 환산 추정입니다.

호스트 · 계정 원격 관리

「호스트 추가」가 만든 설치 명령 한 줄로 개발자 Mac 을 붙입니다. Mac 마다 Claude · Ollama 계정 로그인 상태를 보고 웹에서 로그인하며, Agent 는 「지금 업데이트」로 원격으로 바꿉니다.

대화 백업 · 되살리기

대화 기록과 Claude 가 고치기 전 파일 사본을 회사 서버에 10분마다 올립니다. 보관함 크기 · 디스크 여유 · 호스트별 백업 상태를 보고, 골라서 되살립니다.

감사 기록 · 보존 정리 · 지표

원격 명령은 누가·어느 세션에·무엇을·결과까지 모두 기록합니다. 오래된 기록은 정한 기간에 따라 정리하고, 토큰 같은 민감한 값은 가려서 보입니다. 호스트별 연결 지연 같은 지표도 봅니다.

도입하면 이렇게 씁니다

회사 서버 하나에 개발자들의 Mac 을 붙여 씁니다. 개발자는 하던 대로 tmux 안에서 claude 를 쓰면 됩니다.

회사 서버에 설치합니다

중계 서버(Tomcat 11 · PostgreSQL)를 사내 서버에 둡니다. 웹 콘솔은 회사의 HTTPS 프록시 뒤에, Agent 연결은 사내망 안에만 엽니다.

개발자 Mac 을 붙입니다

관리자가 「호스트 추가」로 만든 설치 명령 한 줄(1회용 등록 코드, 15분)을 Mac 의 터미널에 붙여 넣으면 Agent 가 설치되고 연결됩니다.

어디서든 이어 갑니다

tmux 에서 띄운 claude 세션이 웹에 나타납니다. 데스크톱이나 휴대폰에서 진행을 보며 승인 · 답하기 · 다음 지시 · 중단을 합니다.

어떻게 동작하나요

각 Mac 의 Agent 가 claude 의 대화 파일과 hook 을 읽어 회사 서버로 보내고, 웹이 보낸 명령을 tmux 로 입력합니다. Agent 가 서버로 먼저 연결하므로 Mac 쪽에 열어 둘 포트가 없습니다.

SSemTong Console 구성도 왼쪽 각 Mac 에서 claude 가 대화 파일을 쓰고 hook 을 Agent 로 보내며, Agent 는 대화 파일을 읽어 가운데 회사 서버로 WebSocket 을 엽니다. 회사 서버는 Tomcat 과 PostgreSQL 로 이루어지고, 오른쪽 브라우저와 휴대폰이 HTTPS 와 WebSocket 으로 서버에 붙습니다. 각 Mac (여러 대) claude tmux 창에서 실행하는 Claude Code 대화 파일 JSONL · 원본 ssemtong-agent Go 단일 실행 파일 · launchd 기록 읽기 hook 회사 서버 Tomcat 11 SSemiYa F/W 중계 · 로그인 · 감사 PostgreSQL 화면용 사본 · 설정 웹 브라우저 데스크톱 휴대폰 홈 화면 앱 WebSocket · Agent 가 먼저 연결 HTTPS·WS 사내 서버에 설치 로그인 + OTP 뒤에만 열림
옆으로 밀어서 보세요
  • 원본은 각 Mac 의 대화 파일입니다. 서버는 화면을 위한 사본이라, 서버를 다시 띄워도 Agent 가 이어서 다시 보내 채웁니다.
  • Agent → 서버 한 방향 연결 — 서버가 Mac 으로 들어가지 않습니다. 명령도 같은 연결로 받아 tmux 로 입력합니다.
  • hook 은 127.0.0.1 로만 받습니다. Agent 가 죽어 있어도 claude 를 느리게 하지 않습니다(1초 안에 포기).
  • 웹은 회사의 HTTPS 프록시 뒤에서 로그인 + OTP 를 거쳐야 열리고, 원격 명령은 모두 감사 기록에 남습니다.
Agent

Go 단일 실행 파일

Mac 마다 launchd 로 상주. 대화 파일 tail · hook 수신 · tmux 제어 · 원격 업데이트.

서버

SSemiYa F/W · Tomcat 11

Jakarta WebSocket 중계, REST, 감사 기록, 대화 백업 보관. 사내 서버에 설치.

웹

바닐라 JS 모듈

빌드 도구 없이, 바깥 자원 없이. 데스크톱 · 휴대폰, 밝은 · 어두운 판.

DB

PostgreSQL

화면용 대화 사본, 계정·모델 카탈로그, 사용량, 감사 기록.

보안 원칙

개발자의 Mac 에서 원격으로 명령을 실행하는 도구라서, 지켜야 할 선을 먼저 정해 두고 만들었습니다.

  • 원격 제어를 위한 중계 · 저장은 모두 회사 서버에서 — 바깥 클라우드 서비스를 거치지 않습니다.
  • Mac 은 회사 서버로 나가는 연결만 엽니다 — 밖에서 들어올 포트가 없습니다.
  • 계정 비밀값(Claude 토큰·Ollama 키)은 각 Mac 에만 둡니다. 서버는 저장하지 않습니다.
  • 호스트 등록 코드·토큰은 해시로만 저장하고, 등록 코드는 한 번만·15분 안에 씁니다.
  • Agent 용 연결은 외부 프록시로 열지 않고 사내망(VPN)에서만 받습니다.
  • 웹은 아이디 · 비밀번호에 OTP 가 꼭 필요하고, 관리 작업(호스트 · 계정 · 설정 · 백업 되살리기)은 관리자만 합니다.
  • 새 세션은 허용한 폴더 안에서만 열고, 파일 경로는 Agent 가 마지막으로 검사합니다(세션 폴더 밖·.git·.claude 거부).
  • 원격 명령은 전부 감사 기록에 남깁니다(누가·어느 세션·무엇을·결과).
  • 화면과 기록에 토큰 모양의 값이 보이면 가려서 보입니다.
  • 웹은 바깥 스크립트·글꼴을 부르지 않고(CSP), 업로드는 크기·경로를 두 번 검사합니다.

사용 조건

SSemTong Console 이 동작하는 조건입니다.

  • 각 Mac 에 macOS 와 tmux 가 필요합니다. tmux 밖(일반 터미널)에서 띄운 세션은 볼 수만 있고, 웹의 「tmux 로 이어 열기」로 열어야 제어됩니다.
  • 회사 서버에는 Tomcat 11(Java 21)과 PostgreSQL 이 필요합니다. 웹 콘솔은 회사의 HTTPS 프록시 뒤에 두고, Agent 연결은 사내망(VPN) 안에서만 엽니다.
  • Claude Code 와 Ollama 계정은 각 Mac 에서 쓰던 것을 그대로 씁니다. 계정과 요금은 지금처럼 각 서비스와의 계약을 따릅니다.
  • Claude Code 의 기록 형식 · hook · 화면은 버전마다 바뀝니다. 확인한 버전(현재 2.1.288~2.1.289)에 맞춰 Agent 를 갱신하고, 갱신은 웹의 「지금 업데이트」로 각 Mac 에 보냅니다.
  • 사용량의 비용은 API 단가로 환산한 추정치입니다. 구독 요금이나 실제 청구액이 아닙니다.

SSemTong Console 도입을 검토 중이신가요?

개발자 수와 쓰고 계신 Mac · 서버 환경을 알려 주시면 맞는 구성을 안내해 드립니다. 가격과 도입 조건도 문의로 안내합니다.

도입 문의

halo@levelupsoft.com+82 10-8472-4070

사내 서버 설치를 기본으로 합니다 · Levelupsoft Inc.