9.5 KiB
CLI Reference
The Mosis CLI (mosis) is a command-line tool for building, testing, and publishing Mosis apps.
Installation
Windows
Download the installer from your Developer Dashboard or use:
# Using winget
winget install omixlab.mosis-cli
# Or download directly
curl -o mosis-cli.exe https://dl.omixlab.com/cli/windows/mosis.exe
macOS
# Using Homebrew
brew install omixlab/tap/mosis-cli
# Or download directly
curl -fsSL https://dl.omixlab.com/cli/macos/mosis > /usr/local/bin/mosis
chmod +x /usr/local/bin/mosis
Linux
# Download binary
curl -fsSL https://dl.omixlab.com/cli/linux/mosis > ~/.local/bin/mosis
chmod +x ~/.local/bin/mosis
# Or using snap
sudo snap install mosis-cli
Quick Start
# Create a new project
mosis init myapp
# Build the package
cd myapp
mosis build
# Test locally
mosis run
# Login and publish
mosis login
mosis publish
Commands
mosis init
Create a new Mosis app project.
mosis init <name> [options]
Arguments:
name- Project name (creates directory)
Options:
| Option | Description |
|---|---|
--template <name> |
Use a starter template |
--package-id <id> |
Set package ID |
--no-git |
Don't initialize git repo |
Templates:
default- Basic app structureminimal- Bare minimum filesnavigation- Multi-screen with navigationform- Form handling examplelist- Scrollable list example
Example:
mosis init myapp --template navigation --package-id com.example.myapp
Output:
myapp/
├── manifest.json
├── icon.png
├── assets/
│ ├── main.rml
│ └── styles.rcss
└── .mosis/
└── config.json
mosis build
Build a .mosis package from your project.
mosis build [options]
Options:
| Option | Description |
|---|---|
-o, --output <path> |
Output file path |
--no-sign |
Skip signing (dev only) |
--verbose |
Show detailed output |
--validate-only |
Validate without building |
Example:
mosis build -o dist/myapp.mosis
Build Process:
- Validates manifest.json
- Checks all referenced files exist
- Validates RML/RCSS syntax
- Creates compressed package
- Signs with developer key (if available)
mosis validate
Validate your project without building.
mosis validate [options]
Options:
| Option | Description |
|---|---|
--strict |
Enable strict validation |
--fix |
Auto-fix simple issues |
Checks performed:
- Manifest schema validation
- Required files existence
- Icon sizes and formats
- RML/RCSS syntax
- Lua syntax
- Package size limits
Example output:
✓ manifest.json is valid
✓ All required icons present
✓ Entry point exists: assets/main.rml
✓ RML syntax valid (3 files)
✓ RCSS syntax valid (2 files)
✓ Lua syntax valid (1 file)
✓ Package size: 45KB (under 10MB limit)
Validation passed!
mosis run
Run your app in the local designer for testing.
mosis run [options]
Options:
| Option | Description |
|---|---|
--device <name> |
Target device profile |
--scale <factor> |
Window scale factor |
--hot-reload |
Enable hot reload (default) |
--no-hot-reload |
Disable hot reload |
Device profiles:
phone- Standard phone (1080x1920)tablet- Tablet (1200x1920)watch- Watch (360x360)
Example:
mosis run --device phone --scale 0.5
mosis login
Authenticate with the developer portal.
mosis login [options]
Options:
| Option | Description |
|---|---|
--token <token> |
Use API token directly |
--browser |
Open browser for OAuth |
Interactive login:
$ mosis login
Opening browser for authentication...
✓ Logged in as developer@example.com
Token login (for CI/CD):
mosis login --token YOUR_API_TOKEN
mosis logout
Log out of the developer portal.
mosis logout
mosis publish
Upload and submit your app for review.
mosis publish [options]
Options:
| Option | Description |
|---|---|
--notes <text> |
Release notes |
--notes-file <path> |
Release notes from file |
--draft |
Upload as draft (don't submit) |
--track <name> |
Release track (production/beta) |
Example:
mosis publish --notes "Bug fixes and performance improvements"
Process:
- Builds package (if needed)
- Uploads to portal
- Runs automated validation
- Submits for review (unless
--draft)
mosis status
Check the status of your app submissions.
mosis status [app-id]
Example output:
com.example.myapp
Latest Version: 1.2.0 (code: 5)
Status: In Review
Submitted: 2 hours ago
Previous Versions:
1.1.0 (4) - Published
1.0.0 (1) - Published
mosis keys
Manage signing keys.
mosis keys <subcommand>
Subcommands:
keys generate
Generate a new signing keypair.
mosis keys generate [options]
| Option | Description |
|---|---|
-o, --output <path> |
Output directory |
--name <name> |
Key name |
$ mosis keys generate --name production
Generated keypair:
Private: ~/.mosis/keys/production.key
Public: ~/.mosis/keys/production.pub
Keep your private key secure! Never share it.
keys register
Upload your public key to the portal.
mosis keys register <key-file>
$ mosis keys register ~/.mosis/keys/production.pub
✓ Key registered successfully
Key ID: k_abc123xyz
Algorithm: Ed25519
keys list
List registered keys.
$ mosis keys list
ID Name Created Status
k_abc123xyz production 2024-01-15 Active
k_def456uvw development 2024-01-10 Active
keys revoke
Revoke a registered key.
mosis keys revoke <key-id>
mosis config
Manage CLI configuration.
mosis config <subcommand>
Subcommands:
config get
Get a configuration value.
mosis config get <key>
config set
Set a configuration value.
mosis config set <key> <value>
config list
List all configuration.
$ mosis config list
api_url = https://api.omixlab.com
designer_path = /usr/local/bin/mosis-designer
default_key = production
Configuration keys:
| Key | Description | Default |
|---|---|---|
api_url |
API endpoint | https://api.omixlab.com |
designer_path |
Path to designer | (auto-detected) |
default_key |
Default signing key | (none) |
auto_build |
Build before publish | true |
mosis doctor
Diagnose common issues with your setup.
$ mosis doctor
Checking Mosis CLI installation...
✓ CLI version: 1.2.0
✓ Designer found: /usr/local/bin/mosis-designer
✓ Authenticated as: developer@example.com
✓ Signing key configured: production
✓ Network connectivity OK
All checks passed!
mosis version
Show CLI version information.
$ mosis version
mosis-cli version 1.2.0
Built: 2024-01-15
Go: 1.21.5
mosis help
Show help for any command.
mosis help [command]
mosis <command> --help
Environment Variables
| Variable | Description |
|---|---|
MOSIS_API_URL |
Override API endpoint |
MOSIS_TOKEN |
API token for authentication |
MOSIS_KEY_PATH |
Path to signing key |
MOSIS_NO_COLOR |
Disable colored output |
MOSIS_DEBUG |
Enable debug logging |
Configuration Files
Global Config
Location: ~/.mosis/config.json
{
"api_url": "https://api.omixlab.com",
"default_key": "production",
"auto_build": true
}
Project Config
Location: .mosis/config.json (in project root)
{
"signing_key": "production",
"build_output": "dist/"
}
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
| 3 | Authentication required |
| 4 | Validation failed |
| 5 | Network error |
| 6 | Build failed |
CI/CD Integration
GitHub Actions
name: Publish Mosis App
on:
push:
tags: ['v*']
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Mosis CLI
run: |
curl -fsSL https://dl.omixlab.com/cli/linux/mosis > mosis
chmod +x mosis
sudo mv mosis /usr/local/bin/
- name: Build and Publish
env:
MOSIS_TOKEN: ${{ secrets.MOSIS_TOKEN }}
run: |
mosis build
mosis publish --notes "Release ${GITHUB_REF#refs/tags/}"
GitLab CI
publish:
image: ubuntu:latest
script:
- curl -fsSL https://dl.omixlab.com/cli/linux/mosis > /usr/local/bin/mosis
- chmod +x /usr/local/bin/mosis
- mosis build
- mosis publish --notes "Release $CI_COMMIT_TAG"
only:
- tags
variables:
MOSIS_TOKEN: $MOSIS_TOKEN
Troubleshooting
"Command not found"
Ensure the CLI is in your PATH:
echo $PATH
which mosis
"Authentication failed"
Re-login:
mosis logout
mosis login
"Build failed: Invalid manifest"
Run validation for details:
mosis validate --strict
"Network error"
Check connectivity:
mosis doctor
curl -I https://api.omixlab.com/health
See Also
- Getting Started - First app tutorial
- Publishing Guide - Submission tips
- API Reference - Lua API documentation