CanyonOS is a control plane that takes your agentic workflow and deploys it, providing observability and managing distributed deployment. Maintained by Canyon Code.
| Without CanyonOS | With CanyonOS | |
|---|---|---|
| Orchestration | Set up Kubernetes or Docker Compose | canyonos deploy |
| Observability | Add Langfuse or Arize Phoenix | Built in, exports OTel anywhere |
| Async execution | Add Ray or KubeRay | Built in, no code changes |
Three systems replaced by one install.
- Easy deployment: Developers write agents in python as if writing completely localized code. CanyonOS takes care of distributed deployment of agents and workflows.
- Complete Observability: All metrics, logs, and traces from your runtime are collected and displayed, with OTel-compatability allowing connection to any OTel-compatable frontend
- Fully Asynchronous: Asynchronous execution built in, without any user workflow modification.
- Non-invasive: None of your existing code is changed, a new folder (.car) is created when building on top of a existing workflow
- Docker with Compose v2 — used to manage everything
- Optional: A coding agent in terminal (used only by canyonos build to convert workflow to canyonos compatible format) — Claude Code CLI or Codex CLI
Use any of the following package managers to install the canyonos CLI (curl, brew, uv, pip):
curl -fsSL https://raw.githubusercontent.com/CanyonCodeCoreAI/canyonos/main/packages/cli/install.sh | sh
# OR
uv tool install canyonosRun canyonos doctor to verify all prerequisites are set up before your first deploy:
canyonos doctor| Command | What it does |
|---|---|
build |
Convert your project to CanyonOS format using your coding agent |
deploy |
Build images, launch the workflow, start the dashboard |
See the CLI reference for every command.
See docs/QUICKSTART.md.
How is this different from LangGraph Platform, Ray, or Temporal?
CanyonOS runs plain Python agents from any framework. LangGraph Platform runs LangGraph apps. Ray is general-purpose distributed compute, but CanyonOS scales and traces agents specifically. Temporal makes long workflows durable but CanyonOS deploys, scales, and observes agent workflows.
Why not just use Kubernetes?
Kubernetes manages containers. CanyonOS runs agents in addition to containers. It performs the same actions as K8s, traces every call across agents, and provides prompt. It needs only Docker, not a cluster.
What problem does it solve that I can't solve today?
Today, taking a multi-agent workflow to production means wiring up orchestration, async execution, and observability yourself. CanyonOS does all three from one canyonos deploy, without changing your agent code.
Who is it for, and when do I need it?
Teams whose agent workflow works on a laptop and now needs to run across machines, scale under load, and be observable, without building that platform themselves.
See ROADMAP.md for the work we plan to do next.
We would love to support you if you wanted to contribute to this repo! For help getting started, go to CONTRIBUTING.md.
If you have found an issue pertaining to the security of CanyonOS, please look at our SECURITY.md page for more info.
If you find CanyonOS (Nalar) useful for your research, please cite our paper:
@misc{laju2026nalar,
title={Nalar: An agent serving framework},
author={Marco Laju and Donghyun Son and Saurabh Agarwal and Nitin Kedia and Myungjin Lee and Jayanth Srinivasa and Aditya Akella},
year={2026},
eprint={2601.05109},
archivePrefix={arXiv},
primaryClass={cs.DC},
url={https://arxiv.org/abs/2601.05109},
}This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
