Melso Docs

데스크톱 앱

Melso Desktop을 설치하고 데스크톱 탭과 내장 데몬을 사용하며 자체 호스팅 인스턴스에 연결합니다.

Melso Desktop은 macOS, Windows, Linux에서 사용할 수 있습니다. Web 버전과 같은 계정 및 워크스페이스 데이터를 사용하지만 로컬 데몬을 자동으로 관리하고 워크스페이스별 탭을 따로 유지합니다.

Desktop과 Web

WebDesktop
여는 방법브라우저데스크톱 앱 설치
워크스페이스 탭브라우저 탭 사용워크스페이스별 독립 탭 모음 유지
데몬CLI를 별도로 설치하고 시작로그인 후 앱이 자동으로 시작
업데이트페이지 새로 고침데스크톱 앱을 통해 업데이트

잠시 확인하거나 공용 컴퓨터에서 사용할 때는 Web이 더 편리합니다.

둘 다 동시에 로그인할 수 있습니다. 같은 Melso 서비스에 연결되어 있으면 표시되는 데이터가 공유됩니다.

설치

Melso 다운로드 페이지에서 운영체제와 프로세서 아키텍처에 맞는 설치 패키지를 선택합니다.

플랫폼설치 패키지
macOS.dmg
Windows.exe
Linux.AppImage, .deb, .rpm

설치 후 Web 버전과 같은 이메일로 로그인합니다. 로그인하면 Desktop이 내장 Melso CLI를 시작하고 로컬에 설치된 AI 코딩 도구를 감지합니다.

Desktop 내장 CLI는 앱이 런타임을 관리할 때만 사용합니다. 터미널에서 melso issue 같은 명령도 실행하려면 빠른 시작 2단계에 따라 CLI를 별도로 설치하세요.

데스크톱 탭

Desktop은 워크스페이스마다 탭을 따로 저장합니다. 예를 들어 워크스페이스 A에서 이슈 세 개를 연 뒤 워크스페이스 B로 전환하면 B의 탭이 표시됩니다. A로 돌아오면 이전 세 탭이 그대로 남아 있습니다.

같은 리소스는 현재 워크스페이스에서 한 번만 열립니다. 탭은 순서를 바꾸고, 고정하고, 닫을 수 있으며 각각의 앞으로 가기, 뒤로 가기, 스크롤 위치도 유지됩니다. 현재 배포 환경의 앱 링크를 클릭하거나 붙여 넣으면 브라우저로 이동하지 않고 탭에서 바로 열립니다.

로그아웃하면 로컬에 저장된 모든 탭이 삭제되어 다음 로그인 사용자가 이전 계정의 페이지를 보지 못합니다.

내장 데몬

로그인하면 Desktop이 현재 Melso 서비스 전용 CLI profile을 만들고 이 profile로 데몬을 시작합니다. profile은 다음 위치에 있습니다.

~/.multica/profiles/desktop-<host>/

터미널에서 사용하는 기본 profile을 읽거나 덮어쓰지 않습니다. 다른 데몬을 직접 동시에 시작하면 Melso에는 각각 별도 런타임으로 표시됩니다.

Desktop 설정에서 실행 상태와 로그를 확인할 수 있습니다. 도구가 감지되지 않으면 먼저 일반 터미널에서 실행되고 로그인되어 있는지 확인한 뒤 Desktop 데몬을 다시 시작하세요.

Desktop 업데이트

자동 업데이트는 기본으로 켜져 있습니다. 앱이 백그라운드에서 새 버전을 확인하고 다운로드합니다. 다운로드가 끝나면 즉시 다시 시작해 설치하거나 다음 종료 시 설치할 수 있습니다. 설정 → 업데이트에서 자동 확인을 끄거나 새 버전을 직접 확인할 수도 있습니다.

