Early access. Cloud sessions and managed agent runs are not open to every account yet: we are
letting accounts in gradually while we test. They run in a cloud sandbox operated by Mutagent, so
there is nothing to host. A sandbox with nothing to do for 15 minutes stops; send the session a
message and it wakes up, delivers your message and carries on in the same conversation.
--env <name>;
without --env, it uses the default slot, which has no Environment.
Deploy
mutagent agent deploy <agent.md> [--env <name>] [--no-activate]
Deploy compiles the folder on your machine and uploads the package. Before anything is written, the
server verifies the package digests and its name, and checks:
modelis in the workspace model list (mutagent helix models). A model of an LLM provider the workspace has not configured is refused with 428.- The Environment named by
--envexists in the workspace. - Every secret in
harness.bindings.secretssetsrequired: false.requireddefaults totrue. - At least one sandbox provider can receive a package.
- No inline agent already uses the slug.
- Creates the agent by its
name, or reuses the agent with that slug. An archived agent with that slug is brought back. - Stores new content as the next revision, or reuses the revision with unchanged content.
- Creates the slot on the first deploy to it.
- Activates the revision in the slot. With
--no-activate, the revision exists, but@slugstill runs the previous active revision.
--json, deploy prints one result on stdout: slug, revision (a number),
activated, environment, activeRevision and operationId. status is active, or stored
with --no-activate. A refusal exits 1 with the server’s code, such as MODEL_NOT_IN_LIST or
ENVIRONMENT_NOT_FOUND.
If a deploy or activate fails without an answer (a network error or a 5xx), the request may still
have been accepted. Run the same command again with the --idempotency-key the error names; a new
key is a new request. mutagent agent inspect --operation <operation-id> --json shows the recorded
outcome of an operation.
Activate
mutagent agent activate <slug> --revision v<N> [--env <name>]
Activate makes revision N the slot’s active revision. Use it to roll back to an earlier revision.
- It runs the same checks as deploy: the model, the Environment and the sandbox provider.
- Each slot has one active revision. Activating a revision replaces the previous one in that slot.
- A running session keeps the revision it started with. New runs use the new active revision.
- It enables a retired slot again.
- It refuses an archived agent with 409
MANAGED_AGENT_ARCHIVED. Only deploy brings an archived agent back.
Run
mutagent helix agent @<slug>[:v<N>|:latest] [--env <name>] -p "<task>"
The address chooses the revision:
Before any sandbox starts, the run is refused when:
- No agent has that slug (404).
- The agent has no slot in that Environment (404). Deploy to it first.
- The agent is archived (409
MANAGED_AGENT_ARCHIVED). - The slot is retired (409
MANAGED_AGENT_SLOT_RETIRED), with a pinned revision or without. - The slot has no active revision,
vNdoes not exist or is not validated, or:latestfinds no validated revision (422). - The model is not in the workspace model list (422). If the LLM provider was deactivated after deploy, the run is refused.
- The slot’s Environment no longer exists (404, naming the Environment).
mutagent agent inspectstill lists the slot. - The chosen sandbox provider cannot receive a package (422).
-p, a refusal is printed on stderr with the fix to run. In --rpc mode it is one JSON line on
stderr with code, error and suggestedAction; stdout stays the session’s.
After these checks, the sandbox starts, the package is copied in and its digest is checked, and Helix
starts with the package’s prompt, tools and skills. If the tools the package registers do not match
agent.md, the run stops and its sandbox is stopped.
Retire
mutagent agent retire <slug> [--env <name>] --force
Retire disables the slot. The slot takes no new runs, and live sessions finish. To enable the slot
again, activate a revision in it.
--force (or -f) is required every time, --json included. Retiring a slot that is already
retired succeeds and changes nothing.
Archive
Themutagent CLI has no delete command. Deleting a managed agent with the SDK (agents.deleteAgent
in TypeScript, agents.delete_agent in Python) archives it:
- While any slot is live, the delete is refused with 409
MANAGED_AGENT_HAS_SLOTS. Retire every slot first. - Once every slot is retired, the agent is archived, not deleted. Its revisions and session history stay.
mutagent agent listleaves archived agents out.mutagent agent list --include-archivedshows them.- Activate and run refuse an archived agent.
- Deploying the same
nameagain brings the agent back.
Not available yet
Managed agents
The agent, its revisions, its slots, and its runs.
mutagent agent
Every
mutagent agent command and its flags.