compare · vs Mastra

agentlib vs Mastra — Dart mobile-native vs TypeScript backend

Side-by-side: agentlib (Dart, mobile-native, on-device + cloud) vs Mastra (TypeScript, server-side / edge, multi-provider). Different runtimes, complementary roles.

Mastra is the strongest TypeScript-first agent framework today. agentlib is the strongest Dart-first mobile agent framework. The decision is mostly about which runtime your agent code lives in.

Runtime

  • Mastra: TypeScript. Node, Bun, Deno, Cloudflare Workers, Vercel. Server-side or edge.
  • agentlib: Dart. Inside a Flutter app — iOS, Android, macOS.

You can’t run Mastra natively inside an iOS app sandbox. You can’t run agentlib on a Cloudflare Worker. Pick by where the agent code needs to ship.

Primitive overlap

Both ship strong agent loops, multi-provider model routing, MCP support, and workflow primitives. The shapes are different but the ambitions are similar.

PrimitiveMastraagentlib
Multi-provider models✓ (cloud)✓ (cloud + on-device)
Subagentsagent-as-toolsync / parallel / background
Handoffs✓ (1.1.0+)
Workflows✓ (steps)✓ (subagent composition)
Snapshotspartialpublic API, SQLite
Hookssome21
MCPHTTPHTTP + WebSocket
RAGfirst-classbring your own retriever
Tool surfaceJSON-RPCJSON-RPC + Sh mini-shell
Lifecyclesuspend / resumesuspend / resume + push-resume + battery / network
RuntimeTS backend / edgeDart Flutter app

Mastra’s RAG story is more developed; agentlib treats retrieval as a tool you bring. agentlib’s mobile-lifecycle story doesn’t exist in Mastra (and doesn’t need to, for the backend target).

Combining them

Backend + mobile is a clean split. Mastra orchestrates server-side workflows and serves an HTTP API or an MCP server. agentlib’s Flutter agent calls into it. Some teams put the heavy reasoning behind a Mastra service and use agentlib for everything device-side.

Bottom line

For TypeScript backends and edge deployments, Mastra is excellent. For mobile apps, agentlib is the native pick. For products that span both, run them together — same protocols, complementary scopes.

Pick agentlib if…
  • Your agent runs inside a Flutter, iOS, or Android app.
  • You need on-device models or sandbox-safe execution.
  • You want native Dart APIs and pub.dev distribution.
  • You need lifecycle hooks (suspend / resume / low battery).
  • You want a Unix-shell-shaped tool surface (Sh).
Pick Mastra if…
  • Your agent runs on a TypeScript backend (Node, Bun, Deno).
  • You're deploying to edge runtimes (Cloudflare Workers, Vercel).
  • You want a TypeScript-first agent framework with workflows and RAG.
  • You need a mature TypeScript MCP ecosystem.

FAQ

Can I use Mastra on the backend and agentlib on the device?
Yes, and this is a sensible split. Mastra handles backend orchestration, workflows, RAG; agentlib handles the device-side agent (UI orchestration, on-device classification, offline fallback). They interoperate over MCP or HTTPS.
next

See the full primitives surface.

agentlib ships subagents, skills, snapshots, 21 hooks, an Sh mini-shell, MCP transports, and on-device routing.