Moose CLI Reference
Installation
bash -i <(curl -fsSL https://fiveonefour.com/install.sh) moose
Core Commands
Init
Initializes a new Moose project.
moose init <name> --template <template> [--location <location>] [--no-fail-already-exists]
<name>
: Name of your app or service<template>
: Template to use for the project--location
: Optional location for your app or service--no-fail-already-exists
: Skip the directory existence check
List Templates
Lists available templates for project initialization.
moose template list
Build
Builds your Moose project.
moose build [--docker] [--amd64] [--arm64]
--docker
: Build for Docker--amd64
: Build for AMD64 architecture--arm64
: Build for ARM64 architecture
Dev
Starts a local development environment.
moose dev
Prod
Starts Moose in production mode for cloud deployments.
moose prod
Check
Checks the project for non-runtime errors.
moose check [--write-infra-map]
Clean
Clears temporary data and stops development infrastructure.
moose clean
Seed (ClickHouse)
Seed your local ClickHouse from a remote ClickHouse instance.
moose seed clickhouse [--connection-string <CONNECTION_STRING>] [--table <name>] [--limit <n> | --all]
--connection-string
: Remote ClickHouse connection string. If omitted, the CLI usesMOOSE_SEED_CLICKHOUSE_URL
.--table
: Seed only the specified table (default: all Moose tables).--limit
: Copy up to N rows (mutually exclusive with--all
). Large limits are automatically batched.--all
: Copy entire table(s) in batches (mutually exclusive with--limit
).
Connection String Format: The connection string must use ClickHouse native protocol:
# ClickHouse native protocol (secure connection)
clickhouse://username:password@host:9440/database
Important:
- The data transfer uses ClickHouse’s native TCP protocol via
remoteSecure()
function. The remote ClickHouse server must have the native TCP port accessible (typically port 9440 for secure connections). - Smart table matching: The command automatically validates tables between local and remote databases. Tables that don’t exist on the remote are gracefully skipped with warnings.
- Use
--table <name>
to seed a specific table that exists in both local and remote databases.
User Experience:
- Progress indicator shows seeding status with spinner
- Tables that don’t exist on remote are automatically skipped with clear warnings
- Final summary shows successful and skipped tables
- Clean, streamlined output focused on results
Notes:
- Seeding is batched automatically for large datasets; Ctrl+C finishes the current batch gracefully.
- Use env var fallback:
export MOOSE_SEED_CLICKHOUSE_URL='clickhouse://username:password@host:9440/database'
Truncate
Truncate tables or delete the last N rows from local ClickHouse tables.
moose truncate [TABLE[,TABLE...]] [--all] [--rows <n>]
TABLE[,TABLE...]
: One or more table names (comma-separated). Omit to use--all
.--all
: Apply to all non-view tables in the current database (mutually exclusive with listing tables).--rows <n>
: Delete the last N rows per table; omit to remove all rows (TRUNCATE).
Notes:
- For
--rows
, the command uses the table ORDER BY when available; otherwise it falls back to a timestamp heuristic.
Monitoring Commands
Logs
View Moose logs.
moose logs [--tail] [--filter <search_string>]
--tail
: Follow logs in real-time--filter
: Filter logs by specific string
Ps
View Moose processes.
moose ps
Ls
View Moose primitives & infrastructure.
moose ls [--limit <n>] [--version <version>] [--streaming] [--type <type>] [--name <name>] [--json]
--limit
: Limit output (default: 10)--version
: View specific version--streaming
: View streaming topics--type
: Filter by infrastructure type (tables, streams, ingestion, sql_resource, consumption)--name
: Filter by name--json
: Output in JSON format
Metrics
View live metrics from your Moose application.
moose metrics
Peek
View data from a table or stream.
moose peek <name> [--limit <n>] [--file <path>] [-t|--table] [-s|--stream]
<name>
: Name of the table or stream to peek--limit
: Number of rows to view (default: 5)--file
: Output to a file-t, --table
: View data from a table (default if neither flag specified)-s, --stream
: View data from a stream/topic
Generation Commands
Generate Hash Token
Generate authentication tokens for API access.
moose generate hash-token
Generates both a plain-text Bearer token and its corresponding hashed version for authentication.
Generate Migration Plan (OLAP)
Create an ordered ClickHouse DDL plan by comparing a remote instance with your local code.
moose generate migration --url https://<remote-env> --token <api-token> --save
- Writes
./migrations/plan.yaml
and snapshotsremote_state.json
andlocal_infra_map.json
- Omit
--save
to output to stdout without writing files - Requires these feature flags in
moose.config.toml
:moose.config.toml[features] olap = true ddl_plan = true
DB Pull (External Tables)
Refresh EXTERNALLY_MANAGED
table definitions from a remote ClickHouse instance.
moose db pull --connection-string <CONNECTION_STRING> [--file-path <OUTPUT_PATH>]
--connection-string
: ClickHouse URL; nativeclickhouse://
is auto-converted to HTTP(S). Include?database=
or the CLI will query the current database.--file-path
: Optional override for the generated external models file (defaults toapp/externalModels.ts
orapp/external_models.py
).
Notes:
- Only tables marked
EXTERNALLY_MANAGED
in your code are refreshed. - The command writes a single external models file and overwrites the file on each run.
- See the full guide: /moose/olap/db-pull
Workflow Management
Workflow
moose workflow <command> [options]
Available workflow commands:
init <name> [--tasks <task-list>] [--task <task>...]
: Initialize a new workflowrun <name> [--input <json>]
: Run a workflowresume <name> --from <task>
: Resume a workflow from a specific tasklist [--json]
: List registered workflowshistory [--status <status>] [--limit <n>] [--json]
: Show workflow historyterminate <name>
: Terminate a workflowpause <name>
: Pause a workflowunpause <name>
: Unpause a workflowstatus <name> [--id <run-id>] [--verbose] [--json]
: Get workflow status
Planning and Deployment
Plan
Display infrastructure changes for the next production deployment.
moose plan [--url <url>] [--token <token>]
--url
: Remote Moose instance URL (default: http://localhost:4000)--token
: API token for authentication
Refresh
Integrate matching tables from a remote instance into the local project.
moose refresh [--url <url>] [--token <token>]
--url
: Remote Moose instance URL (default: http://localhost:4000)--token
: API token for authentication
This reference reflects the current state of the Moose CLI based on the source code in the framework-cli directory. The commands are organized by their primary functions and include all available options and flags.