{"id":43730724,"url":"https://github.com/imaginary-cherry/mageflow","last_synced_at":"2026-04-05T18:02:53.485Z","repository":{"id":328166743,"uuid":"1075321047","full_name":"imaginary-cherry/mageflow","owner":"imaginary-cherry","description":"A support package for task manager orchestration.","archived":false,"fork":false,"pushed_at":"2026-03-27T15:08:51.000Z","size":8446,"stargazers_count":1,"open_issues_count":50,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T23:34:15.990Z","etag":null,"topics":["asyncio","hatchet","microservices","python","task","task-manager"],"latest_commit_sha":null,"homepage":"https://imaginary-cherry.github.io/mageflow/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imaginary-cherry.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-10-13T10:41:39.000Z","updated_at":"2026-03-22T21:33:28.000Z","dependencies_parsed_at":"2026-03-08T17:02:53.739Z","dependency_job_id":null,"html_url":"https://github.com/imaginary-cherry/mageflow","commit_stats":null,"previous_names":["yedidyakfir/mageflow"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/imaginary-cherry/mageflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imaginary-cherry%2Fmageflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imaginary-cherry%2Fmageflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imaginary-cherry%2Fmageflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imaginary-cherry%2Fmageflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imaginary-cherry","download_url":"https://codeload.github.com/imaginary-cherry/mageflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imaginary-cherry%2Fmageflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31444702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T15:22:31.103Z","status":"ssl_error","status_checked_at":"2026-04-05T15:22:00.205Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["asyncio","hatchet","microservices","python","task","task-manager"],"created_at":"2026-02-05T10:14:41.382Z","updated_at":"2026-04-05T18:02:53.480Z","avatar_url":"https://github.com/imaginary-cherry.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"logo.png\" alt=\"MageFlow Logo\" width=\"200\"/\u003e\n\n [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n  [![mageflow unit coverage](https://codecov.io/gh/imaginary-cherry/mageflow/branch/main/graph/badge.svg?flag=mageflow-unit)](https://codecov.io/gh/imaginary-cherry/mageflow?flags[0]=mageflow-unit)\n  [![mageflow integration coverage](https://codecov.io/gh/imaginary-cherry/mageflow/branch/main/graph/badge.svg?flag=mageflow-integration)](https://codecov.io/gh/imaginary-cherry/mageflow?flags[0]=mageflow-integration)\n  [![thirdmagic coverage](https://codecov.io/gh/imaginary-cherry/mageflow/branch/main/graph/badge.svg?flag=thirdmagic)](https://codecov.io/gh/imaginary-cherry/mageflow?flags[0]=thirdmagic)\n  [![PyPI version](https://badge.fury.io/py/mageflow.svg)](https://badge.fury.io/py/mageflow)\n  [![Downloads](https://static.pepy.tech/badge/mageflow)](https://pepy.tech/project/mageflow)\n  [![Documentation](https://img.shields.io/badge/docs-github.io-blue)](https://imaginary-cherry.github.io/mageflow/)\n  [![CodeRabbit](https://img.shields.io/coderabbit/prs/github/imaginary-cherry/mageflow?logo=coderabbit)](https://coderabbit.ai)\n\n\n  \n  📚 **[Full Documentation](https://imaginary-cherry.github.io/mageflow/)** | [Installation](https://imaginary-cherry.github.io/mageflow/setup/) | [API Reference](https://imaginary-cherry.github.io/mageflow/api/)\n\n\u003c/div\u003e\n\n# MageFlow\n\n**Ma**nage **G**raph **E**xecution Flow - A unified interface for task orchestration across different task managers.\n\n## Why MageFlow?\n\nInstead of spreading workflow logic throughout your codebase, MageFlow centralizes task orchestration with a clean, unified API. Switch between task managers (Hatchet, Taskiq, etc.) without rewriting your orchestration code.\n\n## Key Features\n\n🔗 **Task Chaining** - Sequential workflows where tasks depend on previous completions  \n🐝 **Task Swarms** - Parallel execution with intelligent coordination  \n📞 **Callback System** - Robust success/error handling  \n🎯 **Task Signatures** - Flexible task definition with validation  \n⏯️ **Lifecycle Control** - Pause, resume, and monitor task execution  \n💾 **Persistent State** - Redis-backed state management with recovery  \n\n## Installation\n\n```bash\npip install mageflow[hatchet]  # For Hatchet backend\n```\n\n## Quick Setup\n\n```python\nimport asyncio\nimport redis\nfrom hatchet_sdk import Hatchet, ClientConfig\nimport mageflow\n\n# Configure backend and Redis\nconfig = ClientConfig(token=\"your-hatchet-token\")\nredis_client = redis.asyncio.from_url(\"redis://localhost\", decode_responses=True)\nhatchet_client = Hatchet(config=config)\n\n# Create MageFlow instance\nmf = mageflow.Mageflow(hatchet_client, redis_client=redis_client)\n```\n\n## Example Usage\n\n### Define Tasks\n\n```python\nfrom pydantic import BaseModel\n\nclass ProcessData(BaseModel):\n    data: str\n\n@mf.task(name=\"process-data\", input_validator=ProcessData)\nasync def process_data(msg: ProcessData):\n    return {\"processed\": msg.data}\n\n@mf.task(name=\"send-notification\") \nasync def send_notification(msg):\n    print(f\"Notification sent: {msg}\")\n    return {\"status\": \"sent\"}\n```\n\n### Chain Tasks\n\n```python\n# Sequential execution\nworkflow = await mageflow.chain([\n    process_data_task,\n    send_notification_task\n], name=\"data-pipeline\")\n```\n\n### Parallel Swarms\n\n```python\n# Parallel execution\nswarm = await mageflow.swarm([\n    process_user_task,\n    update_cache_task,\n    send_email_task\n], task_name=\"user-onboarding\")\n```\n\n### Task Signatures with Callbacks\n\n```python\ntask_signature = await mageflow.sign(\n    task_name=\"process-order\",\n    task_identifiers={\"order_id\": \"12345\"},\n    success_callbacks=[send_confirmation_task],\n    error_callbacks=[handle_error_task]\n)\n```\n\n## Use Cases\n\n- **Data Pipelines** - ETL operations with error handling\n- **Microservice Coordination** - Orchestrate distributed service calls  \n- **Batch Processing** - Parallel processing of large datasets\n- **User Workflows** - Multi-step onboarding and registration\n- **Content Processing** - Media processing with multiple stages\n\n## MageFlow Viewer\n\nA desktop app for visualizing your workflows as interactive task graphs. See the [full docs](docs/viewer.md) for details.\n\n**Homebrew (macOS):**\n```bash\nbrew install imaginary-cherry/mageflow/mage-voyance        # stable\nbrew install imaginary-cherry/mageflow/mage-voyance-beta   # beta\n```\n\n**Direct download:** [GitHub Releases](https://github.com/imaginary-cherry/mageflow/releases)\n\n## Documentation\n\n- [Setup Guide](docs/setup.md)\n- [API Reference](docs/api/)\n- [Task Lifecycle](docs/documentation/task-lifecycle.md)\n- [Callbacks](docs/documentation/callbacks.md)\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimaginary-cherry%2Fmageflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimaginary-cherry%2Fmageflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimaginary-cherry%2Fmageflow/lists"}