Compare
Copilotz vs Mastra
Both are open-source TypeScript frameworks for building with agents. Mastra is the larger and more mature one. Copilotz starts from the app instead of the agent. Here's where each fits, with a source for every claim.
Checked on 12 November 2026.
In short
Mastra is a TypeScript framework for building AI agents and applications: agents, tools, workflows, memory, evals and observability, with a model router and Studio, a local UI. It reached 1.0 in January 2026, ships new versions every week, and has a large community and a funded company behind it.
Copilotz is a runtime for apps that people and AI use alike. You write the app's data, Actions and rules once. People use it on a web page, the app's own agents call the same Actions through tools, and outside assistants call them over MCP. Every call says who is acting, for whom and where, the rules are checked at the data, and every write lands on one record. It's MIT-licensed and still a 1.0 release candidate.
The short version: for an agent-first project that wants a mature ecosystem today, Mastra is the stronger choice. Copilotz fits when your agent is one of the callers of an app that people also use, and you want who may do what enforced in one place.
Choose Mastra if…
- You want a stable 1.x release, weekly updates and a large community: about 29,500 GitHub stars and 3.2 million weekly npm downloads of @mastra/core.
- You need many integrations ready: a model router over 223 providers, storage adapters from PostgreSQL to DynamoDB, tracing exporters, and deployers for Vercel, Netlify and Cloudflare.
- You want tooling around the code: Studio, workflows that suspend and resume, and evals with scorers and a Vitest integration.
- You want to use outside MCP servers as tools, or to reach people on Slack, Teams, Discord or Telegram.
- You'd like a hosted platform for deploying and observing, from the same company.
Choose Copilotz if…
- People, your own agents and outside assistants use the same app, and every change should be one Action, called from every way in.
- You want access rules built into the open-source runtime and checked at the data for every caller, with an agent never reaching more than its person.
- You want one record that says who did what, for whom and where, for every write.
- You want a web page, a terminal, REST, MCP with widgets in ChatGPT and Claude, WhatsApp and voice from the same plugins.
- You want to test the whole app offline, with a scripted model and no API key, and a release candidate is fine for you.
Side by side
Each claim links to its source. Numbers move: these were read on 12 November 2026.
| Dimension | Copilotz | Mastra |
|---|---|---|
| What it is | Copilotz:A runtime for apps that people and AI use alike. You write the app once, as plugins: its data, its Actions, who may call them, and how it shows.[1] | Mastra:A TypeScript framework for building AI agents and applications: agents, tools, workflows, memory, RAG, evals and observability.[2] |
| Runs on | Copilotz:Node 24 or later, Deno and Bun. Built on web standards, for Cloudflare Workers and the browser too.[1][3] | Mastra:Node.js 22.13 or later, Bun, Deno and Cloudflare Workers.[4][5] |
| Agents, tools and workflows | Copilotz:Agents are settings: instructions, a model and tools. A tool is a thin caller of an Action, the same one the web page and MCP call. Processors react to events; schedules and routines run work on a timer.[1][3] | Mastra:Agent and createTool, with schemas in Zod and others. Workflows (createStep, createWorkflow) branch, run steps in parallel, and suspend and resume.[6][7] |
| Memory | Copilotz:The history plugin summarizes long chats; the memory plugin remembers across them, by meaning with an embeddings model, or by words without one.[3][8] | Mastra:Message history, working memory about users across conversations, and semantic recall over past messages.[9][10] |
| MCP (client and server) | Copilotz:Server: the mcp plugin offers the app's tools to ChatGPT, Claude and any MCP client, and draws its web Views inside them as widgets. No MCP sign-in yet: each conversation comes in as a contact. Client: not offered; the docs don't use outside MCP servers as tools.[3][11][12] | Mastra:Client and server. MCPClient uses outside MCP servers' tools; MCPServer exposes agents, tools and workflows; the Mastra server also answers MCP at /api/mcp.[13][14] |
| Auth and access rules | Copilotz:Built in, under MIT. Every call names who acts, for whom and where. Each Action says who may call it (allow), asked of an agent and of whom it works for. Rules at the data filter every read and check every write, whatever the way in.[1][3] | Mastra:Authentication is optional and off by default, with built-in and third-party providers. Role-based access and fine-grained authorization need a paid Enterprise license in production (free in development). Tools can require approval.[15][16][17] |
| Persistence | Copilotz:One store for everything: in memory, SQLite or PostgreSQL, held to one conformance suite. Moving between them changes one line.[18] | Mastra:Storage adapters for libSQL, PostgreSQL, MongoDB, DynamoDB, Cloudflare D1, Redis and many more.[19] |
| Observability | Copilotz:Every write and Action call is an event naming who acted, for whom and where. Metrics follow OpenTelemetry's model, exported over OTLP or as Prometheus text.[3][20] | Mastra:Traces of agents, workflows, tools and model calls; exporters for Langfuse, Datadog and any OpenTelemetry platform; Studio, a UI to build and test.[21][22] |
| Testing | Copilotz:The whole app, tested offline with a scripted model and a manual clock, and no API key. copilotz/testing is one test API for Node, Deno and Bun.[1][3] | Mastra:Evals: scorers (model-graded, rule-based and statistical), with a Vitest integration that runs them as tests.[23][24] |
| Deployment | Copilotz:You host it: a Node web host and a store from the environment, SQLite or PostgreSQL, with a lease so a deploy hands over without two writers.[25] | Mastra:Built-in deployers for Vercel, Netlify and Cloudflare, your own server, or the hosted Mastra platform.[4][26] |
| Channels | Copilotz:A web page, a terminal, a REST API and client, MCP with widgets, WhatsApp (Meta's Cloud API), voice calls (Twilio) and a chat on your site.[3] | Mastra:Channels for Slack, Microsoft Teams, Discord, Telegram, WhatsApp, GitHub and Linear; voice with speech to text, text to speech and real-time speech.[27][28] |
| License | Copilotz:MIT.[3] | Mastra:Apache 2.0 for most of the code. Enterprise features (in ee/) are source-available under a commercial license.[16][29] |
| Maturity | Copilotz:A release candidate: 1.0.0-rc.45, on 12 November 2026. 1.0 isn't out yet. A young project with a small community.[30] | Mastra:Stable: 1.0 on 20 January 2026; @mastra/core 1.83.0 on 12 November 2026. About 29,500 GitHub stars and 3.2 million npm downloads a week.[31][32][33][34] |
| Ecosystem | Copilotz:Model providers through four protocols (OpenAI, OpenAI-compatible, Anthropic and Gemini). Its own plugins for sign-in, spaces, memory, skills, routines, boards, documents and billing. Few outside integrations so far.[3][35] | Mastra:A model router over 8,285 models from 223 providers, 30 templates, and a company that has raised $35 million.[36][37][38] |
A tool, in each
Both define a tool with a schema and give it to an agent. In Mastra, the tool's execute is the work. In Copilotz, the tool calls an Action, the same one the web page and MCP call, with its allow and the rules at the data.
import { createTool } from '@mastra/core/tools'import { Agent } from '@mastra/core/agent'import { z } from 'zod' export const weatherTool = createTool({ id: 'weather-tool', description: 'Fetches weather for a location', inputSchema: z.object({ location: z.string() }), outputSchema: z.object({ location: z.string(), temperatureCelsius: z.number(), conditions: z.string(), }), execute: async ({ location }) => { return { location, temperatureCelsius: 21, conditions: 'sunny' } },}) export const weatherAgent = new Agent({ id: 'weather-agent', name: 'Weather Agent', instructions: 'You are a helpful weather assistant. Use the weatherTool to fetch current weather data.', model: 'openai/gpt-6.1-sol', tools: { weatherTool },})
From mastra.ai: Tools
// From the README's salon.ts: one Action, three callers (excerpt).actions: { "booking.make": defineAction({ input: booking, // Asked of every caller, tools included: people, agents working for them, and contacts. allow: peopleOrContacts, run: (ctx, input) => ctx.db.collection("booking").insertOne(input), }),},views: { // What a model reads after it books, the app's own or one over MCP. "tool:book": (_, ctx) => ctx.show("bookings", {}),},resources: { // The rules: a booking lives in a space, and belongs to the chat it was made in. shared: { booking: { part: "thread" } }, tools: { book: tool({ description: "Books a slot, like 'Wed 15:00'.", input: { type: "object", properties: { slot: { type: "string" } }, required: ["slot"] }, run: ({ slot }, ctx) => ctx.call("booking.make", { slot, in: ctx.in, thread: ctx.thread }), }), }, agents: { concierge: { instructions: "Book slots.", model: "openai/gpt-5.4-mini", tools: ["book"] }, }, // An MCP server at /mcp/salon. No sign-in: each conversation is a contact, in its own chat. mcp: { salon: { in: "desk", tools: { book: {} } } },},
Sources
What we say about Mastra comes from its own docs, repository, npm and announcements; what we say about Copilotz, from its docs and repository. Something wrong or out of date? Write to hello@copilotz.com and we'll fix it.
- [1]copilotz.com: AGENTS.md
- [2]mastra.ai: Docs
- [3]GitHub: copilotzhq/copilotz (README)
- [4]mastra.ai: Deployment overview
- [5]mastra.ai: Deploy to Cloudflare
- [6]mastra.ai: Tools
- [7]mastra.ai: Workflows
- [8]copilotz.com: the memory plugin
- [9]mastra.ai: Working memory
- [10]mastra.ai: Semantic recall
- [11]copilotz.com: the mcp plugin
- [12]copilotz.com: Getting Started
- [13]mastra.ai: MCP
- [14]mastra.ai: The server's MCP endpoint
- [15]mastra.ai: Auth
- [16]mastra.ai: License
- [17]mastra.ai: Human in the loop
- [18]copilotz.com: Stores
- [19]mastra.ai: Storage
- [20]copilotz.com: Metrics
- [21]mastra.ai: Observability
- [22]mastra.ai: Studio
- [23]mastra.ai: Evals
- [24]mastra.ai: Evals in Vitest
- [25]copilotz.com: Shipping the salon
- [26]mastra.ai: Mastra platform
- [27]mastra.ai: Channels
- [28]mastra.ai: Voice
- [29]GitHub: Mastra Enterprise License
- [30]GitHub: Copilotz releases
- [31]mastra.ai: Announcing Mastra 1.0
- [32]npm: @mastra/core
- [33]GitHub: mastra-ai/mastra
- [34]npm: @mastra/core downloads, 5–11 Nov 2026
- [35]copilotz.com: the models plugin
- [36]mastra.ai: Models
- [37]mastra.ai: Templates
- [38]mastra.ai: About
See it for yourself.
The guide builds one app, for people and for AI, in ten chapters, and its tests run offline.
Read the guide