Skip to main content
npm version TypeScript The DA CLI (Domo Apps CLI) is a powerful command-line tool for generating and managing Domo applications built with Vite and React. It provides a streamlined workflow for creating new apps, generating components, managing manifests, and more.

Overview

The DA CLI (Domo Apps CLI) streamlines Domo app development with four main capabilities:
  • App Creation - Generate new Domo apps from templates
  • Code Generation - Create components, reducers, and other code structures
  • Manifest Management - Handle environment-specific configurations
  • Template System - Support for custom templates from NPM, GitHub, or local paths

Installation

Install the DA CLI (Domo Apps CLI) globally to use it from anywhere:
Package: @domoinc/da on npm Verify your installation:

Quick Start

Create your first Domo app in seconds:

Commands

da new

Creates a new Domo application from a template. Syntax:
Arguments:
  • name - The name of your application (required)
Options:
  • --force, -f - Overwrite existing directory
  • --template, -t - Specify a custom template (npm package, GitHub repo, or local path)
Examples:
What happens:
  1. Validates the app name
  2. Checks for existing directory
  3. Prompts for package manager selection
  4. Downloads/clones the @domoinc/vite-react-template (or custom template)
  5. Updates package.json with your app name
  6. Initializes git repository
  7. Installs dependencies

da generate

Generates code files from templates. Syntax:
Available Templates:

Component Generator

Creates a complete React component with associated files.
Creates:
  • src/components/MyComponent/MyComponent.tsx - Main component file
  • src/components/MyComponent/MyComponent.module.scss - Styles
  • src/components/MyComponent/MyComponent.test.tsx - Test file (optional)
  • src/components/MyComponent/MyComponent.stories.tsx - Storybook file (optional)

Reducer Generator

Creates a Redux slice with automatic imports.
Creates:
  • src/reducers/myFeature/slice.ts - Redux slice
  • Auto-imports into src/reducers/index.ts

da manifest

Add a manifest override for additional deployment/proxy environments. If you need to deploy to multiple instances, or proxy to different cards for various testing environments, you can use this command to add a manifest override. Syntax:
Arguments:
  • identifier - Key for the manifest override (e.g., instance.prod, instance.dev)
  • description - Description of the override
Examples:
Minimal override example (what you might store and apply):

da apply-manifest

Applies manifest overrides to your application. This will substitute properties from manifestOverride into your manifest.json file. Useful for deploying to multiple instances, or proxying to different cards for various testing environments. Syntax:
Arguments:
  • id - The identifier of the override to apply
Examples:

Templates

Default Template

The DA CLI uses the @domoinc/vite-react-template by default, which includes:
  • Vite for fast development and building
  • React 18 with TypeScript support
  • SCSS for styling
  • Jest and Testing Library for testing
  • Storybook for component development
  • ESLint and Prettier for code quality
  • Domo Toolkit integration

Custom Templates

You can use custom templates in several ways:

NPM Package

GitHub Repository

Local Path

Template Structure

Templates should follow this structure:

Configuration

Environment Variables

For local development, you can set a default template path:

Package Manager

The CLI supports multiple package managers:
  • pnpm (recommended) - Fastest and most efficient
  • npm - Standard Node.js package manager
  • yarn - Alternative package manager

Troubleshooting

Debug Mode

Enable verbose logging for troubleshooting:

Support

For issues and questions: