본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

MyTerminal

0

MyTerminal은 Rust, Tauri 2, React로 구축된 데스크톱 SSH 터미널 관리 도구입니다.

다운로드서버 관리업로드콘솔터미널파일 전송

소개

MyTerminal은 Rust, Tauri 2, React로 구축된 데스크톱 SSH 터미널 관리 도구입니다. 터미널 탭, 점프 호스트와 프록시를 지원하는 SSH 프로필, SFTP 파일 관리 및 원격 편집, 로컬 포트 포워딩, WebDAV 백업 기능을 한 화면에 통합합니다. 개발자와 운영자가 무거운 원격 터미널 도구 대신 가볍고 개방적인 대안을 사용하도록 설계되었습니다.

상세정보

SSH 프로필 및 라우팅

  • SSH 프로필 관리: 세션을 열기 전에 연결 항목을 생성, 편집, 그룹화, 복제, 이동, 정렬, 테스트할 수 있습니다.
  • Windows 원격 데스크톱(RDP): RDP 항목을 SSH 프로필과 함께 저장하고 시스템 원격 데스크톱 클라이언트로 열 수 있습니다. 비밀번호는 명령줄에 전달되지 않고 세션 범위의 Windows 자격 증명으로 기록됩니다.
  • 연결 유형 아이콘: SSH 터미널과 RDP 항목을 구분하는 일관된 아이콘을 사용하며 두 유형은 동일한 그룹 트리와 정렬을 공유합니다.
  • 비밀번호 및 개인 키 인증: 비밀번호, 키 파일, 붙여넣은 개인 키 내용으로 연결할 수 있으며 패스프레이즈와 비밀 가시성 토글이 지원됩니다.
  • 점프 호스트: 순서가 있는 SSH 점프 호스트 체인을 구성하고 터미널, 파일 작업, 터널, MCP Bridge 세션에서 동일한 라우팅 모델을 재사용합니다.
  • 첫 홉 프록시: SOCKS5 또는 HTTP CONNECT 프록시를 통해 첫 SSH 홉을 라우팅하며 프록시 인증을 선택할 수 있습니다.
  • 안전한 연결 정리: 탭 닫기, 프로필 삭제, 앱 종료 시 관련 터미널 세션, 보조 SSH 세션, 터널, CLI 브리지 프로세스가 함께 정지됩니다.

터미널 작업 공간

  • 탭 기반 SSH 터미널: 여러 PTY 세션을 열고 탭을 재정렬하거나 제자리에서 재연결하고 세션을 닫을 수 있으며 세션 제목이 활성 SSH 프로필과 연결됩니다.
  • 드래그하여 분할: 탭 바에서 터미널 영역으로 탭을 드래그해 분할할 수 있습니다. 2×2 그리드 기반으로 최대 4개 패널, 전체 화면, 좌/우, 상/하, 3패널, 4패널 배치가 가능합니다.
  • 패널별 탭 바: 각 패널은 자체 탭 바와 독립적인 정렬을 가지며 SSH와 로컬 터미널을 자유롭게 혼합할 수 있습니다.
  • 비차단 연결 시작: 새 SSH 탭이 즉시 연결 상태로 진입하고 SSH 핸드셰이크와 인증은 백그라운드에서 진행됩니다.
  • 대화형 입력 처리: 인쇄 가능한 입력은 WebView-Rust IPC 부하를 줄이기 위해 약간 배치되며 Enter, Tab, 제어 시퀀스, 편집 키는 즉시 플러시됩니다.
  • 우클릭 작업: 복사·붙여넣기 메뉴 또는 우클릭 시 직접 붙여넣기 동작을 설정할 수 있습니다.
  • 줄 번호 및 타임스탬프 거터: 거터에서 논리적 줄 번호와 각 줄 도착 시간을 토글할 수 있습니다.
  • 선택 항목 강조: 터미널에서 텍스트를 선택하면 스크롤백의 동일 내용이 강조되며 외관 설정에서 끌 수 있습니다.
  • 프롬프트 구문 강조: 사용자, 호스트, 경로, 기호 영역이 라이트/다크 테마별로 구분되어 색상이 적용됩니다.
  • 시스템 클립보드 연동: 앱 내 복사·잘라내기가 Windows 시스템 클립보드에 기록되며 터미널 붙여넣기는 네이티브 채널을 통해 읽힙니다.

