# Moose / Workflows / Cancel Workflow Documentation – TypeScript ## Included Files 1. moose/workflows/cancel-workflow/cancel-workflow.mdx ## cancel-workflow Source: moose/workflows/cancel-workflow/cancel-workflow.mdx # Cancel a Running Workflow To stop a workflow before it has finished running, use the `workflow cancel` command. ```bash filename="Terminal" copy moose workflow cancel ``` ### Implementing Cancelation Callbacks For workflows that are running and have clean up operations to perform, you can implement a termination callback. This is especially useful for any long running tasks that have open connections or subscriptions to other services that need to be closed. You may also use the `state` within the run/cancel context to supplement your business logic. ```typescript filename="workflows/workflows.ts" copy const task1 = new Task({ name: "task1", run: async (ctx) => { connection.open(); }, onCancel: async (ctx) => { // Clean up any resources connection.close(); }, }); const myworkflow = new Workflow({ name: "myworkflow", startingTask: task1, retries: 3, }); ```