업데이트는 운영체제와 프로세서 아키텍처에 따라 배포됩니다.

  • Windows arm64와 macOS x64(Intel)는 각각 별도 업데이트 소스를 사용합니다.
  • 나머지 아키텍처는 기본 업데이트 소스를 사용합니다.
  • 앱이 업데이트 소스를 자동으로 맞추므로 직접 선택할 필요가 없습니다.
  • Linux 자동 업데이트는 .AppImage에서만 작동합니다. .deb.rpm은 새 설치 패키지를 내려받아 덮어씁니다.
  • 자동 업데이트에 실패해도 다운로드 페이지에서 해당 설치 패키지를 받아 덮어쓸 수 있습니다.

자체 호스팅 인스턴스 연결

Desktop은 기본적으로 Melso Cloud에 연결됩니다. 자체 호스팅 인스턴스에 연결하려면 사용자 디렉터리의 .multica 안에 desktop.json을 만듭니다.

플랫폼경로
macOS/Users/<사용자>/.multica/desktop.json
Linux/home/<사용자>/.multica/desktop.json
WindowsC:\Users\<사용자>\.multica\desktop.json

위 경로는 기본 위치입니다. 홈 디렉터리를 옮겼거나 리디렉션한 경우에는 실제 경로를 사용하세요.

{
  "schemaVersion": 1,
  "apiUrl": "https://api.example.com"
}

이 파일은 CLI의 ~/.multica/config.json다른 파일이며 키 이름도 다릅니다. CLI는 server_url을, Desktop은 apiUrl을 사용합니다. Desktop은 CLI 설정을 읽지 않고 ~/.multica/profiles/desktop-<host>/ 아래에 별도의 daemon 프로필을 관리합니다. config.json을 수정해도 Desktop이 연결하는 서버는 바뀌지 않습니다.

apiUrl은 backend의 공개 주소로 필수이며 http 또는 https를 사용해야 합니다. 다음 두 주소는 생략할 수 있으며 Desktop이 자동으로 추론합니다.

  • wsUrl: apiUrl의 프로토콜을 ws 또는 wss로 바꾸고 경로 뒤에 /ws를 추가합니다.
  • appUrl: 도메인이 api.로 시작하고 세 구간 이상이면 api. 접두사를 제거합니다(api.example.comexample.com). 그렇지 않으면 apiUrl과 동일하게 유지합니다.

보통 apiUrl만 작성하면 됩니다. 추론 결과가 맞지 않을 때 명시적으로 덮어쓰면 됩니다. 일반적인 경우는 세 가지입니다.

  • Web과 API가 서로 다른 도메인을 사용
  • WebSocket을 별도로 배포
  • 도메인이 접두사 제거 규칙을 만족하지 않음(api.local 같은 두 구간 도메인은 접두사를 제거하지 않음)
{
  "schemaVersion": 1,
  "apiUrl": "https://api.example.com",
  "appUrl": "https://app.example.com",
  "wsUrl": "wss://ws.example.com/socket"
}

저장한 뒤 Desktop을 다시 시작합니다. 이 설정은 시작할 때 한 번만 읽습니다. 두 가지 실패는 다르게 나타나므로 이를 보고 빠르게 구분할 수 있습니다.

  • 파일을 찾지 못한 경우(디렉터리가 다르거나 파일 이름이 desktop.json이 아닌 경우): Desktop은 기본 Cloud 설정을 사용하고 오류를 표시하지 않습니다. 따라서 Desktop이 여전히 Cloud 주소를 표시하고 설정 오류도 없다면, 파일이 Desktop이 찾는 위치에 없다는 뜻입니다.
  • 파일은 찾았지만 유효하지 않은 경우(JSON, 버전, URL에 문제가 있는 경우): Desktop에 설정 오류가 표시되며 Cloud로 자동 폴백하지 않습니다.

해당 파일을 삭제하고 다시 시작하면 기본 Cloud 설정으로 돌아갑니다.

Desktop은 브라우저와 실행 컴퓨터에서 모두 접근할 수 있는 주소에만 연결할 수 있습니다. 원격 자체 호스팅 인스턴스에 HTTPS가 없거나 WebSocket 프록시가 설정되지 않으면 Desktop이 연결되지 않습니다. 전체 설정은 자체 호스팅 빠른 시작을 참고하세요.