로컬 터미널 및 AI CLI

  • 로컬 터미널 탭: 가짜 명령 출력 뷰가 아닌 ConPTY/portable-pty 기반의 네이티브 로컬 PTY 세션을 엽니다.
  • AI CLI 실행: 선택한 작업 디렉터리에서 Claude Code, Codex, opencode 또는 사용자 지정 로컬 명령을 시작합니다.
  • 순수 셸 모드: AI CLI를 실행하지 않고 구성된 셸을 직접 여는 내장 로컬 터미널 명령을 선택할 수 있습니다.
  • 로컬 전용 설정: 로컬 셸 경로, 명령 프리셋, 디렉터리 기록은 local-terminals.json에 저장되며 WebDAV 동기화 패키지에 포함되지 않습니다.

SFTP 파일 및 편집

  • 원격 파일 탐색: 실제 SFTP 작업을 통해 디렉터리 조회, 메타데이터 확인, 폴더 생성, 삭제, 이름 변경, 새로 고침, 이동이 가능합니다.
  • 드래그 앤 드롭 업로드: 로컬 파일이나 폴더를 SFTP 탐색 영역에 드롭하면 폴더는 재귀적으로 업로드됩니다.
  • 일괄 전송: 여러 원격 파일/폴더를 다운로드하거나 여러 로컬 경로를 업로드할 수 있으며 동일 이름의 로컬 다운로드는 고유한 대상으로 생성됩니다.
  • 연결 재사용: 파일 탐색, 전송, 원격 편집, 런타임 조회, 기록 읽기가 보조 SSH/SFTP 세션을 재사용합니다.
  • 원격 파일 편집기: 내장 Monaco 편집기로 원격 파일을 편집하고 저장 시 SFTP로 다시 기록합니다.
  • MCP/CLI 파일 도구: AI 클라이언트는 승인된 브리지 작업을 통해 원격 경로 목록, 읽기, 쓰기, 업로드, 다운로드, 삭제, 이름 변경, 생성을 수행할 수 있습니다.

런타임 및 터널

  • 런타임 개요: 활성 SSH 프로필에 대해 원격 CPU, 메모리, 루트 파일 시스템 사용량, 연결 수, 업타임, OS 정보를 가져오며 각 항목은 사용률에 따라 색상이 구분됩니다.
  • 코어별 CPU 상세: CPU 항목을 확장하면 개별 코어별 사용률을 볼 수 있습니다.
  • 상위 리소스 소비 항목: 메모리 항목을 확장하면 프로세스/스레드별로 메모리 또는 CPU 기준으로 정렬 가능한 무거운 항목이 표시됩니다.
  • 다중 리소스 소스: 설정에서 시스템 프로세스, Docker, Podman, Kubernetes 간에 리소스 통계 소스를 전환할 수 있으며 Kubernetes 소스는 모든 네임스페이스의 Pod 수준 CPU/메모리를 보고합니다.
  • 가장 큰 파일 조회: 스토리지 항목을 확장하면 시간 제한 스캔으로 원격 호스트의 가장 큰 파일을 전체 경로와 함께 찾습니다.
  • 로컬 포트 포워딩: 사용자 지정 바인드 주소와 대상 호스트로 SSH 로컬 포워딩 규칙을 생성, 편집, 시작, 중지할 수 있습니다.
  • 터널 수명 주기 관리: 실행 중인 터널 기록은 터미널 세션과 별도로 추적되어 깨끗하게 중지할 수 있습니다.

내장 AI 어시스턴트

  • AI 채팅 패널: 축소 가능한 오른쪽 사이드바에서 스트리밍 출력, 중지, 새 대화를 지원하는 AI 대화를 호스팅하며 채팅 기록은 로컬에 저장됩니다.
  • 여러 엔드포인트 및 모델: 컨텍스트 창과 출력 한도가 다른 여러 AI 엔드포인트와 모델을 구성할 수 있으며 API 키는 저장 시 암호화됩니다.
  • 세 가지 API 프로토콜: Anthropic Messages, OpenAI Chat Completions, OpenAI Responses를 지원하며 설정 페이지에서 해결된 요청 URL을 미리 볼 수 있습니다.
  • 사고 수준 및 자동 압축: 턴별로 사고 수준을 선택하고 예상 토큰이 임계값을 넘으면 이전 메시지를 요약으로 접어 자동 압축할 수 있습니다.
  • 원격 호스트에 대한 AI 작업: 어시스턴트가 연결 목록 조회, 명령 실행, 전체 원격 파일 도구 세트를 사용할 수 있으며 외부 MCP 클라이언트와 동일한 승인 정책이 적용됩니다.
  • 실제 터미널에서 명령 실행: AI 명령은 표시되는 터미널 탭에 입력되고 [AI] 접두사와 함께 표시됩니다.

