{"id":13456131,"url":"https://github.com/weanalyze/workcell","last_synced_at":"2025-07-31T13:11:21.226Z","repository":{"id":65383639,"uuid":"581947362","full_name":"weanalyze/workcell","owner":"weanalyze","description":"⚡ Instantly turn your python function into web app.","archived":false,"fork":false,"pushed_at":"2023-05-25T19:06:16.000Z","size":1716,"stargazers_count":39,"open_issues_count":6,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-01T00:26:16.283Z","etag":null,"topics":["chatgpt-plugins","data-driven","data-science","fastapi","gpt-4","gui","langchain","low-code","openai","python","serverless","streamlit-alternative"],"latest_commit_sha":null,"homepage":"https://weanalyze.co","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weanalyze.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2022-12-25T01:49:50.000Z","updated_at":"2024-05-27T07:17:33.000Z","dependencies_parsed_at":"2024-02-17T10:44:27.880Z","dependency_job_id":null,"html_url":"https://github.com/weanalyze/workcell","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weanalyze%2Fworkcell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weanalyze%2Fworkcell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weanalyze%2Fworkcell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weanalyze%2Fworkcell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weanalyze","download_url":"https://codeload.github.com/weanalyze/workcell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238397232,"owners_count":19465138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["chatgpt-plugins","data-driven","data-science","fastapi","gpt-4","gui","langchain","low-code","openai","python","serverless","streamlit-alternative"],"created_at":"2024-07-31T08:01:16.613Z","updated_at":"2025-02-12T01:33:19.277Z","avatar_url":"https://github.com/weanalyze.png","language":"Python","readme":"\u003c!-- markdownlint-disable MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003e\n    Workcell\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003eInstantly turn your Python function into production-ready microservice.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://pypi.org/project/workcell/\" title=\"PyPi Version\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/workcell?color=green\u0026style=flat\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/weanalyze/workcell/actions/workflows/release.yml\" title=\"PyPi Version\"\u003e\u003cimg src=\"https://github.com/weanalyze/workcell/actions/workflows/release.yml/badge.svg\"\u003e\u003c/a\u003e \n    \u003ca href=\"https://pypi.org/project/workcell/\" title=\"Python Version\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3.8%2B-blue\u0026style=flat\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/weanalyze/workcell/blob/main/LICENSE\" title=\"Project License\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache2.0-blue.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://weanalyze.co\"\u003e\n        \u003cimg alt=\"website\" src=\"https://img.shields.io/website/https/weanalyze.co?down_color=red\u0026down_message=offline\u0026up_message=online\"\u003e\n    \u003c/a\u003e    \n    \u003ca href=\"https://discord.gg/jZuDU5mQZ7\"\u003e\n        \u003cimg alt=\"discord\" src=\"https://img.shields.io/discord/1004913083812167811?label=discord\"\u003e\n    \u003c/a\u003e      \n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\n    \u003cp\u003e\n        \u003cb\u003eEnglish\u003c/b\u003e |\n        \u003ca href=\"https://github.com/weanalyze/workcell/blob/main/README_zh-hans.md\"\u003e简体中文\u003c/a\u003e \n    \u003cp\u003e\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e •\n  \u003ca href=\"https://github.com/weanalyze/workcell/releases\"\u003eChangelog\u003c/a\u003e\n\u003c/p\u003e\n\nInstantly turn your Python function into delightful app and production-ready microservice, with lightweight UI to interact with. \n\n\u003cimg align=\"center\" style=\"width: 100%\" src=\"https://github.com/weanalyze/weanalyze-resources/blob/main/assets/workcell_intro.png?raw=true\"/\u003e\n\n---\n\n## ⚡ Highlights\n\n- 🔌  Instantly turn functions into microservices within seconds.\n- 📈  Automatically generate user-friendly UI for interaction.\n- 🤗  One-click deployment to Hugging Face Spaces.\n- ☁️  Develop locally, deploy to the cloud.\n- 🧩  Empower development and analysis with scalable components.\n- 🦄  Get inspired by the open-source community.\n\n## ⏰ Status\n\n| Status | Stability | Goal |\n| ------ | ------ | ---- |\n| ✅ | Alpha | We are testing Workcell with a closed set of customers |\n| ✅ | Public Alpha | Anyone can sign up over at weanalyze.co. But go easy on us, there are a few kinks. |\n| 🚧 | Public Beta | Stable enough for most non-enterprise use-cases |\n| ❌ | Public | Production-ready |\n\nWe are currently in: **Public Alpha**.\n\nWokrlcell is heavily under development, and we expect to iterate on the APIs/UIs before reaching beta (version 0.1.0).\n\n## 🔖 Installation\n\n- [Python](https://www.python.org/) version 3.8+\n\n- Install Workcell using `pip`:\n\n    ```bash\n    pip install workcell\n    ```\n\n- Or using [Anaconda](http://anaconda.org/):\n\n    ```bash\n    conda install workcell\n    ```\n\n## 🚀 Quick Start\n\n- After workcell installed, just run:\n\n    ```bash\n    workcell hello\n    ```\n\n- You can find an automatically generated [Swagger UI](https://github.com/swagger-api/swagger-ui) from `http://127.0.0.1:7860/docs`, then just goto `http://127.0.0.1:7860/ui` to try your first workcell app:) \n\n## 📚 Guide\n\n- What happened? \n\n    Workcell has created a FastAPI service and a lightweight user interface for your functions without any additional API or UI-related code. This service is ready to be deployed to the cloud as a public service, requiring minimal setup on your end. \n\n- Speed up your development\n\n    With Workcell, you can focus on developing your core functionality while leaving the infrastructure and deployment details to the platform. All you need is to make sure your function is **workcell compatible**.\n\n- **Workcell compatible**\n\n    A workcell-compatible function must have an `input` and `output` parameter and return value based on [Pydantic models](https://pydantic-docs.helpmanual.io/). The `input` and `output` are specified using [type hints](https://docs.python.org/3/library/typing.html).\n\n    Here is an example of a simple **workcell compatible** function:\n\n    ```python title=app.py\n    from pydantic import BaseModel\n\n    class Input(BaseModel):\n        message: str\n\n    class Output(BaseModel):\n        message: str\n\n    def hello_workcell(input: Input) -\u003e Output:\n        \"\"\"Returns the `message` of the input data.\"\"\"\n        return Output(message=input.message)\n    ```\n\n## 🤗 Deployment\n\n- Why deployment?\n\n    You'll be able to access your workcell from anywhere and share it with your team and collaborators. Now you can deploy workcell to Hugging Face [Spaces](https://huggingface.co/spaces/launch) in 1-click! \n\n- **Prepare your Hugging Face account**\n\n    First you need a Hugging Face account, and prepare a [User Access Tokens](https://huggingface.co/settings/tokens), then set environment variables like below:\n\n    ```bash\n    export HUGGINGFACE_USERNAME={huggingface_username}\n    export HUGGINGFACE_TOKEN={huggingface_token}\n    ```\n\n    Replace `{huggingface_username}` and `{huggingface_token}` with yours.\n    \n    You can also store these environment variables in a `.env` file in your project folder for convenience.\n\n- **Deploy in 1-click!**    \n\n    Once you prepared a **workcell compatible** function (or project), just run:\n\n    ```bash\n    workcell up app:hello_workcell\n    ```\n\n    Voila! The deployment process will start, and within a few minutes, workcell will be available on your Hugging Face Spaces.\n\n- **Extra explain**    \n\n    When you run `workcell up`, there're actually 2 seperate step `workcell pack` and `workcell deploy` been applied. `workcell pack` will package your function code with a template into `.workcell` under your project folder, and `workcell deploy` will upload this folder to cloud.\n\n## 📖 Documents\n\n- You can find more details in our [documents](https://weanalyze.github.io/workcell/docs/quick-start).\n\n## 🎮 Examples\n\n- Get inspired and learn more about workcell by exploring our examples:\n    -  https://github.com/weanalyze/workcell-examples\n\n- We also have a curated list for you to check out, feel free to contribute!\n    - https://github.com/weanalyze/best-of-workcell\n\n## 🛣️ Roadmap\n\n- Missing a feature? Have a look at our [public roadmap](https://github.com/orgs/weanalyze/projects/5/) to see what the team is working on in the short and medium term. Still missing it? Please let us know by opening an issue!\n\n## 😆 Contacts\n\n- If you have any questions about the workcell or weanalyze , feel free to email us at: support@weanalyze.co\n\n- If you want to say hi, or are interested in partnering with us, feel free to reach us at: contact@weanalyze.co\n\n- Feel free to share memes or any questions at Discord: https://discord.weanalyze.co\n\n## License\n\nApache-2.0 License.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweanalyze%2Fworkcell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweanalyze%2Fworkcell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweanalyze%2Fworkcell/lists"}