SKILL.md
Simple CLI Skill
1. Global Usage
simple <command> <subcommand> [args] [flags]
2. Scaffolding Commands
simple new app
Scaffold a new empty application structure.
- Usage:
simple new app <app-id> <name> - Args:
- <app-id>: Unique identifier (e.g., com.acme.crm). - <name>: Human-readable display name (e.g., "Customer CRM").
- Flags:
- --desc <string>: Application description.
simple new action
Create a new action, in TypeScript or in Rust, with boilerplate that builds and tests as written.
- Usage:
simple new action <app-id> <name> <display-name> - Args:
- <app-id>: Target App ID. - <name>: Action name in kebab-case (e.g., calculate-tax). - <display-name>: Human readable label.
- Flags:
- --lang <string>: Action language (ts, rust). Defaults to ts. - --scope <string>: NPM package scope (e.g., acme). REQUIRED for --lang ts. A Rust action is a cargo crate named after the action itself and is never published to a registry, so it takes no scope. - --env <string>: Execution environment (server, client, both). Defaults to server. - --desc <string>: Description of the logic.
simple new behavior
Create a client-side record behavior script.
- Usage:
simple new behavior <app-id> <table-name> - Args:
- <app-id>: Target App ID. - <table-name>: The table this behavior attaches to.
simple new space
Scaffold a new custom React Space.
- Usage:
simple new space <app-id> <name> <display-name> - Args:
- <app-id>: Target App ID (e.g., com.acme.crm). - <name>: Space name in kebab-case (e.g., sales-dashboard). - <display-name>: Human readable label.
- Flags:
- --desc <string>: Description of the space.
simple new trigger:db
Create a database event trigger.
- Usage:
simple new trigger:db <app-id> <name> <display-name> - Args:
- <app-id>: Target App ID. - <name>: Trigger name (snake_case). - <display-name>: Human readable label.
- Flags:
- --table <string>: REQUIRED Table to watch. - --ops <string>: Operations to watch: insert, update, delete (comma-separated, default: insert). - --action <string>: Action to execute. - --condition <string>: JQ condition filter. - --desc <string>: Description.
simple new trigger:timed
Create a scheduled timed trigger.
- Usage:
simple new trigger:timed <app-id> <name> <display-name> - Args:
- <app-id>: Target App ID. - <name>: Trigger name (snake_case). - <display-name>: Human readable label.
- Flags:
- --frequency <string>: minutely|hourly|daily|weekly|monthly|yearly. - --interval <int>: Interval between runs (default: 1). - --start-at <string>: Start time (ISO8601). - --time <string>: Time of day (HH:MM:SS) (default: "00:00:00"). - --timezone <string>: Timezone (default: "UTC"). - --days <string>: Specific days (MON,TUE...). - --action <string>: Action to execute. - --desc <string>: Description.
simple new trigger:webhook
Create an HTTP webhook trigger.
- Usage:
simple new trigger:webhook <app-id> <name> <display-name> - Args:
- <app-id>: Target App ID. - <name>: Trigger name (snake_case). - <display-name>: Human readable label.
- Flags:
- --method <string>: HTTP method: get|post|put|delete (default: post). - --public: Make endpoint public (no auth). - --action <string>: Action to execute. - --desc <string>: Description.
3. Development Commands
simple build
Compile all SCL files, Actions (WASM), and Spaces (Vite/React).
- Usage:
simple build [target] - Args:
- [target] (Optional): Specific app (com.acme.crm) or action (com.acme.crm/my-action) to build.
- Flags:
- --all: Build all actions in all apps. - --concurrency <int>: Number of parallel builds (default: 4).
- Description: Validates schema integrity, transpiles TypeScript to WASM, and bundles spaces.
simple install
Install a deployed app to an environment (migrations, cache warming).
- Usage:
simple install <app-id> - Args:
- <app-id>: App ID to install (must be already deployed).
- Flags:
- --env <string>: REQUIRED. Target environment (dev, staging, prod).
simple test
Run the unified test runner. Each target is handed to its own runner: Vitest for TypeScript and JavaScript, cargo test for Rust actions.
- Usage:
simple test [app-id] - Args:
- [app-id] (Optional): Limit tests to a specific app.
- Flags:
- --action <string>: Run tests for a specific action only. - --behavior <string>: Run tests for a specific behavior script only. - --space <string>: Run tests for a specific space only. - --coverage: Enable code coverage reporting. - --json: Output results in JSON format (CI/CD friendly).
4. Operational Commands
simple deploy
Deploy application artifacts to a remote environment.
- Usage:
simple deploy <app-path> - Args:
- <app-path>: Path to the app directory (e.g., apps/com.acme.crm).
- Flags:
- --env <string>: REQUIRED. Target environment (dev, staging, prod). - --bump <string>: Semver bump strategy (patch, minor, major). - --no-install: Skip npm install before building.
simple init
Initialize a new workspace (Monorepo).
- Usage:
simple init <project-name> - Args:
- <project-name>: Name of the root directory to create.
- Flags:
- --tenant <string>: Tenant name for simple.scl configuration.