> AI agents: this is one page from Mammoth Analytics documentation. The index of all pages as Markdown is https://docs.mammoth.io/llms.txt. Append `.md` to any docs URL, or send `Accept: text/markdown`, to get Markdown.

# mammoth workflow

> All 23 mammoth workflow commands, each with its blast radius, confirmation policy and backing Python SDK method.

> GENERATED from `mammoth schema list` and `mammoth capability list` (mammoth-cli 2.2.96, released 2026-10-22)—do not edit; run `npm run docs:capabilities`.

23 commands, grouped by blast radius.

"Off a terminal" is what a command's confirmation policy requires when nothing can answer a prompt, as in an agent or CI run: `--yes`, plus `--confirm` with the exact target for `confirm_target` commands. `TARGET` stands for the id or name the command acts on; the CLI's `confirmation_required` error names it.

The SDK symbol and API operation come from `mammoth capability list`. A command that list does not map to one shows — in both columns; `mammoth schema get <command.id>` describes any command in full.

## Destructive

| Command | Scope | Blast radius | Confirmation | Off a terminal | Wait | Pagination | SDK symbol | API operation |
|---|---|---|---|---|---|---|---|---|
| `mammoth workflow cleanup` | `project` | Destructive | `prompt_or_yes` | `--yes` | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.cleanup` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/cleanup` (CleanupGhostWorkflows) |
| `mammoth workflow delete` | `project` | Destructive | `prompt_or_yes` | `--yes` | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.delete` | `DELETE /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}` (DeleteWorkflow) |
| `mammoth workflow save-undo` | `project` | Destructive | `prompt_or_yes` | `--yes` | `always_wait` | `none` | `mammoth.api.workflows.WorkflowsAPI.undo_save` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/save/{run_id}/undo` (UndoWorkflowSave) |

## Benign mutation

| Command | Scope | Blast radius | Confirmation | Off a terminal | Wait | Pagination | SDK symbol | API operation |
|---|---|---|---|---|---|---|---|---|
| `mammoth workflow archive` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.set_archived` | `PUT /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/archived` (SetArchived) |
| `mammoth workflow attach-dataset` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.attach_dataset` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/datasets` (AttachDataset) |
| `mammoth workflow block add` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.block_add` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/blocks` (AddSkeletonBlock) |
| `mammoth workflow block auth` | `project` | Benign mutation | `confirm_target` | `--yes --confirm TARGET` | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.block_auth` | `PATCH /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/blocks/{block_id}/auth` (PatchBlockAuth) |
| `mammoth workflow block config` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.block_config` | `PATCH /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/blocks/{block_id}/config` (PromoteSkeletonBlock) |
| `mammoth workflow block type` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.block_type` | `PATCH /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/blocks/{block_id}/type` (PatchBlockType) |
| `mammoth workflow canvas` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.canvas` | `PATCH /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/canvas` (UpdateCanvasState) |
| `mammoth workflow create` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.create` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows` (CreateWorkflow) |
| `mammoth workflow duplicate` | `project` | Benign mutation | `none` | — | `always_wait` | `none` | `mammoth.api.workflows.WorkflowsAPI.duplicate` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/duplicate` (DuplicateWorkflow) |
| `mammoth workflow from-template` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.from_template` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/from-template` (InstantiateFromTemplate) |
| `mammoth workflow resolve-held` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.resolve_held` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/held/resolve` (ResolveHeldChange) |
| `mammoth workflow save` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.save` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/save` (SaveWorkflow) |
| `mammoth workflow save-cancel-step` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.cancel_save_step` | `POST /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}/save/{run_id}/steps/{step}/cancel` (CancelWorkflowSaveStep) |
| `mammoth workflow update` | `project` | Benign mutation | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.update` | `PATCH /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}` (UpdateWorkflow) |

## Read

| Command | Scope | Blast radius | Confirmation | Off a terminal | Wait | Pagination | SDK symbol | API operation |
|---|---|---|---|---|---|---|---|---|
| `mammoth workflow get` | `project` | Read | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.get` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows/{workflow_id}` (GetWorkflow) |
| `mammoth workflow graph` | `project` | Read | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.graph` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows/graph` (GetProjectWorkflowGraph) |
| `mammoth workflow list` | `project` | Read | `none` | — | `not_async` | `single_page` | `mammoth.api.workflows.WorkflowsAPI.list` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows` (ListWorkflows) |
| `mammoth workflow workspace-datasets` | `project` | Read | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.workspace_datasets` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows/workspace-datasets` (ListWorkspaceDatasets) |
| `mammoth workflow workspace-exports` | `project` | Read | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.workspace_exports` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows/workspace-exports` (ListWorkspaceExports) |
| `mammoth workflow workspace-sources` | `project` | Read | `none` | — | `not_async` | `none` | `mammoth.api.workflows.WorkflowsAPI.workspace_sources` | `GET /workspaces/{workspace_id}/projects/{project_id}/workflows/workspace-sources` (ListWorkspaceSources) |

---
Source: https://docs.mammoth.io/build/cli/workflow.md · Updated: 2026-10-22