Melso Docs

デスクトップアプリ

Melso Desktop をインストールし、デスクトップタブと内蔵デーモンを使い、セルフホストインスタンスに接続します。

Melso Desktop は macOS、Windows、Linux で利用できます。Web 版と同じアカウントとワークスペースデータを使いますが、ローカルマシンのデーモンを自動で管理し、ワークスペースごとに独立したタブのセットを保持します。

Desktop と Web

WebDesktop
開き方ブラウザデスクトップアプリをインストール
ワークスペースのタブブラウザのタブを使用ワークスペースごとに独立したタブのセットを保持
デーモンCLI を別途インストールして起動サインイン後にアプリが自動で起動
更新ページを再読み込みデスクトップアプリ経由で更新

ちょっと確認するだけのときや共用のパソコンでは、Web のほうが手軽です。

両方に同時にサインインできます。同じ Melso サービスに接続している限り、表示されるデータは共有されます。

インストール

Melso ダウンロードページから、OS と CPU アーキテクチャに合ったインストーラーを選びます:

プラットフォームインストーラー
macOS.dmg
Windows.exe
Linux.AppImage.deb または .rpm

インストール後、Web 版と同じメールアドレスでサインインします。サインインすると、Desktop は内蔵の Melso CLI を起動し、マシンにすでにインストールされている AI コーディングツールを検出します。

Desktop に内蔵された CLI は、アプリが管理するランタイム専用です。ターミナルで melso issue などのコマンドも実行したい場合は、クイックスタートのステップ 2に従って CLI を別途インストールしてください。

デスクトップタブ

Desktop はワークスペースごとにタブを保存します。たとえば、ワークスペース A でイシューを 3 つ開いてからワークスペース B に切り替えると、B 自身のタブが表示されます。A に戻ると、先ほどの 3 つのタブがそのまま残っています。

同じリソースは現在のワークスペースで一度しか開きません。タブは並べ替え、ピン留め、クローズができ、それぞれが進む・戻るの履歴とスクロール位置を保持します。このデプロイのアプリリンクをクリックまたは貼り付けると、ブラウザに移動せずタブ内で直接開きます。

サインアウトすると、このマシンに保存されたすべてのタブが消去されるため、次にサインインした人が前のアカウントの残したページを見ることはありません。

内蔵デーモン

サインイン後、Desktop は現在の Melso サービス専用の CLI プロファイルを作成し、それを使ってデーモンを起動します。プロファイルの場所:

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

このプロファイルが、ターミナルで使っているデフォルトのプロファイルを読み取ったり上書きしたりすることはありません。別のデーモンを手動で起動した場合、Melso はそれらを別々のランタイムとして表示します。

ランタイムの状態とログは Desktop の設定で確認できます。ツールが検出されないときは、まず通常のターミナルで動作しサインイン済みであることを確認してから、Desktop のデーモンを再起動してください。

Desktop の更新

自動更新はデフォルトで有効です。アプリはバックグラウンドで新しいバージョンを確認してダウンロードします。ダウンロードが完了したら、すぐに再起動してインストールすることも、次回終了時にインストールさせることもできます。設定 → アップデート で自動確認をオフにしたり、手動で新しいバージョンを確認したりもできます。

更新は OS と CPU アーキテクチャごとに配布されます:

  • Windows arm64 と macOS x64(Intel)は、それぞれ専用の更新フィードを使います。
  • その他のアーキテクチャはデフォルトの更新フィードを使います。
  • アプリが更新フィードを自動で選択するため、手動で選ぶ必要はありません。
  • Linux で自動更新が有効なのは .AppImage だけです。.deb.rpm は新しいパッケージをダウンロードして上書きインストールします。
  • 自動更新が失敗した場合も、同様にダウンロードページから対応するインストーラーを取得して上書きインストールしてください。

セルフホストインスタンスへの接続

Desktop はデフォルトで Melso Cloud に接続します。セルフホストインスタンスに接続するには、ホームディレクトリの .multica の中に desktop.json を作成します:

プラットフォームパス
macOS/Users/<you>/.multica/desktop.json
Linux/home/<you>/.multica/desktop.json
WindowsC:\Users\<you>\.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 はバックエンドの公開アドレスです。必須で、http または https を使う必要があります。残りの 2 つのアドレスは省略でき、Desktop が自動で導出します:

  • wsUrl: apiUrl のスキームを ws または wss に置き換え、パスの末尾に /ws を追加します。
  • appUrl: ホスト名が api. で始まりラベルが 3 つ以上ある場合は api. プレフィックスを取り除きます(api.example.comexample.com)。それ以外は apiUrl と同じままです。

通常は apiUrl だけで十分です。導出結果がデプロイと合わない場合にのみ明示的に上書きします。よくあるのは次の 3 つのケースです:

  • Web アプリと API が異なるドメインにある。
  • WebSocket を別途デプロイしている。
  • ホスト名がプレフィックス除去の規則に合わない(api.local のような 2 ラベルのホストはプレフィックスが残ります)。
{
  "schemaVersion": 1,
  "apiUrl": "https://api.example.com",
  "appUrl": "https://app.example.com",
  "wsUrl": "wss://ws.example.com/socket"
}

保存後に Desktop を再起動します。この設定は起動時に一度だけ読み込まれます。2 つの失敗の現れ方は異なるため、これが切り分けの手がかりになります:

  • ファイルが見つからない(ディレクトリが違う、またはファイル名が desktop.json ではない): Desktop はデフォルトの Cloud 設定を使い、エラーは表示しません。つまり Desktop が Cloud のアドレスを表示したままで設定エラーも出ない場合、ファイルは Desktop が探している場所にありません。
  • ファイルは見つかったが無効(JSON、バージョン、URL のいずれかに問題がある): Desktop は設定エラーを表示し、自動では Cloud にフォールバックしません。

そのファイルを削除して再起動すれば、デフォルトの Cloud 設定に戻ります。

Desktop が接続できるのは、ブラウザと実行マシンの両方から到達できるアドレスだけです。リモートのセルフホストインスタンスが HTTPS を使っていない、または WebSocket をプロキシしていない場合、Desktop は接続を確立できません。完全な設定はセルフホストクイックスタートを参照してください。

Windows: ファイル名とエンコーディングを確認する

Windows では、エディタの 2 つのデフォルト動作が 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 を選択します。すべてのユーザーに対して検出を取り下げてもらうにはこの手順が必要で、通常は数日で反映されます。

これらの除外を追加してよいのは、ダウンロードページからインストールし、署名が有効でチェックサムが一致している場合だけです。除外を設定すると、そのフォルダー内のすべてのファイルでリアルタイム保護が無効になります。

次のステップ