Overview
Motia consists of:- Motia CLI - Project scaffolding and development tools
- iii Engine - Rust-based runtime for HTTP, queues, cron, streams, and observability
System Requirements
Required
- Node.js 18+ (for TypeScript/JavaScript)
- macOS, Linux, or WSL2 (Windows via WSL)
- curl or Homebrew
Optional
- Python 3.10+ (for Python Steps)
- Redis 6+ (for queues and streams)
- Docker (for containerized deployments)
Installing Motia CLI
Option 1: Homebrew (Recommended for macOS)
Option 2: Shell Script (Linux/macOS/WSL)
The shell script automatically detects your platform and installs the CLI:The installer places the CLI in
/usr/local/bin by default. You may need sudo permissions.Option 3: Manual Download
Download the latest release for your platform:- macOS (ARM)
- macOS (Intel)
- Linux (x64)
Installing iii Engine
The iii engine is automatically installed when you runmotia-cli create, but you can also install it separately:
Automatic Installation (Recommended)
The iii engine will be installed automatically when you create your first project:Manual Installation
If you need to install the iii engine separately:- Custom Install Directory
- Specific Version
Verify iii Engine Installation
Installing Motia Packages
Depending on your language choice, install the appropriate Motia package:- TypeScript/JavaScript
- Python
- Type definitions for Steps
- iii-sdk for engine communication
- Build tools and CLI
Installing Redis (Optional)
Redis is required for queue and stream features. If you don’t need these features, you can skip this step.- Docker (Recommended)
- Homebrew (macOS)
- apt (Ubuntu/Debian)
- Cloud Hosted
Verify Redis Connection
PONG
Creating Your First Project
Now that everything is installed, create your first Motia project:Pick a template
Options:
- Basic - Minimal starter with one Step
- Todo App - Complete CRUD example
- Custom - Empty project
Project Structure
After creation, your project will have this structure:Configuration Files
iii-config.yaml
Theiii-config.yaml file configures the iii engine:
iii-config.yaml
Environment variables use the syntax
${VAR_NAME:default_value}. Set REDIS_URL in your .env file to override defaults.Environment Variables
Create a.env file for local development:
.env
Running Your Project
Access your app
- HTTP API: http://localhost:3111
- Stream API: http://localhost:3112
- iii Console: http://localhost:3112/console
- Metrics: http://localhost:9464/metrics
Docker Installation (Production)
For production deployments, use Docker:docker-compose.yml
docker-compose.yml
Updating Motia
Troubleshooting
CLI command not found
CLI command not found
Ensure Or for zsh:
/usr/local/bin is in your PATH:Permission denied during installation
Permission denied during installation
You may need sudo permissions:
iii engine fails to start
iii engine fails to start
Check if ports are available:Kill conflicting processes or change ports in
iii-config.yaml.Redis connection failed
Redis connection failed
Verify Redis is running:If not using Redis, disable queue/stream modules in
iii-config.yaml.Python import errors
Python import errors
Ensure you’re using Python 3.10+:Reinstall Motia in a virtual environment:
Next Steps
Quickstart
Build your first Motia app in 5 minutes
Your First Step
Learn how to create Steps
Configuration
Configure iii engine and modules
Examples
View 20+ production examples
Uninstalling
- Homebrew
- Manual