CLI
The Mimic Protocol CLI is a command-line tool for building, managing, and deploying automated blockchain tasks. Mimic Protocol is a blockchain automation protocol that allows developers to create programmable tasks that execute automatically based on predefined conditions.
1. Initialize
Initializes a new Mimic-compatible project structure in the current directory. This command will create a minimal folder layout, a manifest file, and example AssemblyScript task.
1.1. Usage
mimic init [options]1.2. Options
--directory, -d <path>
Directory to initialize project
./
--force, -f
Overwrite existing files if they already exist (asks confirmation)
false
1.3. Examples
# Initialize a fresh project using default settings
mimic init
# Initialize in a specific directory
mimic init --directory ./my-task
# Force initialization, overwriting existing files (will ask for confirmation)
mimic init --force1.4. Output
my-task/
├── manifest.yaml # Task configuration
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
└── src/
└── task.ts # Main task implementationWhen --force is used in a non-empty directory, the CLI asks for confirmation before deleting contents.
After scaffolding, the CLI runs yarn install and then yarn codegen inside the initialized directory to set up dependencies and generate types.
The manifest describes metadata, inputs, and ABIs for your AssemblyScript task, so the CLI can validate, generate code, compile, and ultimately deploy your task. For example:
version: 1.0.0
name: Balance Monitoring Task
description: Monitors an account's token balance and creates a swap intent if conditions are met.
inputs:
- chainId: uint32
- account: address
- tokenIn: address
- tokenOut: address
- slippage: uint32
- threshold: uint32
abis:
- ERC20: './abis/IERC20.json'2. Codegen
Scans your manifest.yaml and generates typed interfaces for declared inputs and ABIs. This step is typically used to create or update TypeScript/AssemblyScript types for your project so you can safely reference them in your code.
2.1. Usage
mimic codegen [options]2.2. Options
--manifest, -m <path>
Specify a custom manifest file path
manifest.yaml
--output, -o <dir>
Output directory for generated types
./src/types
--clean, -c
Remove existing generated types before generating new files (asks confirmation)
false
2.3. Examples
# Generate types in the default "src/types" directory
mimic codegen
# Generate types from a custom manifest, output to a "generated" folder
mimic codegen --manifest ./custom-manifest.yaml --output ./src/generated
# Clean previous outputs (will ask confirmation) and regenerate
mimic codegen --clean2.4. Output
./src/types/index.ts- Input parameter types./src/types/[ContractName].ts- Contract interface types (one per ABI)
3. Compile
Compiles your AssemblyScript task into a Wasm binary, along with validating your manifest and producing any required runtime artifacts (like manifest.json). This step ensures you have a complete, ready-to-deploy package of your task logic and metadata.
3.1. Usage
mimic compile [options]3.2. Options
--task, -t <path>
Path to the AssemblyScript entry file
src/task.ts
--manifest, -m <path>
Path to the manifest file to validate
manifest.yaml
--output, -o <directory>
Output directory for compiled artifacts
build
3.3. Examples
# Compile using the default task and manifest
mimic compile
# Compile a specific file, output to a custom directory
mimic compile --task ./tasks/myTask.ts --output ./out3.4. Outputs
build/task.wasm- Compiled WebAssembly binarybuild/manifest.json- Processed manifest configuration
The CLI validates the manifest before compiling. If the compilation fails, it reports an error and suggestions.
4. Deploy
Uploads your compiled task artifacts to IPFS and registers it into the Mimic Registry so others can discover it. This step pins the result under a CID so relayers can discover and execute it.
4.1. Usage
mimic deploy [options]4.2. Options
--key, -k <deploymentKey>
Your account deployment key
(no default)
--input, -i <directory>
Directory containing the compiled artifacts
build
--output, -o <directory>
Output directory for deployment CID
build
--url, -u <url>
Mimic Registry base URL
https://api-protocol.mimic.fi
--skip-compile
Skip codegen and compile steps before uploading
false
4.3. Examples
# Deploy from the default build directory, using your pre-configured key
mimic deploy --key my-key
# Deploy from a custom folder
mimic deploy --input ./dist --key my-key
# Specify a different output path
mimic deploy --input ./dist --key my-key --output ./dist
# Use a custom registry URL and skip local build steps
mimic deploy --key my-key --url https://custom.registry --skip-compile4.4. Validation and Outputs
Before uploading, the CLI validates that the input directory exists and includes:
manifest.jsontask.wasm
On success:
build/CID.json- Contains the IPFS Content Identifier for your deployed task
5. Test
Runs task tests using mocha. By default, it performs codegen and compile first, then executes tests/**/*.spec.ts.
5.1. Usage
mimic test [options]5.2. Options
--directory, -d <path>
Task directory to run tests from
./
--skipCompile
Skip codegen and compile steps before tests
false
5.3. Behavior
If not skipped, runs
yarn mimic codegenandyarn mimic compilein the target directory.Executes tests using mocha via tsx:
yarn tsx ./node_modules/mocha/bin/mocha.js tests/**/*.spec.ts.
Last updated