<!--
{
  "availability" : [
    "macOS: 10.8.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/NSUserAppleScriptTask",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "c:objc(cs)NSUserAppleScriptTask"
  },
  "title" : "NSUserAppleScriptTask"
}
-->

# NSUserAppleScriptTask

An object that executes AppleScript scripts.

```
class NSUserAppleScriptTask
```

## Overview

The [`NSUserAppleScriptTask`](/documentation/Foundation/NSUserAppleScriptTask) class is intended to run AppleScript scripts from your application. It is intended to execute user-supplied scripts and will execute them outside of the application’s sandbox, if any.

The class is not intended to execute scripts built into an application; for that, use one of the [`Process`](/documentation/Foundation/Process) classes. If the application is sandboxed, then the script must be in the [`FileManager.SearchPathDirectory.applicationScriptsDirectory`](/documentation/Foundation/FileManager/SearchPathDirectory/applicationScriptsDirectory) folder. A sandboxed application may read from, but not write to, this folder.

If you simply need to execute scripts without regard to input or output, use [`NSUserScriptTask`](/documentation/Foundation/NSUserScriptTask), which can execute any of the specific types. If you need specific control over the input to or output from the script, use this class.

## Topics

### Executing an AppleScript Script

[`-  executeWithAppleEvent:completionHandler:`](/documentation/Foundation/NSUserAppleScriptTask/execute(withAppleEvent:completionHandler:))

Execute the AppleScript script by sending it the specified Apple event.

### Constants

[`CompletionHandler`](/documentation/Foundation/NSUserAppleScriptTask/CompletionHandler)

Implement this block to retrieve the result of the AppleScript executed by [`execute(withAppleEvent:completionHandler:)`](/documentation/Foundation/NSUserAppleScriptTask/execute(withAppleEvent:completionHandler:)).

## Relationships

### Conforms To

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

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

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

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

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

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

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

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

### Inherits From

[`NSUserScriptTask`](/documentation/Foundation/NSUserScriptTask)

---

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)