<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppIntents",
  "identifier" : "/documentation/AppIntents/UndoableIntent",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "App Intents"
    ],
    "preciseIdentifier" : "s:10AppIntents14UndoableIntentP"
  },
  "title" : "UndoableIntent"
}
-->

# UndoableIntent

An interface you use to register undoable actions in your app intent code.

```
protocol UndoableIntent : SystemIntent
```

## Overview

Add support for this protocol if your app intent performs a task that someone might
want to undo from your app’s interface. This protocol provides access to an instance
of the <doc://com.apple.documentation/documentation/Foundation/UndoManager> type
suitable for use in your app intent’s code. You can use this undo manager from either
your app or an app extension you use to run app intents.

For more information about adding undo support to your code, see the
<doc://com.apple.documentation/documentation/Foundation/UndoManager> type.

## Topics

### Getting the undo manager

[`var undoManager: UndoManager?`](/documentation/AppIntents/UndoableIntent/undoManager)

The undo manager you use to register undo actions for your app intents.

## Relationships

### Inherits From

[`AppIntent`](/documentation/AppIntents/AppIntent)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Sendable`](/documentation/Swift/Sendable)

[`PersistentlyIdentifiable`](/documentation/AppIntents/PersistentlyIdentifiable)

[`SystemIntent`](/documentation/AppIntents/SystemIntent)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)