Skip to main content
Only for local builds. cycls run and cycls shell build on your machine and need the Docker daemon. cycls run --remote and cycls deploy build in the cloud, so a laptop without Docker can still develop and ship. See Local and remote builds.
Anthropic through the native API, and any OpenAI-compatible endpoint through a base URL. That covers OpenAI, Azure, Gemini compatible endpoints, Groq, xAI, Mistral, DeepSeek, GLM, Qwen, Kimi, OpenRouter, vLLM, SGLang and private gateways. Reasoning control is translated per vendor. See Models.
Yes. A function or app body is ordinary Python, so any library you declare in cycls.Image().pip(...) works. Use @cycls.function or @cycls.app and call whatever you like. cycls.LLM is the managed loop, not a requirement.
The SDK is open source under MIT at github.com/Cycls/cycls. Cycls Cloud is the managed service that builds, hosts and scales deployments.
On volumes you declare. Chats, files and credentials live under the volume mounted at /workspace for that deployment. Deleting a deployment detaches volumes and never deletes their data. See Volumes.
Nothing. State lives on the volume, and the volume reference is the identity. Redeploying the same name reattaches the same storage with files intact.
Yes. Attachment is by name, so several deployments can mount the same volume. Use .read_only() for consumers that must not write. See Sharing across deployments.
It runs in a bubblewrap sandbox with a read-only root, a cleared environment, the user’s workspace as the only writable path, and the cloud metadata range blocked. Network access is on by default and can be turned off with .sandbox(network=False). The full threat model, including documented bypasses, is in Sandbox and trust model.
Deployments are served at https://<name>.cycls.ai. For a custom domain, contact the team through cycls.com/contact.
Set token prices with cycls.LLM().price(...), then use cycls cost <name> for totals or cycls sql for arbitrary slices. Infrastructure cost is in the billing table. See Logs, cost and SQL.
Yes. Agents extend apps, so @my_agent.server.api_route(...) adds routes to the same deployment, and Depends(my_agent.auth) protects them with the same identity the chat uses.
f.remote() runs your current code on a cloud executor, which is the development loop. cycls.remote("name") calls what was deployed under that name, which is what callers without your source use.

Still stuck

GitHub issues

Report a bug or request a feature.

Contact

Reach the team.