MCP 브리지 및 AI 승인

  • AI 코딩 도구를 위한 MCP 브리지: 로컬 CLI + MCP + GUI Broker 브리지를 통해 Claude Code, Codex 등 MCP 클라이언트가 저장된 SSH 프로필을 사용할 수 있습니다.
  • 연결 검색: MCP 클라이언트는 이름, 그룹 경로, 호스트, 포트, 사용자 이름, 메모와 같은 비공개 메타데이터로 저장된 SSH 프로필을 나열할 수 있습니다.
  • 브리지 세션: MCP 클라이언트는 연결 ID 또는 고유 연결 이름으로 논리적 SSH 브리지 세션을 열고 닫고 명령이나 파일 작업을 실행할 수 있습니다.
  • GUI 승인 실행: 원격 명령, 업로드, 다운로드, 쓰기, 삭제, 이름 변경, 디렉터리 생성 요청은 기본적으로 MyTerminal에서 승인을 위해 표시됩니다.
  • 자동 실행 제어: 글로벌 자동 실행을 활성화하거나 MCP 설정 페이지에서 선택한 SSH 연결에 대해서만 허용할 수 있습니다.

동기화, 백업, 업데이트

  • 수동 WebDAV 동기화: 머신 간 이동 시 앱 설정과 SSH 프로필을 별도로 업로드/다운로드합니다.
  • 로컬 가져오기/내보내기: JSON 구성 패키지를 내보내고 복원하며 가져오기 전에 자동으로 로컬 백업을 수행합니다.
  • 데스크톱 업데이트 흐름: GitHub 릴리스를 확인하고 설치 프로그램 자산을 감지해 다운로드한 다음 앱 내에서 설치 프로그램을 실행합니다.
  • 프록시 인식 업데이트 확인: 업데이트 HTTP 요청은 시스템 프록시 설정을 존중하며 보수적인 연결, 읽기, 전체 시간 초과를 사용합니다.

데스크톱 경험

  • 영문과 중국어 간체 UI 전환을 지원합니다.
  • 테두리 없는 창에 맞춤 제목 표시줄이 있으며 사이드바 토글, 새 연결, 연결 관리자, 로컬 터미널, 업데이트 확인, 테마 전환, 설정, 창 제어를 호스팅합니다.
  • 외관 설정: 라틴 폰트, CJK 폰트, 글꼴 크기, 줄 높이를 터미널과 AI 채팅 영역에 대해 별도로 설정할 수 있습니다. JetBrains Mono와 Maple Mono는 앱 범위 옵션 폰트 팩으로 제공되며 Windows에 설치되지 않습니다.
  • 점진적 시작: 터미널 코어와 AI 채팅 패널은 주문에 따라 로드되며 AI 사이드바는 처음 펼칠 때까지 로드되지 않습니다.
  • 시스템 트레이 지원과 로컬 우선 저장(설정과 SSH 프로필 로컬 저장, 비밀은 앱 내 암호화 처리)이 지원됩니다.

소스에서 실행

저장소를 클론한 후 다음 명령으로 개발 모드를 실행합니다.

  • npm install로 프런트엔드 의존성을 설치합니다.
  • npm run check:env로 Node, npm, cargo, Perl, link.exe 환경을 확인합니다.
  • npm run tauri:dev로 Tauri 개발 환경을 시작합니다.

설치 프로그램 빌드

  • npm run package를 실행하면 src-tauri/target/release/bundle/ 아래에 빌드 결과물이 생성됩니다.

정식 Windows 설치 프로그램은 GitHub 릴리스 페이지에 게시되며 winget에서는 winget install --id CrazyFigure.MyTerminal --exact로 설치할 수 있습니다.

Q. MyTerminal은 어떤 기술 스택으로 만들어졌나요?

Tauri 2 기반 데스크톱 셸에 Rust 백엔드(ssh2, reqwest, AES-GCM, 로컬 JSON 영속화)와 React + TypeScript + Vite + Zustand 프런트엔드를 사용합니다. 터미널과 편집기는 xterm.js, portable-pty, Monaco Editor로 구현되었습니다.

Q. 어떤 AI API 프로토콜을 지원하나요?

Anthropic Messages, OpenAI Chat Completions, OpenAI Responses 세 가지 프로토콜을 지원하며 여러 엔드포인트와 모델을 각각 구성할 수 있습니다.

Q. MCP 브리지는 어떻게 활성화하나요?

설정 > MCP에서 브리지를 활성화하며 활성화 상태와 자동 실행 정책은 MyTerminal 재시작 시에도 유지됩니다. MCP 클라이언트 구성은 설정 > MCP > 사용법에서 JSON을 복사해 사용할 수 있습니다.

시스템 요구사항

  • Windows 10/11 SDK
  • Visual Studio Build Tools 2022
  • Rust stable(MSVC 도구체인 포함)
  • Node.js 20.19 이상 또는 22.12 이상
  • npm 9 이상
  • Windows에서 벤더 OpenSSL이 필요한 경우 Strawberry Perl