{
  "markdown": "<!-- # Motus -->\n\n<!-- TODO: commit logo to assets/ and replace with repo-relative or raw.githubusercontent path -->\n<p align=\"center\">\n  <img alt=\"Motus\" src=\"assets/motus.png\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" /></a>\n  <a href=\"https://github.com/lithos-ai/motus/releases\"><img alt=\"Release\" src=\"https://img.shields.io/github/v/release/lithos-ai/motus\" /></a>\n  <a href=\"https://www.python.org/downloads/\"><img alt=\"Python\" src=\"https://img.shields.io/badge/python-3.12+-blue.svg\" /></a>\n  <a href=\"https://join.slack.com/t/lithosaicommunity/shared_invite/zt-3uf2cykza-P9VETbJAUx7WKjwxMk~06Q\"><img alt=\"Slack\" src=\"https://img.shields.io/badge/Slack-community-purple?logo=slack\" /></a>\n  <!-- TODO: add CI badge once URL is live -->\n  <!-- <a href=\"https://github.com/lithos-ai/motus/actions\"><img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/lithos-ai/motus/ci.yml?branch=main\" /></a> -->\n</p>\n\n<h3 align=\"center\">\n  Higher capability. Lower cost. Faster agents.<br/>\n  Self-managed or cloud deployment, agent serving in one command. Same code, any scale.\n</h3>\n\n<p align=\"center\">\n  <a href=\"https://www.lithosai.com/\">LithosAI</a> &middot;\n  <a href=\"https://console.lithosai.cloud/\">Cloud</a> &middot;\n  <a href=\"https://docs.motus.lithosai.com/\">Docs</a> &middot;\n  <a href=\"https://docs.motus.lithosai.com/getting-started/quickstart\">Quickstart</a> &middot;\n  <a href=\"https://github.com/lithos-ai/motus/tree/main/examples\">Examples</a> &middot;\n  <a href=\"https://docs.motus.lithosai.com/contributing/development-setup\">Contributing</a> &middot;\n  <a href=\"https://join.slack.com/t/lithosaicommunity/shared_invite/zt-3uf2cykza-P9VETbJAUx7WKjwxMk~06Q\">Slack</a>\n</p>\n\n## About\n\nMotus is an open-source agent serving project that enables higher capability, lower cost, and faster agents. As building agents has never been easier, Motus takes a no-framework approach and provides the infrastructure needed for efficient agent serving. Deploy simply across self-managed and cloud environments at any scale.\n\n## Use with your coding agent\n\nThe fastest way to get started is to let your coding agent handle building, serving, and deploying with Motus.\n\nMotus works out of the box with any coding agent (e.g., Claude Code, Codex, or Cursor). Install the plugin and CLI with one command:\n\n```sh\ncurl -fsSL https://www.lithosai.com/motus/install.sh | sh\n```\n\nThen use it directly in your workflow:\n\n```\n/motus                          # activate Motus skills\n\nbuild your agent                # start building your agent\n\n/motus serve                    # serve locally\n\n/motus deploy                   # deploy to the cloud\n```\n\nSee [`plugins/motus/README.md`](plugins/motus/README.md) for marketplace installs and more details.\n\n\n\n## Serve & deploy any agent\n\nInstall Motus to serve agents locally and deploy them to [Motus Cloud](https://console.lithosai.cloud/). Motus supports agents built with:\n\n* Motus\n*  OpenAI Agents SDK\n*  Anthropic SDK\n*  Google ADK\n*  Plain Python\n\n### Install Motus in your project\n\nUsing uv:\n\n```bash\nuv add lithosai-motus\n```\n\nOr with pip:\n\n```bash\npip install lithosai-motus\n```\n\n### Serve locally and deploy to the cloud\n\n```bash\n# Serve locally\nmotus serve start myapp:agent --port 8000\n\n# Chat with your local agent\nmotus serve chat http://localhost:8000 \"Hello!\"\n\n# Deploy to Motus Cloud\nmotus deploy --name myapp myapp:agent\n\n# Chat with your deployed agent\nmotus serve chat https://myapp.lithosai.com \"Hello!\"\n```\n\n## Build with Motus\n\nMotus is powered by a serving runtime that automatically converts Python code into parallel, resilient workflows. Everything is designed to be simple, intuitive, and customizable.\n\n### Build an agent\n\n```python\nfrom motus.agent import ReActAgent\nfrom motus.models import OpenAIChatClient\nfrom motus.runtime import resolve\nfrom motus.tools import tool\n\n@tool  # define a simple tool\nasync def search(query: str) -> str:\n    \"\"\"Search the web for information.\"\"\"\n    return f\"Results for: {query}\"\n\n# define a ReAct agent\nagent = ReActAgent(client=OpenAIChatClient(), model_name=\"gpt-4o\", tools=[search])\nprint(resolve(agent(\"Hello World!\")))\n```\n\nStart simple, and explore the [agents documentation](https://docs.motus.lithosai.com/concepts/agents) for more advanced usage.\n\n### Build a workflow\n\nExample: fetch an article, summarize it, extract hashtags in parallel, then publish:\n\n```python\nfrom motus.runtime import resolve\nfrom motus.runtime.agent_task import agent_task\n\n@agent_task # wrap functions as tasks in your workflow\nasync def summarize(article): ... # just a normal function\n\n@agent_task\nasync def extract(article): ... # extract hashtags\n\n@agent_task(retries=3, timeout=10.0) # augment tasks with retries and timeouts\nasync def fetch(url): ...\n\n@agent_task\nasync def publish(summary, hashtags): ... # publish on LinkedIn\n\n# Your logic becomes your code directly:\narticle = fetch(\"https://www.lithosai.com\")\nsummary = summarize(article)            # Motus infers the dependency graph from data flow.\nhashtags = extract(article)             # Both depend on `article`, run in parallel.\npost = publish(summary, hashtags)       # Waits for both upstream tasks.\n\nprint(resolve(post)) # get final result\n```\n\nNo explicit DAGs, just Python. Motus leverages `@agent_task` decorators to turn Python functions into asynchronous tasks.\nMotus sits under your agents, providing scheduling, parallelism, caching, resilience, observability, and tracing. [Learn more about the Motus runtime](https://docs.motus.lithosai.com/concepts/workflow).\n\n### Examples\n\nRun the included examples:\n\n```bash\n# Basic ReAct agent — interactive console chat\nuv run python examples/agent.py\n\n# Task graph demo — parallelism, dependency tracking, multi-return\nuv run python examples/runtime/task_graph_demo.py\n```\n\nLearn more from our [comprehensive examples](examples/).\n\n### Motus features\n\n#### Start simple\n\n| | |\n|---|---|\n| **[Agents](https://docs.motus.lithosai.com/concepts/agents)** | `ReActAgent` runs the reasoning loop, tool dispatch, and conversation state. Multi-turn memory, structured output via Pydantic, and input/output guardrails. All built in. A working agent in under 10 lines. |\n| **[Tools](https://docs.motus.lithosai.com/concepts/tools)** | Write a function, get a tool. Expose class methods with `@tools`, wrap an MCP server with `get_mcp()`, nest another agent with `as_tool()`, or run untrusted code in a Docker sandbox. Everything composes through the same `tools=[...]` interface. Built-in utilities: skills, `bash`, file ops, `glob` / `grep`, todo tracking. |\n| **[Task-graph runtime](https://docs.motus.lithosai.com/concepts/workflow)** | `@agent_task` turns any function into a node in a dependency graph with automatic parallel execution, multi-return futures, non-blocking operators. Retries, timeouts, and backoff are declarative on the task and overridable per call site with `.policy()`. |\n| **[Observability & debugging](https://docs.motus.lithosai.com/guides/tracing)** | Every LLM call, tool invocation, and task dependency traced automatically. Interactive HTML viewer, Jaeger export, or cloud dashboard. Enabled with one env var. |\n| **[Multi-provider models](https://docs.motus.lithosai.com/concepts/models)** | Unified client for OpenAI, Anthropic, Gemini, and OpenRouter. Switch providers by changing one line, agent logic stays the same. Local models (Ollama, vLLM, SGLang) work through `base_url`. |\n| **[Local serving](https://docs.motus.lithosai.com/guides/serving)** | `motus serve` exposes any agent as a session-based HTTP API locally. Test the full serving stack before deploying to the cloud. |\n\n#### Go deeper\n\n| | |\n|---|---|\n| **[Memory](https://docs.motus.lithosai.com/concepts/memory)** | Provided memory solutions: `basic` (append-only), `compact` (auto-summarizes when token budget runs thin). Session save/restore built in. |\n| **[Guardrails](https://docs.motus.lithosai.com/guides/guardrails)** | Input and output validation on both agents and individual tools. Declare the parameters you care about — return a dict to modify, raise to block. Structured output guardrails match fields on Pydantic models. |\n| **[Multi-agent composition](https://docs.motus.lithosai.com/guides/multi-agent)** | `agent.as_tool()` wraps any agent as a tool. The supervisor doesn't know whether it's calling a function or another agent — the interface is identical. `fork()` creates independent conversation branches. |\n| **[MCP integration](https://docs.motus.lithosai.com/guides/mcp-integration)** | Connect any MCP-compatible server with `get_mcp()`. Local via stdio, remote via HTTP, or inside a Docker container. Filter and rename tools with `prefix`, `blocklist`, and guardrails. |\n| **[Docker sandboxes](https://docs.motus.lithosai.com/concepts/tools)** | Run untrusted code in isolated containers. Mount volumes, expose ports, execute shell and Python — attach to any agent as a tool provider. |\n| **[Prompt caching](https://docs.motus.lithosai.com/concepts/models)** | Prompt caching via `CachePolicy` — `STATIC` (system + tools) or `AUTO` (+ conversation prefix). Reduce latency and cost on long conversations. |\n| **SDK compatibility** | Drop-in for [OpenAI Agents SDK](https://docs.motus.lithosai.com/integrations/openai-agents), [Anthropic SDK](https://docs.motus.lithosai.com/integrations/anthropic-sdk), and [Google ADK](https://docs.motus.lithosai.com/integrations/google-adk). Change the import, keep your code. |\n| **[Human-in-the-loop](https://docs.motus.lithosai.com/guides/human-in-the-loop)** | Built-in support for interactive approval, clarification, and feedback during agent execution. Pause the agent, ask for human input, and resume. Works in both local serving and cloud deployment. |\n\n---\n\n## Contributing\n\nSee the **[Contributing Guide](https://docs.motus.lithosai.com/contributing/development-setup)** to get started, or come say hi on [Slack](https://join.slack.com/t/lithosaicommunity/shared_invite/zt-3uf2cykza-P9VETbJAUx7WKjwxMk~06Q). Let's build together!\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n",
  "bytes": 10162,
  "sha": "ae34b15f21a5d98fb29226df2427d3374aadf26c65ee2ec433316f13f580f853",
  "repo_slug": "lithos-ai/motus",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_lithos_ai_motus_motus_f0a19522/readme"
}