domino-app-init

domino-app-init is a command for Claude Code from dominodatalab/domino-claude-plugin. It costs 30 tokens per session (871 once invoked), scanned A, original, MIT.

A starter for web applications that run on Domino Data Lab, a platform for developing and deploying data and machine-learning apps. It supports React with Vite, Streamlit, Dash, Flask, and Gradio.

In plain words
What is it for?
Creating a new Domino-ready app with an app.sh entry script, proxy-compatible settings, environment-variable templates, and model API integration.
Why use it?
It removes the setup work needed to make an app reachable through Domino’s reverse proxy, including launch and environment configuration.

Command for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the domino-claude-plugin plugin — 23 skills, 4 commands, 3 agents, 1 MCP server shipped together

Good fit Creating a new Domino-ready app with an app.sh entry script, proxy-compatible settings, environment-variable templates, and model API integration.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/dominodatalab/domino-claude-plugin/domino-app-init
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/dominodatalab/domino-claude-plugin

Made for: Claude Code.

Or install domino-claude-plugin, the plugin that ships this one along with the rest of its 23 skills, 4 commands, 3 agents, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for domino-app-init

README.md
[![agentmods](https://agentmods.dev/badge/commands/dominodatalab/domino-claude-plugin/domino-app-init/github.svg)](https://agentmods.dev/commands/dominodatalab/domino-claude-plugin/domino-app-init)
Your own site
<a href="https://agentmods.dev/commands/dominodatalab/domino-claude-plugin/domino-app-init"><img src="https://agentmods.dev/badge/commands/dominodatalab/domino-claude-plugin/domino-app-init/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for domino-app-init

Your own site · 80×15
<a href="https://agentmods.dev/commands/dominodatalab/domino-claude-plugin/domino-app-init"><img src="https://agentmods.dev/badge/commands/dominodatalab/domino-claude-plugin/domino-app-init.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 30 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 871 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00030 $0.00871
Opus 5 $0.00015 $0.00436
Sonnet 5 $0.00006 $0.00174
Haiku 4.5 $0.00003 $0.00087

Measured 13d ago against content hash 03152b165ae8, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

domino-app-init scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/domino-app-init.md · 151 lines

How it starts

The opening of the file, as written. The whole thing — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/domino-app-init Command

Initialize a Domino-ready web application with the correct configuration for Domino's reverse proxy.

Usage

/domino-app-init [framework]

Supported Frameworks

  • react or vite-react - React application with Vite (default)
  • streamlit - Streamlit application
  • dash - Plotly Dash application
  • flask - Flask application
  • gradio - Gradio application

What This Command Does

  1. Detects or asks for framework choice
  2. Creates app.sh - Entry point script for Domino
  3. Configures port binding - Uses port 8888 by default (flexible)
  4. Sets up proxy-compatible settings - For React: base: './'
  5. Creates .env.example - Template for environment variables
  6. Adds Model API integration - Code for calling model endpoints

React/Vite Output

vite.config.js

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  base: './',
  server: { host: '0.0.0.0', port: 8888, strictPort: true },
  preview: { host: '0.0.0.0', port: 8888, strictPort: true },
  build: { outDir: 'dist', assetsDir: 'assets' }
})

app.sh

#!/bin/bash
set -e
cd /mnt/code
npm ci
npm run build
npx serve -s dist -l 8888 --no-clipboard

.env.example

VITE_MODEL_API_URL=https://your-domino.com/models/MODEL_ID/latest/model
VITE_MODEL_API_TOKEN=your_api_token

Streamlit Output

app.sh

#!/bin/bash
set -e
streamlit run app.py \
    --server.port 8888 \
    --server.address 0.0.0.0 \
    --server.headless true

Dash Output

app.py (with Domino configuration)

import os
from dash import Dash, html

app = Dash(__name__)
app.layout = html.Div([html.H1("Domino Dash App")])

if __name__ == '__main__':
    app.run_server(host='0.0.0.0', port=8888, debug=False)

app.sh

#!/bin/bash
set -e
python app.py

Flask Output

app.py (with Domino configuration)

import os
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Domino Flask App"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888, debug=False)

Read the full file on GitHub · 151 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago First seen · 151 lines · 30 tokens per session scan A 03152b165ae8

Subscribe to this mod's changes

domino-app-init is a command published in the GitHub repository dominodatalab/domino-claude-plugin (7 stars, last pushed 2mo ago), licensed MIT. It adds 30 tokens to every session and 871 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.