Skip to main content

Miris CLI Documentation

Experimental

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

  1. Authentication Commands
  2. Streaming Asset Management
  3. Viewer Key Management
  4. Administrative Commands
  5. 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 usage
  • oauth - 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:

  1. Run the command (optionally specify a provider with -p flag)
  2. If no provider is specified, you'll be prompted to select from available providers:
    • Email
    • Google
  3. The command will output an authentication URL
  4. Copy the URL and paste it into your browser
  5. Complete the login flow in your browser
  6. 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 authentication
  • google - 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:

  1. Run the command with your chosen provider
  2. Copy the provided authentication URL from the terminal output
  3. Paste the URL into your web browser
  4. Complete the OAuth login flow with your selected provider
  5. 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 assets
  • list - List all assets
  • get - Get asset details
  • update - Update asset details
  • bulk-update - Bulk update tags for multiple assets
  • delete - 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:

  1. Fetch the asset details
  2. Verify the provided name matches exactly
  3. 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 key
  • list - List all viewer keys
  • update - Update a viewer key
  • delete - Delete a viewer key
  • revoke - 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 information
  • update - 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 users
  • create - Create a new user
  • get - Get user details
  • update - Update an existing user
  • referral - 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

CategoryCommandSubcommandDescription
AuthenticationauthapikeySet API Key for authentication
AuthenticationauthoauthOAuth authentication
Asset ManagementassetuploadUpload content for conversion
Asset ManagementassetlistList all assets
Asset ManagementassetgetGet asset details
Asset ManagementassetupdateUpdate asset details
Asset Managementassetbulk-updateBulk update tags
Asset ManagementassetdeleteDelete an asset
Viewer KeysviewerkeycreateCreate a new viewer key
Viewer KeysviewerkeylistList all viewer keys
Viewer KeysviewerkeyupdateUpdate viewer key properties
Viewer KeysviewerkeydeleteDelete a viewer key
Viewer KeysviewerkeyrevokeRevoke a viewer key
CompanycompanygetGet company information
CompanycompanyupdateUpdate company information
User ManagementuserlistList all users
User ManagementusercreateCreate a new user
User ManagementusergetGet user details
User ManagementuserupdateUpdate user details
Referralsuser referral invitationcreateCreate referral invitation
Referralsuser referral invitationlistList referral invitations
Referralsuser referral invitationgetGet referral invitation details
Referralsuser referral invitationupdateUpdate referral invitation
Referralsuser referral invitationreportGet referral signup report
Permissionspermissionlist-groupsList permission groups
UtilitiesidfindFind entity type by UUID
UtilitiesupdateUpdate to latest version