<!--
{
  "documentType" : "article",
  "framework" : "AppIntents",
  "identifier" : "/documentation/AppIntents/app-intent-types",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "App intent types"
}
-->

# App intent types

Build your intents from types that define common behaviors such as opening or deleting
items, playing or recording media, and more.

## Overview

The app intents you create conform to the [`AppIntent`](/documentation/AppIntents/AppIntent) protocol for basic features, but you
can choose other protocols as an alternate starting point. You might choose a different protocol
for an intent that offers a specific behavior or supports a particular capability. For example,
use the [`OpenIntent`](/documentation/AppIntents/OpenIntent) protocol if your app intent launches your app and displays a specific item.
These protocols also conform to the [`AppIntent`](/documentation/AppIntents/AppIntent) protocol, giving you both the base features and
the additional behaviors you need for your specific app intent.

## Topics

### Common actions

[`protocol OpenIntent`](/documentation/AppIntents/OpenIntent)

An app intent that opens and displays a specific item in your app’s interface.

[`struct OpenURLIntent`](/documentation/AppIntents/OpenURLIntent)

An app intent that opens one of your universal links and displays its contents.

[`protocol SetValueIntent`](/documentation/AppIntents/SetValueIntent)

An intent that contains a value which can be set.

[`protocol DeleteIntent`](/documentation/AppIntents/DeleteIntent)

Delete the associated entity(s).

[`protocol DeprecatedAppIntent`](/documentation/AppIntents/DeprecatedAppIntent)

An app intent that marks an action as deprecated and informs people which action to use instead.

### Search

[`protocol ShowInAppSearchResultsIntent`](/documentation/AppIntents/ShowInAppSearchResultsIntent)

An app intent that displays a set of search results in the app’s interface.

[`struct StringSearchCriteria`](/documentation/AppIntents/StringSearchCriteria)

A type that tells your app to match its items against a provided string.

[`enum StringSearchScope`](/documentation/AppIntents/StringSearchScope)

Constants that describe the types of content your app includes in search results when the search criteria is a string.

### Universal link navigation

[`protocol URLRepresentableIntent`](/documentation/AppIntents/URLRepresentableIntent)

An interface you add to an app intent type so the system can handle it like a universal link.

[`struct IntentURLRepresentation`](/documentation/AppIntents/IntentURLRepresentation)

The type that provides the URL for an app intent.

[`protocol CustomURLRepresentationParameterConvertible`](/documentation/AppIntents/CustomURLRepresentationParameterConvertible)

An interface that allows a type to express its contents in a URL representation.

### Media actions

[`protocol AudioPlaybackIntent`](/documentation/AppIntents/AudioPlaybackIntent)

An App Intent that plays, pauses, or otherwise modifies audio playback state when it executes.

[`protocol AudioRecordingIntent`](/documentation/AppIntents/AudioRecordingIntent)

An app intent that starts, stops or otherwise modifies audio recording state.

[`protocol CameraCaptureIntent`](/documentation/AppIntents/CameraCaptureIntent)

Designates intent that will launch an activity that uses device’s camera to capture photos or videos.
Marking your intent with this protocol makes it available as a possible action for Camera quick action.

[`protocol PlayVideoIntent`](/documentation/AppIntents/PlayVideoIntent)

An intent that looks for videos based on a search term, then plays the content.

[`enum VideoCategory`](/documentation/AppIntents/VideoCategory)

### Communication actions

[`protocol ProgressReportingIntent`](/documentation/AppIntents/ProgressReportingIntent)

An intent that reports progress to the system during its execution

[`protocol PushToTalkTransmissionIntent`](/documentation/AppIntents/PushToTalkTransmissionIntent)

An intent that begins or ends an audio transmission with the Push to Talk framework.

[`protocol ShowInAppSearchResultsIntent`](/documentation/AppIntents/ShowInAppSearchResultsIntent)

An app intent that displays a set of search results in the app’s interface.

### Controls, widgets, and Live Activities

[`protocol ControlConfigurationIntent`](/documentation/AppIntents/ControlConfigurationIntent)

An interface for configuring a Control Center module.

[`protocol LiveActivityIntent`](/documentation/AppIntents/LiveActivityIntent)

An intent that starts, pauses, or otherwise modifies a Live Activity when it runs.

[`protocol WidgetConfigurationIntent`](/documentation/AppIntents/WidgetConfigurationIntent)

An interface for configuring a WidgetKit widget.

[`struct RunSystemShortcutIntent`](/documentation/AppIntents/RunSystemShortcutIntent)

An app intent you use in widgets to open another app or perform an App Shortcut, custom shortcut, or system action.

### SiriKit intent migration

  <doc://com.apple.documentation/documentation/SiriKit/soup-chef-with-app-intents-migrating-custom-intents>

[`protocol CustomIntentMigratedAppIntent`](/documentation/AppIntents/CustomIntentMigratedAppIntent)

An interface for replacing a custom SiriKit intent that allows existing
shortcuts and donations to continue working.

### System support

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

Designates intent types provided by App Intents.



---

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)