ryuu
v5.0.1
Published
Domo App Dev Studio CLI, The main tool used to create, edit, and publish app designs to Domo
Downloads
5,703
Readme
Domo Apps CLI
The official command-line interface for developing, publishing, and managing Domo Custom Apps. Build powerful data applications with modern web technologies and deploy them directly to the Domo platform.
🚀 Quick Start
Installation
npm install -g ryuuFirst Steps
Login to Domo:
# OAuth (interactive) domo login # Or token-based (CI/CD friendly) domo login -t YOUR-DEVELOPER-TOKENCreate a new app:
domo init my-appStart developing:
domo devPublish your app:
domo publish
📖 Documentation
- CLI Documentation - Complete CLI reference
- Installation Guide - Detailed setup instructions
- App Framework Guide - Learn the Domo App Framework
🛠️ Commands
Authentication
The CLI supports two authentication methods:
OAuth Login (Default)
domo login # Interactive login
domo login -i company.domo.com # Login to specific instanceOptions:
-i, --instance <value>- Domo instance hostname-u, --user-email <value>- User email address--migrate- Migrate login files from ryuu 3.x--no-upgrade-check- Skip version check--upgrade-download- Auto-download newer version
Token-Based Login
# Login with developer token
domo login -i company.domo.com -t DDCI27236b8d8690ab86cf5328c41a94d068aca1cde4eb6edc34
# Interactive token prompt
domo login -i company.domo.com --token-onlyOptions:
-t, --token <value>- Developer token for authentication--token-only- Force token-only mode (will prompt)
Getting Your Developer Token: Developer tokens can be found in the Admin section of your Domo instance. Tokens are alphanumeric strings (letters and numbers only). Token-based authentication is ideal for CI/CD pipelines and automated workflows.
Token Management
domo token add # Add developer token
domo token add -i company.domo.com -t TOKEN # Add token non-interactively
domo token remove # Remove stored token
domo token remove -i company.domo.com # Remove token for specific instanceOptions:
-i, --instance <value>- Domo instance-t, --token <value>- Developer token value
Session Management
domo logout # Sign out from current instance
domo logout -i company.domo.com # Sign out from specific instance
domo remove # Remove saved login (interactive)
domo remove --instance company.domo.com # Remove specific instance
domo remove --all # Remove all saved loginsDevelopment
Initialize New App
domo init # Interactive app creation
domo init -n "My App" -t "hello world" # Non-interactive creation
domo init --no-datasets # Skip dataset promptsOptions:
-n, --design_name <value>- Name of the design-t, --template <value>- Starter template (choices:hello world,manifest only,basic chart,map chart,sugarforce)--no-datasets- Skip dataset prompting-i, --dataset-id [value...]- Dataset IDs (multiple)-a, --dataset-alias [value...]- Dataset aliases (multiple)
Development Server
domo dev # Start dev server
domo dev -u USER_ID # Use specific user ID
domo dev -e # Allow external connectionsOptions:
-u, --userId <value>- Use a specific userId-e, --external- Allow external connections to dev server
Download Existing App
domo download # Interactive download
domo download -i DESIGN_ID # Download specific design
domo download -i DESIGN_ID -d latest # Download specific versionOptions:
-i, --design-id <id>- Design ID to download-d, --design-version <version>- Design version (default:latest)
Publishing
Publish App
domo publish # Publish app
domo publish -g # Publish and open in browser
domo publish --build-dir ./dist # Publish from build directory
domo publish --build-dir ./build -g # Publish from build directory and open in browserOptions:
-g, --go- Navigate to design in Asset Library after publishing-d, --build-dir <path>- Path to build directory containing the app files (defaults to current directory)
Release to App Store
domo release # Interactive version selection
domo release -v latest # Release latest version (non-interactive)
domo release -v 1.0.0 # Release specific versionOptions:
-v, --version <value>- Version to release (bypasses interactive prompt, defaults tolatest)
Delete App
domo delete # Delete app in current directory
domo delete DESIGN_ID # Delete specific design
domo delete -f # Force delete (skip confirmation)Options:
-f, --force- Delete even if referenced by Custom Apps-c, --confirm- Auto-confirm deletion (skip prompt)
Restore Deleted App
domo undelete # Undelete app in current directory
domo undelete DESIGN_ID # Undelete specific designManagement
List Apps
domo ls # List all your published appsDisplays a table with:
- Design Name
- Design ID
- Version
- Last Published date
- URL to Asset Library
Manage Owners
domo owner ls # List owners
domo owner add [email protected] # Add owner
domo owner rm [email protected] # Remove owner
domo owner add [email protected] [email protected] # Add multiple ownersOptions:
-i, --designId <id>- Specify design ID (otherwise reads from manifest)
Configure Proxy
domo proxy proxy.company.com 8080 # Set proxy
domo proxy proxy.company.com 8080 -a # Set proxy with authentication
domo proxy -r # Remove proxyOptions:
-r, --remove-proxy- Remove current proxy settings-a, --auth- Enable username authentication for proxy
🎯 Features
Flexible Authentication
- OAuth Login - Traditional username/password authentication
- Token-Based Login - Developer token for CI/CD pipelines
- Multi-Instance Support - Manage multiple Domo instances
- Secure Credential Storage - Encrypted token storage
Modern Development Experience
- Real-time autocomplete for instance selection
- Single-key confirmations (y/n without Enter)
- Interactive prompts with modern UX
- TypeScript support with full type safety
App Templates
- Hello World - Basic starter template with HTML/JS/CSS
- Manifest Only - Minimal template with just manifest.json
- Basic Chart - Chart visualization template with D3.js
- Map Chart - Geographic data visualization with mapping
- Sugarforce - Salesforce integration with pre-built components
Development Tools
- Hot reload during development
- Live preview with browser sync
- Asset optimization and bundling
- Source maps for debugging
🔧 Configuration
Environment Variables
# Disable SSL verification (development only)
NODE_TLS_REJECT_UNAUTHORIZED=0
# Force color output
FORCE_COLOR=1Proxy Support
# Configure proxy for corporate networks
domo proxy [host] [port]📦 Requirements
- Node.js 16+
- npm 7+
- Domo account with developer access
🚀 Getting Started
1. Install the CLI
npm install -g ryuu2. Login to Domo
Option A: OAuth (Interactive)
domo login
# Follow the prompts to authenticate with username/passwordOption B: Token-Based (Recommended for CI/CD)
domo login -i company.domo.com -t YOUR-DEVELOPER-TOKEN
# Or use --token-only for interactive token prompt3. Create Your First App
domo init my-first-app
cd my-first-app4. Start Development
domo dev
# Opens browser at http://localhost:30005. Publish to Domo
domo publish
# Your app is now live on Domo!
# Or publish from a build directory
domo publish --build-dir ./dist🎨 App Templates
Choose from professionally designed templates:
- Hello World - Perfect for learning the basics (HTML/JS/CSS)
- Manifest Only - Minimal setup with just manifest.json
- Basic Chart - Ready-to-use D3.js chart components
- Map Chart - Geographic data visualization with mapping
- Sugarforce - Salesforce integration with pre-built components
🔍 Troubleshooting
Common Issues
Login Problems:
# Clear stored credentials and re-login
domo logout
domo login
# For token authentication issues
domo login -i company.domo.com --token-onlyToken Validation Errors:
Tokens must be alphanumeric strings (letters and numbers only):
- Valid example:
DDCI27236b8d8690ab86cf5328c41a94d068aca1cde4eb6edc34 - Minimum length: 20 characters
- No special characters, spaces, or dashes allowed
If you receive an "Invalid token format" error, verify your token from the Admin section of Domo contains only letters and numbers.
Build Errors:
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm installProxy Issues:
# Configure corporate proxy
domo proxy your-proxy.com 8080Getting Help
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Built with ❤️ by the Domo team