Windows: 파일 이름과 인코딩 확인

Windows에서는 편집기의 두 가지 기본 동작 때문에 Desktop이 사용할 수 없는 파일이 조용히 만들어집니다.

  • 메모장이 .txt를 덧붙입니다. desktop.json으로 저장해도 실제로는 desktop.json.txt가 될 수 있으며, Desktop은 이를 파일이 없는 것으로 처리합니다. 파일 탐색기에서 파일 확장명 표시를 켜거나 저장 대화 상자에서 모든 파일을 선택하세요. 실제 파일 이름을 확인하려면 PowerShell에서 Get-ChildItem "$env:USERPROFILE\.multica" -Filter "desktop.json*"를 실행하세요. Name 열이 정확히 desktop.json이어야 합니다.
  • PowerShell 리디렉션은 UTF-16이나 BOM을 씁니다. > desktop.jsonOut-File은 파싱할 수 없는 인코딩을 만들 수 있으며, 설정 오류로 나타납니다.

두 가지를 모두 피하려면 PowerShell에서 한 번에 파일을 만듭니다.

$dir = "$env:USERPROFILE\.multica"
New-Item -ItemType Directory -Force $dir | Out-Null
$json = @'
{
  "schemaVersion": 1,
  "apiUrl": "https://api.example.com"
}
'@
[System.IO.File]::WriteAllText("$dir\desktop.json", $json)

Windows Defender가 Melso를 바이러스로 탐지하는 경우

증상: Windows 보안이 Trojan:Script/Wacatac.B!ml 같은 위협을 보고하고 Desktop 설치 경로 안의 파일을 격리합니다. 격리되는 대상은 보통 앱 실행 파일이 아니라 함께 포함된 CLI입니다.

C:\Users\<사용자>\AppData\Local\Programs\@multicadesktop\resources\app.asar.unpacked\resources\bin\multica.exe

Melso의 프로덕션 Windows 빌드는 Authenticode로 서명되며 릴리스 워크플로가 게시 전에 서명을 검증합니다. Defender가 계속 경고하면 Windows에 유효한 Melso 게시자 서명이 표시되는지, SHA-256이 공개 체크섬과 일치하는지 먼저 확인하세요. 둘 중 하나라도 실패하면 제외 항목을 추가하지 마세요.

직접 검증할 수 있습니다 — Melso 공개 릴리스 채널은 모든 CLI 아카이브의 checksums.txt를 제공합니다.

Get-FileHash .\multica-cli-<version>-windows-amd64.zip -Algorithm SHA256

출력된 해시를 공개된 checksums.txt의 해당 줄과 비교하세요.

해결 방법:

  1. 격리된 파일 복원 — Windows 보안 → 바이러스 및 위협 방지보호 기록 → Melso 항목 선택 → 작업복원.

  2. 제외 항목 추가 (다시 격리되지 않도록) — 바이러스 및 위협 방지설정 관리제외제외 추가 또는 제거폴더에서 다음 두 경로를 모두 추가합니다.

    • %LOCALAPPDATA%\Programs\@multicadesktop
    • %APPDATA%\Melso

    두 경로 모두 필요합니다. 포함된 CLI가 사라지면 Desktop이 대체 바이너리를 %APPDATA%\Melso\bin에 내려받기 때문에, 설치 폴더만 제외하면 새로 받은 파일이 다시 격리되는 상황이 반복됩니다.

  3. 오탐을 Microsoft에 신고Microsoft Security Intelligence 파일 제출 페이지에서 Software developerIncorrectly detected as malware를 선택하세요. 모든 사용자에 대해 탐지를 철회시키는 방법은 이것이며, 보통 며칠 안에 반영됩니다.

이 제외 항목은 다운로드 페이지에서 설치했고 서명이 유효하며 체크섬이 일치하는 경우에만 추가하세요. 제외를 설정하면 해당 폴더 안의 모든 파일에 대해 실시간 보호가 꺼집니다.

다음 단계