Introduction
Magmell runs application-controlled agents without making your team own sandbox provisioning, execution queues, or result collection. You write a handler and invoke it with JSON.
The three things to know
Section titled “The three things to know”A handler is your code
Section titled “A handler is your code”A handler is a Python module or TypeScript module containing handle(input). The input is a JSON
object and the return value must be JSON serializable. Module initialization happens when the
runtime starts, so clients and other reusable resources can be initialized once outside the
function. Python 3.12 is generally available; Node.js 22 is capability- and policy-gated during its
staged rollout.
def handle(input: dict) -> dict: name = input.get("name", "world") return {"message": f"Hello, {name}!"}A deployment is an immutable build
Section titled “A deployment is an immutable build”A deployment combines a handler name, an explicit version, its source files, runtime, and package
requirements. Magmell builds that definition into a reusable runtime artifact. The same active
(name, version) cannot be created twice.
A run is one invocation
Section titled “A run is one invocation”A run supplies input to one deployment. It moves through queued and running, then finishes as
succeeded or failed. The run stores the result or a redacted error along with timestamps, logs,
and structured events.
How the pieces connect
Section titled “How the pieces connect”handler.py + requirements or handler.ts + package-lock.json │ ▼ deployment: greeter@1 │ ├── run #1 → succeeded → {"message":"Hello, Ada!"} ├── run #2 → succeeded → {"message":"Hello, Linus!"} └── run #3 → failed → redacted error + eventsRuns are numbered per handler name across all versions. That makes greeter#42 a stable human
reference even after you deploy greeter@2.
Ways to work with Magmell
Section titled “Ways to work with Magmell”| Interface | Best for |
|---|---|
| Web console | Exploring deployments and inspecting runs interactively |
| CLI | Deploying from a terminal, scripts, and CI |
| TypeScript control-plane SDK | Invoking and operating agents from an application |
| TypeScript Agent SDK | Secrets and telemetry inside a Node.js handler |
| HTTP API | Integrations that cannot use the SDK |
Most people should begin with the CLI and use the console to inspect what happened.