# CLIの概要

`ml-cli` は、MoreLogin ローカル `httpServer` のコマンドライン インターフェイスです。 CLI 引数を HTTP リクエストに変換し、MoreLogin クライアントによって公開されるローカル API に転送します。

## 概要

**誰向けですか?**
DevOps エンジニア、QA 自動化エンジニア、ターミナルでの作業を好む開発者、または MoreLogin を CI/CD パイプライン (GitHub Actions、Jenkins、シェル スクリプトなど) に統合する必要がある開発者。

**何ができるの?**

- HTTP リクエスト コードを記述せずに、端末から直接 MoreLogin ローカル API を呼び出します。
- ブラウザ環境、プロキシ、クラウド電話、スケジュールを 1 つの統合インターフェイスから管理します。
- JSON ペイロードを手動で構築する代わりに、安定した CLI フラグを使用します。


**どのように始めればよいですか?**

1. 以下の**前提条件**をお読みください。
2. ご使用のプラットフォーム用の CLI をダウンロードしてインストールします。
3. [クイック スタート](/ja/cli/quick-start) にチェックを入れて、最初のコマンドを実行します。


## 前提条件

`ml-cli` を使用する前に、次の要件が満たされていることを確認してください。

- **MoreLogin デスクトップ クライアント** が同じマシンにインストールされ、実行されている
- **API 認証情報** (API ID + API キー) を持つアクティブな MoreLogin アカウントをお持ちです


## ダウンロードとインストール

ご使用のプラットフォーム用の最新の `ml-cli` バイナリをダウンロードします。

| プラットフォーム | 建築 | リンク |
|  --- | --- | --- |
| 窓 | x64 | [ダウンロード](https://get.morelogin.com/client/prod/win/x64/2.6.1/ml-cli.exe) |
| macOS | x64 (インテル) | [ダウンロード](https://get.morelogin.com/client/prod/mac/x64/2.6.1/ml-cli) |
| macOS | arm64 (アップルシリコン) | [ダウンロード](https://get.morelogin.com/client/prod/mac/arm64/2.6.1/ml-cli) |
| Linux | x64 | [ダウンロード](https://get.morelogin.com/client/prod/linux/x64/2.6.1/ml-cli) |


### 窓

1. CLI 用のディレクトリ (例: `C:\Program Files\MoreLogin\`) を作成します。

```powershell
New-Item -ItemType Directory -Force -Path "C:\Program Files\MoreLogin"
```
2. ダウンロードした `ml-cli.exe` をそのディレクトリに移動します。
3. ディレクトリをシステム `PATH` に追加します。

```powershell
# Add to the current user's PATH permanently
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$currentPath;C:\Program Files\MoreLogin", "User")
```
4. 変更を有効にするには、**ターミナルを再起動** (または新しいターミナルを開きます) してください。
5. 確認する：

```powershell
ml-cli --version
```


### macOS

1. バイナリを実行可能ファイルにします。

```bash
chmod +x ml-cli
```
2. これを `PATH` 内のディレクトリに移動します。

```bash
sudo mv ml-cli /usr/local/bin/
```
> `/usr/local/bin` が存在しない場合は、最初に `sudo mkdir -p /usr/local/bin` を作成します。
3. macOS では、ダウンロードされたバイナリが Gatekeeper によってブロックされる場合があります。隔離属性を削除します。

```bash
xattr -d com.apple.quarantine /usr/local/bin/ml-cli
```
4. 確認:

```bash
ml-cli --version
```


### Linux

1. バイナリを実行可能ファイルにします。

```bash
chmod +x ml-cli
```
2. これを `PATH` 内のディレクトリに移動します。

```bash
sudo mv ml-cli /usr/local/bin/
```
3. 確認:

```bash
ml-cli --version
```


インストールしたら、[クイック スタート](/ja/cli/quick-start) を参照して MoreLogin クライアントに接続し、最初のコマンドを実行します。

## コア機能

現在の CLI は、次のリソース グループをカバーしています。

- サービスのステータスとログイン
- `env` によるブラウザ環境管理
- `cloudphone` によるクラウド電話管理
- `group` によるグループ管理
- `tag` によるタグ管理
- `proxy` によるプロキシ管理
- `schedule` によるクラウド電話のスケジュール管理


## リクエストモデル

CLI は 2 つの入力スタイルをサポートしています。

- `--env-id` や `--group-name` などの明示的なフラグ
- `--json-data` 経由の生の JSON


それらは組み合わせることができます。マージルールは次のとおりです。

- `--json-data` は基本リクエスト本文を提供します
- 明示的な CLI フラグは `--json-data` の一致するキーをオーバーライドします


これは、専用フラグが重すぎる多くのフィールドまたはネストされたペイロードを持つエンドポイントに役立ちます。

## 終了コード

| コード | 意味 |
|  --- | --- |
| `0` | HTTP リクエストが完了し、応答が受信されました。ビジネスの成功または失敗については、JSON 本文を確認してください。 |
| `1` | ローカル CLI 検証が失敗したか、コマンドが現在のプラットフォームでサポートされていません。 |
| `2` | ポート解決に失敗したか、JSON 解析に失敗したか、リクエストを送信できませんでした。 |


## ポートの解決とトラブルシューティング

CLI は、リクエストを送信するためにローカル `httpServer` ポートを見つける必要があります。次の順序でチェックします。

1. `--port` フラグ - すべての呼び出しで明示的にポートを渡します
2. `ML_PORT` 環境変数 — セッションごとに 1 回設定します
3. IPC 自動検出 - CLI はローカル IPC パイプからポートを読み取ります (設定は必要ありません)


デフォルトの IPC パス:

| プラットフォーム | パス |
|  --- | --- |
| macOS / Linux | `/tmp/MoreLogin-cli` |
| 窓 | `\\.\pipe\MoreLogin-cli` |


**「MoreLogin ポートを検出できませんでした」** というエラーが表示された場合は、以下を確認してください。

- MoreLogin デスクトップ クライアントは実行されていますか?
- `--port`を使用している場合、ポート番号は正しいですか?
- Linux / macOS には `/tmp/MoreLogin-cli` は存在しますか?


## ドキュメントマップ

- [クイックスタート](/ja/cli/quick-start)
- [コマンド](/ja/cli/commands)