{"id":30493793,"url":"https://github.com/motiadev/motia","last_synced_at":"2026-02-20T21:06:01.461Z","repository":{"id":279824117,"uuid":"911303109","full_name":"MotiaDev/motia","owner":"MotiaDev","description":"Multi-Language Backend Framework that unifies APIs, background jobs, queues, workflows, streams, and AI agents with a single core primitive with built-in observability and state management.","archived":false,"fork":false,"pushed_at":"2026-02-17T02:04:32.000Z","size":486494,"stargazers_count":15063,"open_issues_count":55,"forks_count":1000,"subscribers_count":77,"default_branch":"main","last_synced_at":"2026-02-17T04:39:22.841Z","etag":null,"topics":["agents","ai","api","backend","developer-tools","framework","genai","javascript","python","typescript"],"latest_commit_sha":null,"homepage":"https://motia.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MotiaDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-02T17:45:02.000Z","updated_at":"2026-02-17T02:43:42.000Z","dependencies_parsed_at":"2025-02-27T23:24:37.387Z","dependency_job_id":"962f5172-fe6d-41ac-ad35-1b7320e0f394","html_url":"https://github.com/MotiaDev/motia","commit_stats":null,"previous_names":["motiadev/motia"],"tags_count":213,"template":false,"template_full_name":null,"purl":"pkg:github/MotiaDev/motia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MotiaDev%2Fmotia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MotiaDev%2Fmotia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MotiaDev%2Fmotia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MotiaDev%2Fmotia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MotiaDev","download_url":"https://codeload.github.com/MotiaDev/motia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MotiaDev%2Fmotia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29664551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","api","backend","developer-tools","framework","genai","javascript","python","typescript"],"created_at":"2025-08-24T22:02:12.769Z","updated_at":"2026-02-20T21:06:01.443Z","avatar_url":"https://github.com/MotiaDev.png","language":"Python","funding_links":[],"categories":["A01_文本生成_文本对话"],"sub_categories":["大语言对话模型及数据"],"readme":"\u003e [!IMPORTANT]\n\u003e 🚀 **A brand new engine is now powering Motia and supercharged its speed \u0026 scalability. It's currently in alpha.**\n\u003e\n\u003e **[📬 Signup to be the first to get notified about future releases](https://forms.gle/24iCHL9yAk1i6LDc6) → https://forms.gle/24iCHL9yAk1i6LDc6**\n\n\u003ca href=\"https://motia.dev\"\u003e\n  \u003cimg src=\"assets/github-readme-banner.png\" alt=\"Motia Banner\" width=\"100%\"\u003e\n\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://trendshift.io/repositories/14032\" style=\"margin-right:8px;\"\u003e\n    \u003cimg src=\"https://trendshift.io/api/badge/repositories/14032\" alt=\"Motia\" style=\"width: 250px; height: 55px; margin-right:8px;\" width=\"250\" height=\"55\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://vercel.com/blog/summer-2025-oss-program#motia\" target=\"_blank\" style=\"margin-left:8px;\"\u003e\n    \u003cimg alt=\"Vercel OSS Program\" src=\"https://vercel.com/oss/program-badge.svg\" style=\"width: 250px; height: 55px; margin-left:8px;\" width=\"250\" height=\"55\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🔥 The Unified Backend Framework That Eliminates Runtime Fragmentation 🔥\u003c/strong\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eAPIs, background jobs, queueing, streaming, states, workflows, AI agents, observability, scaling, and deployment all in one system. JavaScript, TypeScript, Python, and more in a single core primitive\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/motia\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/motia?style=flat\u0026logo=npm\u0026logoColor=white\u0026color=CB3837\u0026labelColor=000000\" alt=\"npm version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/MotiaDev/motia/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-blue?style=flat\u0026logo=apache\u0026logoColor=white\u0026labelColor=000000\" alt=\"Apache 2.0 License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/MotiaDev/motia\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/MotiaDev/motia?style=flat\u0026logo=github\u0026logoColor=white\u0026color=yellow\u0026labelColor=000000\" alt=\"GitHub stars\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/motiadev\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Follow-@motiadev-1DA1F2?style=flat\u0026logo=twitter\u0026logoColor=white\u0026labelColor=000000\" alt=\"Twitter Follow\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/motia\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/1322278831184281721?style=flat\u0026logo=discord\u0026logoColor=white\u0026color=5865F2\u0026label=Discord\u0026labelColor=000000\" alt=\"Discord\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.motia.dev/manifesto\"\u003e💡 Motia Manifesto\u003c/a\u003e •\n  \u003ca href=\"https://www.motia.dev/docs/getting-started/quick-start\"\u003e🚀 Quick Start\u003c/a\u003e •\n  \u003ca href=\"https://www.motia.dev/docs/concepts/steps\"\u003e📋 Defining Steps\u003c/a\u003e •\n  \u003ca href=\"https://www.motia.dev/docs\"\u003e📚 Docs\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🚀 Create your first Motia App\n\nGet started in seconds:\n\n```bash\nnpx motia@latest create\n```\n\n---\n\n## 🎯 What is Motia?\n\nBackend development today is fragmented.\n\nAPIs live in one framework, background jobs in another, queues and schedulers elsewhere, and now AI agents and streaming systems have their own runtimes. Add observability and state management on top, and you're stitching together half a dozen tools before writing your first feature.\n\n**Motia unifies all of these concerns around one core primitive: the Step.**\n\nJust as React made frontend development simple by introducing components, Motia redefines backend development with Steps - a single primitive that handles everything.\n\nEvery backend pattern, API endpoints, background jobs, queues, workflows, AI agents, streaming, observability, and state, is expressed with the same primitive.\n\nTo read more about this, check out our **[manifesto](https://motia.dev/manifesto)**.\n\n---\n\n## The Core Primitive: the Step\n\nA Step is just a file with a `config` and a `handler`. Motia auto-discovers these files and connects them automatically.\n\nHere's a simple example of two Steps working together: an API Step that enqueues an event, and an Event Step that processes it.\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003cb\u003eTypeScript\u003c/b\u003e\u003c/summary\u003e\n\n```ts\n// steps/send-message.step.ts\nexport const config = {\n  name: 'SendMessage',\n  triggers: [\n    {\n      type: 'api',\n      method: 'POST',\n      path: '/messages',\n    }\n  ],\n  enqueues: ['message.sent']\n};\n\nexport const handler = async (req, { enqueue }) =\u003e {\n  await enqueue({\n    topic: 'message.sent',\n    data: { text: req.body.text }\n  });\n  return { status: 200, body: { ok: true } };\n};\n```\n\n```ts\n// steps/process-message.step.ts\nexport const config = {\n  name: 'ProcessMessage',\n  triggers: [\n    {\n      type: 'queue',\n      topic: 'message.sent',\n    }\n  ],\n};\n\nexport const handler = async (input, { logger }) =\u003e {\n  logger.info('Processing message', input);\n};\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eJavaScript\u003c/b\u003e\u003c/summary\u003e\n\n```js\n// steps/send-message.step.js\nconst config = {\n  name: 'SendMessage',\n  triggers: [\n    {\n      type: 'api',\n      method: 'POST',\n      path: '/messages',\n    }\n  ],\n  enqueues: ['message.sent']\n};\n\nconst handler = async (req, { enqueue }) =\u003e {\n  await enqueue({\n    topic: 'message.sent',\n    data: { text: req.body.text }\n  });\n  return { status: 200, body: { ok: true } };\n};\n\nmodule.exports = { config, handler };\n```\n\n```js\n// steps/process-message.step.js\nconst config = {\n  name: 'ProcessMessage',\n  triggers: [\n    {\n      type: 'queue',\n      topic: 'message.sent',\n    }\n  ],\n};\n\nconst handler = async (input, { logger }) =\u003e {\n  logger.info('Processing message', input);\n};\n\nmodule.exports = { config, handler };\n```\n\n\u003c/details\u003e\n\n👉 With just two files, you've built an **API endpoint**, a **queue**, and a **worker**. No extra frameworks required.\n\n**[Learn more about Steps →](https://motia.dev/docs/concepts/steps)**\n\n[![Motia combines APIs, background queues, and AI agents into one system](assets/github-readme-banner.gif)](https://motia.dev)\n\n## 💻 Remix your own Motia App in Replit\n[![Open in Replit](https://img.shields.io/badge/Open%20in-Replit-blue?logo=replit\u0026style=for-the-badge)](https://replit.com/@motiadev/motia)\n\n## 🚀 Quickstart\n\nGet Motia project up and running in **under 60 seconds**:\n\n### 1. Bootstrap a New Motia Project\n\n```bash\nnpx motia@latest create   # runs the interactive terminal\n```\n\nFollow the prompts to pick a template, project name, and language.\n![motia-terminal](assets/motia-terminal.gif)\n\n### 2. Start the Workbench\n\nInside your new project folder, launch the dev server:\n\n```bash\nnpm run dev # ➜ http://localhost:3000\n```\n\n**That's it!** You have:\n- ✅ REST APIs with validation\n- ✅ Visual debugger \u0026 tracing  \n- ✅ Multi-language support\n- ✅ Event-driven architecture\n- ✅ Zero configuration\n- ✅ AI development guides included (Cursor, OpenCode, Codex, and more)\n\n![new-workbench](assets/new-workbench.png)\n\n\u003e 📖 **[Full tutorial in our docs →](https://motia.dev/docs/getting-started/quick-start)**\n\n### 🤖 AI-Assisted Development\n\nEvery Motia project includes detailed AI development guides that work with **any AI coding tool**:\n\n- **[Cursor IDE](https://cursor.sh/)** - Optimized `.mdc` rules with context-aware suggestions\n- **[OpenCode](https://opencode.ai/)**, **[Codex (OpenAI)](https://openai.com/index/introducing-codex/)** - Full support via `AGENTS.md` standard\n- **Aider, Jules, Factory, Amp, GitHub Copilot** - Compatible with [AGENTS.md format](https://agents.md/) (used by 20k+ projects)\n\nThe guides include patterns for API endpoints, background tasks, state management, real-time streaming, and complete architecture blueprints.\n\n\u003e 🤖 **[Learn more about AI development support →](https://motia.dev/docs/ai-development-guide)**\n\n## 🎯 Triggers\n\n| Type | When it runs | Use Case |\n|------|--------------|----------|\n| **`api`** | HTTP Request | REST endpoints |\n| **`queue`** | Queue subscription | Background processing |  \n| **`cron`** | Schedule | Recurring jobs |\n| **`state`** | State change | State management |\n| **`stream`** | Stream subscription | Real-time streaming |\n\n\u003e 📖 **[Learn more about Steps →](https://motia.dev/docs/concepts/steps)**\n\n---\n\n## 🎯 Examples\n\n### 🏆 **[ChessArena.ai](https://chessarena.ai)** - Full-Featured Production App\n\nA complete chess platform benchmarking LLM performance with real-time evaluation.\n\n**[Live Website →](https://chessarena.ai)** | **[Source Code →](https://github.com/MotiaDev/chessarena-ai)**\n\n\u003e ![ChessArena.ai in action (raw GIF)](https://github.com/MotiaDev/chessarena-ai/blob/main/public/images/chessarena.gif?raw=true)\n\n**Built from scratch to production deployment, featuring:**\n- 🔐 **Authentication \u0026 user management**\n- 🤖 **Multi-agent LLM evaluation** (OpenAI, Claude, Gemini, Grok)\n- 🐍 **Python engine integration** (Stockfish chess evaluation)\n- 📊 **Real-time streaming** with live move updates and scoring\n- 🎨 **Modern React UI** with interactive chess boards\n- 🔄 **Event-driven workflows** connecting TypeScript APIs to Python processors\n- 📈 **Live leaderboards** with move-by-move quality scoring\n- 🚀 **Production deployment** on Motia Cloud\n\n### 📚 **More Examples**\n\n**[View all 20+ examples →](https://github.com/MotiaDev/motia-examples)**\n\n| Example | Description |\n|---------|-------------|\n| **[AI Research Agent](https://github.com/MotiaDev/motia-examples/tree/main/examples/ai-deep-research-agent)** | Web research with iterative analysis |\n| **[Streaming Chatbot](https://github.com/MotiaDev/motia-examples/tree/main/examples/streaming-ai-chatbot)** | Real-time AI responses |\n| **[Gmail Automation](https://github.com/MotiaDev/motia-examples/tree/main/examples/gmail-workflow)** | Smart email processing |\n| **[GitHub PR Manager](https://github.com/MotiaDev/motia-examples/tree/main/examples/github-integration-workflow)** | Automated PR workflows |\n| **[Finance Agent](https://github.com/MotiaDev/motia-examples/tree/main/examples/finance-agent)** | Real-time market analysis |\n\n**Features demonstrated:** Multi-language workflows • Real-time streaming • AI integration • Production deployment\n\n---\n\n## 🌐 Language Support\n\n| Language | Status | \n|----------|--------|\n| **JavaScript** | ✅ Stable |\n| **TypeScript** | ✅ Stable |\n| **Python** | ✅ Stable |\n| **Ruby** | 🚧 Beta |\n| **Go** | 🔄 Soon |\n\n## 📚 Resources\n\n- **[📖 Documentation](https://motia.dev/docs)** - Complete guides and API reference\n- **[💬 Discord](https://discord.gg/motia)** - Community support and discussions\n- **[🐛 GitHub Issues](https://github.com/MotiaDev/motia/issues)** - Bug reports and feature requests\n- **[🗺️ Roadmap](https://github.com/orgs/MotiaDev/projects/2)** - Upcoming features and progress\n\n## 🚧 Roadmap\n\nWe have a public roadmap for Motia, you can view it [here](https://github.com/orgs/MotiaDev/projects/2/views/4).\n\nFeel free to add comments to the issues, or create a new issue if you have a feature request.\n\n| Feature | Status | Link | Description |\n| ------- | ------ | ---- | ----------- |\n| Streams: RBAC | ✅ Shipped | [#495](https://github.com/MotiaDev/motia/issues/495) | Add support for RBAC |\n| Streams: Workbench UI | ✅ Shipped | [#497](https://github.com/MotiaDev/motia/issues/497) | Add support for Workbench UI |\n| Queue Strategies | ✅ Shipped | [#476](https://github.com/MotiaDev/motia/issues/476) | Add support for Queue Strategies |\n| Reactive Steps | ✅ Shipped | [#477](https://github.com/MotiaDev/motia/issues/477) | Add support for Reactive Steps |\n| Point in time triggers | 📅 Planned | [#480](https://github.com/MotiaDev/motia/issues/480) | Add support for Point in time triggers |\n| Workbench plugins | ✅ Shipped | [#481](https://github.com/MotiaDev/motia/issues/481) | Add support for Workbench plugins |\n| Rewrite core in Rust | ✅ Shipped | [#482](https://github.com/MotiaDev/motia/issues/482) | Rewrite our Core in Rust |\n| Decrease deployment time | ✅ Shipped | [#483](https://github.com/MotiaDev/motia/issues/483) | Decrease deployment time |\n| Built-in database support | 📅 Planned | [#484](https://github.com/MotiaDev/motia/issues/484) | Add support for built-in database |\n\n## 🤝 Contributing\n\nWe welcome contributions! Check our **[Contributing Guide](https://github.com/MotiaDev/motia/blob/main/CONTRIBUTING.md)** to get started.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[🚀 Get Started](https://motia.dev)** • **[📖 Docs](https://motia.dev/docs)** • **[💬 Discord](https://discord.gg/motia)**\n\n\u003ca href=\"https://git-history.com\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://git-history.com/api/embed/stars?repos=MotiaDev/motia\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://git-history.com/api/embed/stars?repos=MotiaDev/motia\u0026theme=light\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://git-history.com/api/embed/stars?repos=MotiaDev/motia\u0026theme=dark\" width=\"100%\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n\u003csub\u003e⭐ **Star us if you find Motia useful!**\u003c/sub\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmotiadev%2Fmotia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmotiadev%2Fmotia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmotiadev%2Fmotia/lists"}