ml-cli is a command-line interface for the MoreLogin local httpServer. It translates CLI arguments into HTTP requests and forwards them to the local APIs exposed by the MoreLogin client.
Who is it for? DevOps engineers, QA automation engineers, and developers who prefer working in the terminal or need to integrate MoreLogin into CI/CD pipelines (such as GitHub Actions, Jenkins, or shell scripts).
What can it do?
- Call MoreLogin local APIs directly from a terminal without writing HTTP request code.
- Manage browser environments, proxies, cloud phones, and schedules from one unified interface.
- Use stable CLI flags instead of manually building JSON payloads.
How to start?
- Read the Prerequisites below.
- Download and install the CLI for your platform.
- Check the Quick Start to run your first command.
Before using ml-cli, make sure the following requirements are met:
- MoreLogin desktop client is installed and running on the same machine
- You have an active MoreLogin account with API credentials (API ID + API Key)
Download the latest ml-cli binary for your platform:
| Platform | Architecture | Link |
|---|---|---|
| Windows | x64 | download |
| macOS | x64 (Intel) | download |
| macOS | arm64 (Apple Silicon) | download |
| Linux | x64 | download |
Create a directory for the CLI, for example
C:\Program Files\MoreLogin\:New-Item -ItemType Directory -Force -Path "C:\Program Files\MoreLogin"Move the downloaded
ml-cli.exeinto that directory.Add the directory to your system
PATH:# Add to the current user's PATH permanently $currentPath = [Environment]::GetEnvironmentVariable("Path", "User") [Environment]::SetEnvironmentVariable("Path", "$currentPath;C:\Program Files\MoreLogin", "User")Restart your terminal (or open a new one) for the change to take effect.
Verify:
ml-cli --version
Make the binary executable:
chmod +x ml-cliMove it to a directory in your
PATH:sudo mv ml-cli /usr/local/bin/If
/usr/local/bindoes not exist, create it first:sudo mkdir -p /usr/local/binOn macOS, the downloaded binary may be blocked by Gatekeeper. Remove the quarantine attribute:
xattr -d com.apple.quarantine /usr/local/bin/ml-cliVerify:
ml-cli --version
Make the binary executable:
chmod +x ml-cliMove it to a directory in your
PATH:sudo mv ml-cli /usr/local/bin/Verify:
ml-cli --version
Once installed, see Quick Start to connect to the MoreLogin client and run your first command.
The current CLI covers these resource groups:
- service status and login
- browser environment management via
env - cloud phone management via
cloudphone - group management via
group - tag management via
tag - proxy management via
proxy - cloud phone schedule management via
schedule
The CLI supports two input styles:
- explicit flags, such as
--env-idor--group-name - raw JSON via
--json-data
They can be combined. The merge rules are:
--json-dataprovides the base request body- explicit CLI flags override matching keys from
--json-data
This is useful for endpoints with many fields or nested payloads where dedicated flags would be too heavy.
| Code | Meaning |
|---|---|
0 | The HTTP request completed and a response was received. Check the JSON body for business success or failure. |
1 | Local CLI validation failed, or the command is not supported on the current platform. |
2 | Port resolution failed, JSON parsing failed, or the request could not be sent. |
The CLI needs to find the local httpServer port to send requests. It checks in this order:
--portflag — explicitly pass the port on every callML_PORTenvironment variable — set once per session- IPC auto-discovery — the CLI reads the port from a local IPC pipe (no configuration needed)
Default IPC paths:
| Platform | Path |
|---|---|
| macOS / Linux | /tmp/MoreLogin-cli |
| Windows | \\.\pipe\MoreLogin-cli |
If you see the error "Could not detect MoreLogin port", check:
- Is the MoreLogin desktop client running?
- If using
--port, is the port number correct? - On Linux / macOS, does
/tmp/MoreLogin-cliexist?