Miris CLI Documentation
The Miris CLI is an experimental feature. Commands and behavior may change in future releases.
The Miris CLI lets you upload assets, create viewer keys, and manage your account from the terminal.
Prerequisites
You need a Miris account. Create one at app.miris.com before using the CLI.
Installation
Download the latest binary for your platform from the Miris CLI releases page.
macOS / Linux
# Make the binary executable
chmod +x miris
# Move it somewhere on your PATH
mv miris /usr/local/bin/miris
# Verify the install
miris --version
Windows
Download miris.exe from the releases page and add its location to your PATH environment variable.
Authentication
After installing, authenticate with your Miris account. Choose one of the following methods:
OAuth (Google or Email)
miris auth oauth
You'll be prompted to select a provider. The CLI outputs a URL — open it in your browser and complete the login flow. Supported providers:
- Google — sign in with your Google account
- Email — sign in with your Miris email and password
To skip the prompt and specify a provider directly:
miris auth oauth -p google
miris auth oauth -p email
API Key
If you have an API key from the Miris Portal, you can authenticate directly:
miris auth apikey
Table of Contents
- Authentication Commands
- Streaming Asset Management
- Viewer Key Management
- Administrative Commands
- Utility Commands
Authentication Commands
Overview
Commands for account authentication
miris auth
Description: Commands for account authentication
Usage: miris auth [command]
Available Commands:
apikey- Set API Key for authentication usageoauth- Commands for OAuth authentication
miris auth apikey
Description: Set the API Key used for authenticating with the Miris service.
Usage: miris auth apikey [flags]
Flags:
-h, --help- Help for apikey
miris auth oauth
Description: Authenticate using OAuth providers.
Usage: miris auth oauth [flags]
Authentication Flow:
- Run the command (optionally specify a provider with
-pflag) - If no provider is specified, you'll be prompted to select from available providers:
- The command will output an authentication URL
- Copy the URL and paste it into your browser
- Complete the login flow in your browser
- Upon successful authentication, your API key will be configured
Flags:
-h, --help- Help for oauth-p, --provider string- Auth provider (optional - if not provided, you'll be prompted to select from available providers)
Available Providers:
email- Email-based authenticationgoogle- Google OAuth authentication
Examples:
# Interactive mode - select provider from prompt
miris auth oauth
# Authenticate with Google using flag
miris auth oauth -p google
# Authenticate with Email using long flag
miris auth oauth --provider email
Steps to Complete OAuth:
- Run the command with your chosen provider
- Copy the provided authentication URL from the terminal output
- Paste the URL into your web browser
- Complete the OAuth login flow with your selected provider
- After successful authentication, your credentials will be saved
Streaming Asset Management
Overview
Upload, list, get and update streamable assets.
miris asset
Description: Manage asset-related operations
Usage: miris asset [command]
Available Commands:
upload- Upload content for conversion to streamable assetslist- List all assetsget- Get asset detailsupdate- Update asset detailsbulk-update- Bulk update tags for multiple assetsdelete- Delete an asset
miris asset upload
Description: Upload content files that you want to be converted into streamable assets using Miris.
The <path> argument specifies the local file or directory to upload.
Usage: miris asset upload <path> [flags]
Flags:
-h, --help- Help for upload-n, --name string- Name of uploaded content-o, --output string- Output format (Default: human-readable) (default "human-readable")-r, --recursive- Recursively upload files in directories (default true)-t, --tags string- Comma-separated list of tags for the uploaded content
miris asset list
Description: List all streaming assets.
Usage: miris asset list [flags]
Flags:
-h, --help- Help for list-n, --name string- Filter assets by name-o, --order string- Optional: Sort order: asc or desc (default: desc)-p, --plain- Output plain text to stdout-s, --sort string- Optional: Sort by field: created_at, updated_at, or name (default: created_at)-t, --tags stringArray- Filter assets by tags
miris asset get
Description: Get detailed information about a specific streaming asset.
The <asset-id> argument specifies the UUID of the asset to retrieve.
Usage: miris asset get <asset-id> [flags]
Flags:
-h, --help- Help for get
miris asset update
Description: Update information about a specific streaming asset.
Usage: miris asset update <asset-id> [flags]
Flags:
--add-tags stringArray- Add tags to the asset--del-tags stringArray- Delete tags from the asset-h, --help- Help for update--name string- Set the name for the asset--set-tags stringArray- Set tags for the asset
Examples:
# Update asset name
miris asset update <asset-id> --name "New Name"
# Add tags to existing tags
miris asset update <asset-id> --add-tags tag1 --add-tags tag2
# Remove tags from existing tags
miris asset update <asset-id> --del-tags old-tag
# Replace all tags
miris asset update <asset-id> --set-tags new-tag1 --set-tags new-tag2
# Add and remove tags in one operation
miris asset update <asset-id> --add-tags new-tag --del-tags old-tag
# Update multiple fields
miris asset update <asset-id> --name "New Name" --add-tags tag1
miris asset bulk-update
Description: Update tags for multiple assets by IDs or tag filters.
Usage: miris asset bulk-update [flags]
Flags:
--add-tags stringArray- Add tags to existing tags--del-tags stringArray- Remove tags from existing tags-h, --help- Help for bulk-update--set-tags stringArray- Replace all tags with these tags--tags stringArray- Filter assets by tags (to find assets to update)--uuids stringArray- Asset IDs to update
Examples:
# Update specific assets by UUID
miris asset bulk-update --uuids <uuid1> --uuids <uuid2> --add-tags newtag
# Update assets matching tags filter
miris asset bulk-update --tags production --tags video --add-tags archived
# Replace all tags for matching assets
miris asset bulk-update --uuids <uuid> --set-tags final --set-tags approved
# Add and remove tags in one operation
miris asset bulk-update --tags draft --add-tags reviewed --del-tags pending
# Combine UUID and tag filters
miris asset bulk-update --uuids <uuid> --tags production --add-tags processed
miris asset delete
Description: Delete a specific streaming asset.
SAFETY REQUIREMENT: You must provide the --name flag with the exact asset name as it appears in the database. This is a safety measure to prevent accidental deletions.
The command will:
- Fetch the asset details
- Verify the provided name matches exactly
- Delete the asset if the name matches
NOTE: The actual asset files will not be deleted immediately from our CDN, but the asset will no longer be available through the API. Please contact Miris support if you need to undelete an asset.
Usage: miris asset delete <asset-id> [flags]
Flags:
-h, --help- Help for delete-n, --name string- Name of the asset (required - must match exactly for safety)
Examples:
# Delete an asset (will verify name matches)
miris asset delete 123e4567-e89b-12d3-a456-426614174000 --name "My Asset"
# Using abbreviated flag
miris asset delete 123e4567-e89b-12d3-a456-426614174000 -n "My Asset"
Viewer Key Management
Overview
Commands for creating, listing, and managing viewer keys.
miris viewerkey
Description: Commands for creating, listing, and deleting viewer keys.
Usage: miris viewerkey [command]
Available Commands:
create- Create a new viewer keylist- List all viewer keysupdate- Update a viewer keydelete- Delete a viewer keyrevoke- Revoke a viewer key
miris viewerkey create
Description: Create a new viewer key for accessing streaming assets.
Usage: miris viewerkey create [flags]
Flags:
-e, --expires-at string- Expiration date for the viewer key in RFC3339 format (e.g., 2025-12-31T23:59:59Z or 2025-12-31T23:59:59+00:00)-h, --help- Help for create-n, --name string- Name to identify viewer asset key
miris viewerkey list
Description: List all existing viewer keys for accessing streaming assets.
Usage: miris viewerkey list [flags]
Flags:
-a, --all- List all viewer keys, including expired ones-h, --help- Help for list
miris viewerkey update
Description: Update an existing viewer key's properties by its ID.
Usage: miris viewerkey update <uuid> [flags]
Flags:
-e, --expires-at string- (Optional) new expiration date in RFC3339 format (e.g., 2025-12-31T23:59:59Z or 2025-12-31T23:59:59+00:00)-h, --help- Help for update-n, --name string- (Optional) new name for the viewer key--reactivate- (Optional) reactivate a revoked viewer key
miris viewerkey delete
Description: Delete an existing viewer key by its ID.
The <viewer-key-id> argument specifies the UUID of the viewer key to delete.
Usage: miris viewerkey delete <viewer-key-id> [flags]
Flags:
-h, --help- Help for delete
miris viewerkey revoke
Description: Revoke an existing viewer key by its ID.
The <viewer-key-id> argument specifies the UUID of the viewer key to revoke.
Usage: miris viewerkey revoke <viewer-key-id> [flags]
Flags:
-h, --help- Help for revoke
Administrative Commands
Overview
Company management, user management, and permission management commands.
miris company
Description: Manage your company (customer) information.
Usage: miris company [command]
Available Commands:
get- Get company informationupdate- Update your company information
miris company get
Description: Get information about your company (customer).
Usage: miris company get [flags]
Flags:
-h, --help- Help for get
miris company update
Description: Update your company (customer) information.
The command fetches the existing company and merges your changes with existing values. Only provide the flags for fields you want to change.
Usage: miris company update [flags]
Flags:
-h, --help- Help for update-n, --name string- Name of the company-o, --open-invitation string- Enable open invitation (true/false)
Examples:
# Update only the name
miris company update --name "New Acme Corp"
# Update only open invitation
miris company update --open-invitation false
# Update multiple fields
miris company update --name "Acme Corp" --open-invitation true
# Using abbreviated flags
miris company update -n "Acme Corp" -o false
miris user
Description: List, create, get, and update users and manage referral invitations.
Usage: miris user [command]
Available Commands:
list- List all userscreate- Create a new userget- Get user detailsupdate- Update an existing userreferral- Commands for managing Referrals
miris user list
Description: List all users.
Usage: miris user list [flags]
Flags:
-h, --help- Help for list
miris user create
Description: Create a new user.
Usage: miris user create [flags]
Flags:
-e, --email string- Email address of the user (required)-h, --help- Help for create-n, --name string- Name of the user (required)-s, --service- Create a service account, this will ignore the email field
Examples:
# Create a user with name and email
miris user create --email "john@example.com" --name "John Doe"
# Using abbreviated flags
miris user create -e "jane@example.com" -n "Jane Doe"
miris user get
Description: Get detailed information about a specific user by their UUID.
Usage: miris user get <user-id> [flags]
Flags:
-h, --help- Help for get
miris user update
Description: Update an existing user by ID.
Note: --is-active flag is REQUIRED. Leaving permission groups empty will REMOVE ALL permission groups.
Usage: miris user update <user-id> [flags]
Flags:
-h, --help- Help for update--is-active string- Whether the user is active (true/false) - REQUIRED-n, --name string- Name of the user-p, --permission-group-ids int64Slice- Permission group IDs (comma-separated). WARNING: Empty array removes all groups (default [])
Examples:
# Update user name and status
miris user update 123e4567-e89b-12d3-a456-426614174000 --name "John Doe" --is-active true
# Deactivate user
miris user update 123e4567-e89b-12d3-a456-426614174000 --is-active false
# Update permission groups (WARNING: empty array removes all groups)
miris user update 123e4567-e89b-12d3-a456-426614174000 --is-active true --permission-group-ids 1,2,3
# Update multiple fields
miris user update 123e4567-e89b-12d3-a456-426614174000 --name "Jane Doe" --is-active true --permission-group-ids 1,2
miris user referral
Description: Commands for managing Referral Invitations.
Usage: miris user referral [command]
Available Commands:
invitation- Commands for managing Referral Invitations
miris user referral invitation
Description: Create, get, list, update, and report on Referral Invitations.
Usage: miris user referral invitation [command]
Available Commands:
create- Create a new referral invitation (Admin Only)get- Get referral invitation details (Admin Only)list- List all referral invitations (Admin Only)report- Get a report of users who signed up with a referral invitation code (Admin Only)update- Update a referral invitation (Admin Only)
miris user referral invitation create
Description: Create a new referral invitation with the specified details.
Usage: miris user referral invitation create [flags]
Flags:
-c, --code string- Custom invitation code (auto-generated if not provided)-d, --description string- Description of the invitation-e, --expires-at string- Expiration date (formats: MM-DD-YYYY, YYYY-MM-DD, etc.)-h, --help- Help for create-m, --multi-use- Whether the invitation can be used multiple times-n, --name string- Name of the invitation (required)-s, --started-at string- Start date (formats: MM-DD-YYYY, YYYY-MM-DD, etc.)
Examples:
# Create a basic invitation with just a name
miris user referral invitation create --name "Summer Promo"
# Create a multi-use invitation with a custom code
miris user referral invitation create --name "VIP Access" --code "VIP2026" --multi-use
# Create an invitation with a description and expiration date
miris user referral invitation create --name "Beta Testers" --description "Early access for beta testers" --expires-at "12-31-2026"
# Create an invitation with start and expiration dates
miris user referral invitation create --name "Holiday Special" --started-at "12-01-2026" --expires-at "01-01-2027"
miris user referral invitation get
Description: Get detailed information about a specific referral invitation.
Usage: miris user referral invitation get <invitation-id> [flags]
Flags:
-h, --help- Help for get
miris user referral invitation list
Description: List all referral invitations in the system.
Usage: miris user referral invitation list [flags]
Flags:
-h, --help- Help for list
miris user referral invitation update
Description: Update an existing referral invitation with the specified details.
Usage: miris user referral invitation update <invitation-id> [flags]
Flags:
-d, --description string- Description of the invitation-e, --expires-at string- Expiration date (formats: MM-DD-YYYY, YYYY-MM-DD, etc.)-h, --help- Help for update-a, --is-active string- Whether the invitation is active (true/false)-m, --multi-use string- Whether the invitation can be used multiple times (true/false)-n, --name string- Name of the invitation-s, --started-at string- Start date (formats: MM-DD-YYYY, YYYY-MM-DD, etc.)
Examples:
# Update the name of an invitation
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --name "New Name"
# Update the description
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --description "Updated description"
# Deactivate an invitation
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --is-active false
# Enable multi-use for an invitation
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --multi-use true
# Update the expiration date
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --expires-at "12-31-2026"
# Update multiple fields at once
miris user referral invitation update 550e8400-e29b-41d4-a716-446655440000 --name "VIP Access" --is-active true --expires-at "06-30-2026"
miris user referral invitation report
Description: Get a report showing all users who signed up using a specific referral invitation code.
Usage: miris user referral invitation report <invitation-code> [flags]
Flags:
-h, --help- Help for report
miris permission
Description: List and manage permission groups.
Usage: miris permission [command]
Available Commands:
list-groups- List all permission groups
miris permission list-groups
Description: List all permission groups in the system.
Usage: miris permission list-groups [flags]
Flags:
-h, --help- Help for list-groups
Utility Commands
Overview
ID lookup utilities and update management commands.
miris id
Description: Find and identify UUIDs across different entity types.
Usage: miris id [command]
Available Commands:
find- Find what entity type a UUID belongs to
miris id find
Description: Find and display information about a UUID by checking if it belongs to:
- Customer (dev mode only)
- User (Person)
- Asset
The command will check each entity type in order and display the first match found.
Usage: miris id find <uuid> [flags]
Flags:
-h, --help- Help for find
Example:
miris id find 123e4567-e89b-12d3-a456-426614174000
miris update
Description: Check for updates and update miris to the latest version from GitHub releases.
Usage: miris update [flags]
Flags:
-h, --help- Help for update-s, --skip-prompt- Skip confirmation prompt and update automatically
Global Flags
Usage: miris [command] [flags]
Global Flags:
-h, --help- Help for miris-v, --version- Version for miris
Additional Commands
miris help
Description: Help about any command
Usage: miris help [command]
miris completion
Description: Generate the autocompletion script for the specified shell
Usage: miris completion [flags]
Command Summary Table
| Category | Command | Subcommand | Description |
|---|---|---|---|
| Authentication | auth | apikey | Set API Key for authentication |
| Authentication | auth | oauth | OAuth authentication |
| Asset Management | asset | upload | Upload content for conversion |
| Asset Management | asset | list | List all assets |
| Asset Management | asset | get | Get asset details |
| Asset Management | asset | update | Update asset details |
| Asset Management | asset | bulk-update | Bulk update tags |
| Asset Management | asset | delete | Delete an asset |
| Viewer Keys | viewerkey | create | Create a new viewer key |
| Viewer Keys | viewerkey | list | List all viewer keys |
| Viewer Keys | viewerkey | update | Update viewer key properties |
| Viewer Keys | viewerkey | delete | Delete a viewer key |
| Viewer Keys | viewerkey | revoke | Revoke a viewer key |
| Company | company | get | Get company information |
| Company | company | update | Update company information |
| User Management | user | list | List all users |
| User Management | user | create | Create a new user |
| User Management | user | get | Get user details |
| User Management | user | update | Update user details |
| Referrals | user referral invitation | create | Create referral invitation |
| Referrals | user referral invitation | list | List referral invitations |
| Referrals | user referral invitation | get | Get referral invitation details |
| Referrals | user referral invitation | update | Update referral invitation |
| Referrals | user referral invitation | report | Get referral signup report |
| Permissions | permission | list-groups | List permission groups |
| Utilities | id | find | Find entity type by UUID |
| Utilities | update | — | Update to latest version |