mastra
Version:
cli for mastra
122 lines (78 loc) • 2.7 kB
Markdown
# The Mastra CLI

The Mastra CLI lets you initialize a new project, spin up a local dev server, and deploy it to serverless platforms like Vercel and Cloudflare Workers.
## Installing the Mastra CLI
```bash copy
npm i -g mastra
```
## Commands
### Project Setup
```bash
# Initialize a new project
mastra init
```
## Deployment
Mastra's data syncing infrastructure is designed for Next.js sites running on serverless hosting providers like Vercel or Netlify.
Logs are stored in [Upstash](https://upstash.com/).
## Commands
### Init
`mastra init` is used for initializing a new project.
This creates a mastra directory under `src` containing an `index.ts` entrypoint and an `agent` directory containing two sample agents.
```text
project-root/
├── src/
├── app/
└── mastra/
├── agents/
│ └── agents.ts
└── index.ts
```
### Dev
`mastra dev`
This spins up a local development server that hosts `REST` endpoints for all agents and workflows. It also has a chat interface for testing them.
The server is useful for testing and developing agents, workflows, and integrations without needing to deploy your application.
The server is available at `http://localhost:3000`.
### Build
`mastra build`
This command builds your Mastra project for deployment to different environments. The build process:
1. Reads your Mastra configuration
2. Generates optimized files for your target environment
3. Outputs them to a build directory
Options:
```bash
--dir Directory containing Mastra files (default: src/mastra)
```
Example usage:
```bash
# Build using default directory
mastra build
# Build from custom directory
mastra build --dir path/to/mastra
```
The build output is determined by your Mastra instance's deployer configuration:
```typescript
const mastra = new Mastra({
deployer: {
type: 'HONO', // Target environment (HONO, EXPRESS, NEXT)
// Environment-specific options
},
});
```
### Deploy
`mastra deploy`
This command deploys the mastra project to a serverless platform like Vercel or Cloudflare Workers.
The deploy command does the following:
- Initializes the mastra project
- Builds the project
- Deploys the built project to the platform
# Telemetry
This CLI collects anonymous usage data (no personal/sensitive info) to help improve Mastra. This includes:
- Commands used
- Command execution time
- Error occurrences
- System information (OS, Node version)
To opt-out:
1. Add `NO_MASTRA_TELEMETRY=1` to commands
## Local development
1. clone the repo
2. Run `pnpm i` to install deps