We built Puras because shipping agentic features to production is still harder than it should be. You have a great idea for a long-running agent, you have an API key from an LLM provider, you have a frontend — and then you stop. Where does the agent run? How do you keep it warm? How do you bill for it?
Puras gives you a managed backend built around a single primitive: the skill.
A skill is a directory with a skill.yaml. Its entrypoint decides how it runs:
- Point at a
.mdfile and the worker treats the file as a system prompt and starts an LLM tool-use loop with the tools you declared. That's an agentic skill — multi-step, tool-using, long. - Point at
main.py:runand the worker runs your Python in an isolated subprocess. That's a deterministic skill — fast, predictable, no LLM in the loop unless you call one yourself.
Same submission API, same billing, same observability. The only difference is what runs inside the worker.
The dev loop
You install the Puras MCP server in Claude Code, point it at your project, and push code with one tool call. No git remote, no Docker, no CI to set up.
claude mcp add puras --command "puras-mcp"
Then ask Claude to push your skill. That's it.
What's next
We're rolling out per-skill versioning, sandboxing on Fly Machines, and a
real-time job stream. Subscribe to the feed at /blog to follow along.