iOS Changelog

See also: Mac Changelog


  • New: Create and Update Draft shortcuts can now set syntax definition for the draft. Also, shortcut actions which return drafts will contain syntax information.
  • Fix: Some tweaks to gestures which open the side panels to avoid conflicts with some of the new iOS 13 text selection gestures.
  • Fix: Case where using a Drafts URL could disable the new draft timeout the next time you return to Drafts.
  • Fix: Some tweaks to background refresh on watchOS.
  • Fix: Better syntax highlighting for [id][] style reference links in Markdown syntaxes.
  • New: MultiMarkdown syntax now supports embedded LaTeX markup with \\[ \\], \\( \\) or $$ style delimiters.


  • Change: Apple Watch now requires watchOS 5.0 or greater.
  • New: File Draft shortcut action which can update folder, tags and flagged status of draft without affecting content. Details
  • Fix: Create Draft shortcut was not allowing selection of the new draft as a return value. The draft created is now available as a variable for use in subsequent actions in the shortcut.
  • Fix: Better handling of dark mode switching on iOS 12.
  • Fix: Landscape editing on iPhone did not take notch into account properly.
  • Change: “Backup Now” option for drafts now prompts for destination, rather than automatically saving to iCloud Drive.
  • Fix: Several minor layout issues.


  • Fix: Todoist closeTask and reopenTask methods failing.
  • Fix: Avoid cases where quick capture extension could hang for some.
  • Change: “Create Drafts with Dictation” shortcut now has selectable list of available locales.


Along with this update, we will also be launching new User Guide and Scripting Reference websites, dramatically improving the available Drafts support documentation. Please visit these sites for more information and, if you haven’t yet, create an account at the Drafts Community to keep up with the latest news, tips and more.

Interface and Functional Improvements

  • Rewritten main user interface and gesture interface
    • General improvements to responsive of gestures.
    • Support for pinning both drafts and actions on larger screens, easier access to pinning, remembering pin states.
    • Lots of little improvements to icons, the keyboard switcher, and other user interface elements throughout the app.
  • Support for multiple windows (iPadOS 13 only).
    • Dragging draft from the draft list to a new window, or just opening new Drafts instances dragging the app icon to split views and slide overs.
    • Edit actions in separate window.
    • Live Markdown previews in a separate window. Learn more
  • Automatic dark and light mode switching (iOS 13 only). Drafts already supported dark mode, but now if “automatic” switching it enabled, it will be done based on current system mode on iOS 13.
  • Contextual menus where appropriate throughout the app (iOS 13 only)
    • Contextual menus appear when you long press some items in Drafts. For example:
      • Press and hold on a draft in the draft list or action in the action list for options.
      • The workspaces and action group buttons near the bottom of those lists, respectively. Tap and hold for a quick switching menu.
  • New Quick Capture action extension. Functions similarly to the existing Drafts share extension, but requires no user interaction - just captures the shared content and returns. Details
  • Live Markdown Previews (iPadOS 13 only). A live preview can be opened in a separate window to allow a draft to be edited and preview viewed simultaneously. This is similar to preview functionality available in the Mac version of Drafts.
  • Support for new iOS 13 font selection panels
  • Dictation interface now has an optional silence timeout. Useful for those who trigger dictation hands-free via Siri and want the app to automatically save the draft after they stop dictation for a period of time. Can be configured to 10, 30 or 60 seconds.
  • Refreshing of icons and a variety of minor improvements throughout the app.


  • Extensive support for new features of Shortcuts on iOS/iPadOS 13. A full set of shortcuts, with parameter support, allow you to create, update, append and prepend to drafts, query drafts, run actions, and more. Use of advanced Shortcuts automation requires a pro subscription. For details about available actions, see the automation documentation. In almost all cases it is better to use these Shortcuts over the URL-based ones that ship with previous versions of Shortcuts. Keep an eye on the the forums over the coming weeks as we plan to publish some example Shortcuts that take advantage of these new capabilities.

Workspaces & Draft List

  • Default Workspace. This is a special workspace that stores the preferred default settings for the draft list, and is applied when filters are cleared. This way, if you have workspaces that applies sort or display settings, clearing the list filters will also reset those back to your preferred default settings. The default workspace can be configured like any other workspace in the workspace manager. Workspaces are a Pro feature, but the default workspace is available in the free version. Details
  • Separate Workspace switcher. List options “…” are just for list options now. Workspaces can be selected using the workspace switcher at the bottom of the draft list. Tap and hold (on iOS 13) for quick switcher menu.
  • “Show Date” display option for drafts list and workspaces. Hide/show the date in the list. Along with other display settings, this allows everything but the draft title to be removed, for the minimalists out there.

Other Changes and Updates

  • Fix: Update Todoist integrations to use new API endpoints. The old ones were discontinued in early September cause some Todoist integrations in Drafts to fail.
  • New: Keyboard shortcut support in the Share extension (cmd-return to save, cmd-T for tag entry, etc.)
  • Change: If a selection is present in the editor, the character / word counts now include a selection character count as well.
  • Change: All default HTML preview templates have been updated with CSS-based support for dark mode. If you have existing preview actions, update them by editing the action and using the “reset” button to update the template - or reinstall the latest versions from the action directory. Updated versions of the preview actions:
  • New: HTML.escape(string) and HTML.unescape(string) javascript functions to encode and decode HTML entities in a string. Details
  • New: Event script object now support url property. Details
  • Change: Long press on link in link mode will now fall through to options menu (with Preview on iOS 13).
  • Change: Regular expression find will now treat escaped whitespace characters (e.g. \n, \t) in replacement text as those characters, rather than expecting the whitespace itself. More consistent with how regex replacements are done in other editors.
  • Change: Find and replace screen should remember last state of “Show options”.
  • Fix: Markdown syntax definitions did not handle reference link properly.
  • Fix: Markdown syntaxes incorrectly identifying indented ordered list items as indented code.
  • Fix: Improve markdown header recognition in syntax highlighting definitions to allow # in header text.
  • Fix: Navigating drafts list with keyboard shortcuts should scroll the list if necessary.
  • Fix: editor.load() method should touch the accessed date of the draft.
  • Change: Allow “new draft after” timeout to be set to “Never” to allow it to be disabled separately from focus mode.
  • New: Select > Operations > Export now supports text file option, which merges draft contents into one text file.
  • Fix: Issue where API calls in actions could fail improperly if the OAuth token expired and needed to be refreshed.
  • Change: Support for iOS 11 has been removed.


  • Fix: Issue with link activation in link mode.


  • Fix: Rewrote link mode (it was broken in last release). Should behave the same, other than links now being underlined.
  • Fix: Avoid race condition attempting to trigger new TextExpander refresh URL from an action inside Drafts. Looking for a quick way to refresh your snippets on iOS? Try the Refresh TextExpander example action.
  • Fix: Fix performance and excessive logging issue in sync.


  • New: Updates to Workspaces and standard Today widget designs.
  • New: drafts5://refresh_text_expander URL to trigger TextExpander refresh. More information in URL scheme documentation.
  • Fix: Issue for first time installs not getting a keyboard row assigned.
  • Fix: Fix for case where keyboard row could appear blank on initial launch.
  • Fix: Workaround a couple of minor issues specific to as yet unreleased software.
  • Fix: Issue with improper handling of expired OAuth tokens in some cases. Notably affecting Gmail and Outlook mail steps which could report successfully sending mail when they did not when not used for a while.
  • Fix: Sync timing issue that could cause some changes (typically archiving or trashing of a draft) to not get synced to other devices properly.


  • New: Arrange mode now supports arranging by sentence in addition to block and line. This feature requires iOS 12.
  • Change: Disable auto-list capitalization until I can find another approach which is compatible with third party keyboards - which get stuck in captilization mode.
  • Fix: Hopefully a workaround for issue where display of text, particularly in code blocks, turns to garbage characters with certain specific text and font combinations.
  • Fix: Displayed modified date not updated in draft list when changes made to a draft.
  • Change: Alpha sort tags when displayed in draft list.


  • Fix: Issue with inability to use swipe gestures when returning to app in specific cases.
  • New: Update to MultiMarkdown 6.4.0 (was on 6.3.2).
  • Change: Add custom drag and drop handler to support direct drop of Goodnotes handwriting recognition images dragged to a draft on iPad.


What’s New

  • New: HTML Preview action steps now have a share button. Allows sharing of the raw HTML generated by the preview, but also the ability to copy as rich text and print.
  • New: HTML Preview step editing now has import and export options to load templates from files, and “Reset” button replacing buttons which set the default styles.
  • New: Badge notification settings now allow badge count to be based on a selected workspace’s inbox only. This allow greater control over which drafts should be considered unprocessed for purposes of the badge count. If a workspace is selected, other filtering options are disabled.
  • New: New “default tags” setting for Share extension to create initial tag assignments for share extension captures. These default tag assignments can be overriden in the share extension, but will be assigned by default in any new share. Set the default tags in Settings > Extensions > Share extension.
  • New: Watch app “default tag” setting can now take a comma-separated list of default tags, not just one.
  • New: Display device (iPad, Mac, iPhone) along with created, modified dates in draft detail. Allows referencing whether a draft was created or last modified on iPhone, iPad or Mac.
  • New: Track the device action is executed on (iPad, iPhone, etc) and display in action log.
  • New: Version script object to access a draft’s version history. Can be useful for comparing or exporting past versions.
    • Access version history of draft via draft.versions.
    • Script creation of a new version with draft.saveVersion()
    • Version object reference

Other Changes and Fixes

  • Fix: Resolve occasional issue where launching to search from the Today widget would fail.
  • Fix: Better handling of sync changes which trash/delete drafts which are loaded in the editor.
  • Change: Add anylist:, googlechrome: URL schemes to whitelist for link mode support.

11.0 - Gmail, Outlook integration and more

This release brings support for sending email directly with Gmail and based email accounts via new action steps and scripting interfaces. These new integrations allow single-tap actions which send mail in the background through your email accounts on these services – useful for quick send actions to recipients and groups you send to often, and also for integration with services that allow you to email text into the service, but require those email come “From” a known address (like Asana, OneNote). Because of the direct integration, messages will come “From” your own address and be in your “Sent” folder on these services.

For more general information about using email with Drafts, see our Sending Mail with Drafts guide

  • New: Gmail Action Step
    • Send mail using Gmail accounts (via Gmail API)
    • Sends in background, so must be fully configured with recipients, etc.
    • Uses OAuth to authenticate to Google accounts. Use credential identifier for multiple accounts.
  • New: GmailMessage script object
    • Send email using Gmail accounts (via Gmail API) in script
    • Enables things like looping over addresses to send emails individually to separate “To” recipients, etc.
    • GmailMessage reference
  • New: Outlook Action Step
    • Send mail using accounts (via Microsoft Graph API)
    • Sends in background, so must be fully configured with recipients, etc.
    • Enables things like looping over addresses to send emails individually to separate “To” recipients, etc.
    • Uses OAuth to authenticate to Microsoft accounts. Should work with Personal/Work-School accounts, as long as they are integrated. Use credential identifier for multiple accounts.
  • New: OutlookMessage script object

Other Additions, Changes and Fixes

  • New: MustacheTemplate script object.
    • Process mustache style templates in script.
    • Can take template string or be created pointing to directory of .mustache template files in iCloud Drive
    • You also must contruct and pass the data object to use for values.
    • Not all scriptable objects are exposed to templates, but Draft objects are.
    • Docs:
  • Fix: Case where a URL-based action which leaves Drafts could result in “after success” archive/trash happening but not getting properly synced to other devices.
  • Change: Add error messages alerts for invalid states in a number of action steps. There are for invalid states that prevent a step from executing. Throwing an alert error help save a trip to the action log in these configuration error cases - like a script that will not compile.
  • Change: If HTML passed to HTML Prevew has a title element, use that title as the window title.
  • Fix: Better focus on text field returning to app after the new draft creation timeout is passed.
  • Change: Add warning trying to use URL actions for multiple selected drafts via Select > Operations in the draft list.
  • Fix: Filter button over draft list not properly themed when automatic theme switching occured while draft list was visible.
  • Fix: FileManager.moveItem(src, dest, overwrite) would not successfully overwrite an existing item even if overwrite was true.
  • Fix: Oops, the fix in the last release for appending to Dropbox did not fix it for prepending. Fixed now.

New Version Numbering: Moving forward, each feature release of Drafts will get a major version number. Minor version numbers will still be used for bug fix and minor releases. If you look back, it’s the same thing we’ve been doing, but we’re dropping the “5”.


What’s New

  • OneNote action step. Similar to Evernote action step. Allows creating, appending, prepending to pages in Microsoft’s OneNote service.
  • New: Visibility of action groups in the action list can now be configured like visibility as a keyboard. If the group is not “available in list”, it will not be displayed in group select sidebar or quick access tabs in action list. If a group is not available in either the list or keyboard, it can still be accessed/edited in “Manage” view.
  • New: “New in Workspace…” options in the new draft options menu that opens when you tap and hold the “+” button.
  • New: HTMLPreview script object to show HTML preview, has one method
  • New: Share script object to support scripting of system share sheet. Includes class methods:
    • Share.shareAsText(text) -> boolean
    • Share.shareAsURL(url) -> boolean
    • Share.shareAsFile(filename, text) -> boolean
    • Share Reference

Other Changes and Fixes

  • Change: Some improvements to error messages from failed Dropbox actions.
  • Change: Better HTML output for fenced code block when using GitHub Markdown option.
  • Fix: Separators not displayed properly when using Operations > Run Action from draft list.
  • Change: Updates default action sets.


  • New: setAllSort(sortBy, sortDescending, sortFlaggedToTop) method on Workspace script object.
  • New: Fenced code blocks (```) will be highlighted in monospace font in MultiMarkdown and GitHub Markdown syntaxes. Also posted two new action examples which make good additions to a Markdown keyboard if you work with inline or code blocks:
    • Inline code: Wraps selection in back-ticks as inline code, or inserts back-tick if no selection.
    • Code Block: Wraps selection in triple back-ticks as code block, or inserts triple back-tick if no selection.
  • Fix: Sync sometime would not fail to properly update other devices when a draft was move archived/trashed.


  • Fix: Address several minor sync issues.
  • Fix: Issue with audio configuration that could cause long dictation sessions from failing to reset and continue properly.
  • New: Whitelist ms-outlook URL scheme to work in link mode.
  • New: Link to Mac version information in Settings.


  • New: Three new monochrome alternate app icon options for Pro subscribers. As with existing options, these can be selected from the “Aa” appearance settings screen. These icons may suit your tastes in any case, but were designed to blend into the background when combined with pure black wallpapers as follows:
    • Pure black background. When used on the home screen with a black wallpaper, the icon seems to blend into the background and show only the app logo.
    • Dark gray background. Matches the gray of the iPhone dock when a pure black wallpaper is behind it.
    • Light gray background. Matches the gray of the iPad dock when a pure black wallpaper is behind it.
  • New: Dictation using Drafts custom dictation interface now uses AirPods (or other bluetooth headsets) to listen when they are connected. This makes it easier to walkabout dictating while your iPhone sit on a desk or in your pocket.
  • Change: Editor in share extension should syntax highlight and respond to editor settings for syntax selected for use for the Share extension in Settings.
  • Change: When Safari View Controller is used in-app to open links, respect currently selected theme for the navigation bars.
  • New: app.currentThemeMode scripting property. This is a read-only property which returns “dark” or “light”. This allows you to branch on whether dark or light mode active if automatic theme switching is active, which the existing themeMode property did not.
  • Change: Updates to some of the default action groups created on first time installation.
  • Change: Refactoring of several minor operations in sync process to shake out a threading issue and work better with the upcoming Mac version of Drafts.
  • Change: Some improvements to sync logging.
  • New: add accord url scheme to whitelist to support using it in link mode.
  • Fix: Rollback change to editor script object to avoid iOS issue adding smart quotes using setSelectedText method.
  • Change: Better behavior of infograph watch complication when displaying inbox count is disabled.


  • Fix: Fixes for weird text version rollback issue while typing which appeared in previous release.
  • Change: Improvements to query tokenizer to better support searches for punctuation and single character searches.
  • Fix: Improve TaskPaper project syntax recognition and project navigation markers.
  • Change: When Safari View Controller is used in-app to open links, respect currently selected theme.


  • Fix: Address sync issue with draft loaded on multiple devices.
  • Fix: VoiceOver actions issue in draft list introduced in last release.


Workspace improvements

Workspaces learned a few new tricks in this release:

  • Workspaces can now optionally load action groups in the action list and extended keyboard when applied. This is useful when a workspace is configured for working draft of a particular syntax, or project, and you want the related actions handy.
  • Workspaces can now optionally switch the selected list tab (inbox, flagged, etc.) when applied. Saves some taps if a workspace is used to browse the archive primarily or similar.
  • More details on new settings in Workspace documentation

Other updates and changes

  • New: Return of the “All” tab in the draft list. This tab shows both inbox and archived drafts at the same time - which is sometimes handy when searching.
  • New: Handy quick-add URL scheme to allow easy creation of Drafts actions which call Shortcuts app shortcuts. Allows replication of the “Add to Drafts” option Workflow offered, along with a few extra options. For details and a sample “Add to Drafts” shortcut, see:
  • New: FileManager script object methods to support listing directory contents, moving and copying files:
    • listContents(path)
    • createDirectory(folder, path)
    • moveItem(fromPath, toPath, overwrite)
    • copyItem(fromPath, toPath, overwrite)
    • See reference for details
  • New: Prompts now support a default button which appears fixed at bottom with cancel button.
    • In prompt action step, if only one button is used, it will be made the default button.
    • In scripted prompts, the addButton method can now take an additional isDefault boolean parameter. So, p.addButton("Name", "value", true) would make that button the default button fixed at the bottom of the prompt. Only one button can be the default. If a scripted prompt only adds one button, it will be assumed to be the default button.
    • The default button will be the one to respond to CMD-Return external keyboard shortcut.
  • New: Template markdown blocks (%% %%) can now take a format type specifier to override default Markdown options. Useful when a specific action needs to render using a different Markdown engine.
    • %%text%% will render text with default Markdown options as always
    • %%githubmarkdown|text%% will force use of GitHub Markdown.
    • %%multimarkdown|text%% will force use of MultiMarkdown
  • New: Base64.encode(string) and Base64.decode(string) methods for handling Base64 in scripts.
  • New: Add coloring for Critic Markup highlights in MultiMarkdown syntax.

Other Fixes

  • Change: General pass of minor UI improvements
  • Fix: Address issue where actions which altered text in the editor being called repeatedly and quickly - typically via repeating keyboard shortcut or quickly tapping extended keyboard row button - could cause the draft to revert to a previous version when sync changes were processed in the background.
  • Fix: Workaround VoiceOver issue preventing access to row actions (edit, duplicate, etc.) in the action list.
  • Fix: Inline code blocks in Markdown should be exclusive ranges to avoid accidental confusion with other markup.
  • Fix: Be sure draft state is saved before showing (i) detail screen.
  • Change: Update some of the actions configured on initial installation to include (if installed) actions for Agenda, Good Task and a few other apps (these examples are also in the Action Directory).
  • New: Add news link in resources reached in Settings.
  • Change: Refactoring in URL schemes and routing to better share code with Mac and avoid duplication.
  • Fix: File type registration issue for action group export files which made it difficult to re-import them backups of action groups from the Files app.
  • Change: Sort trash by modified, not accessed.
  • Fix: Add OneDrive action step summary in action editor.


  • New: Arrange mode now has additional swipe actions to move a line to the top or bottom.
  • New: When searching action list, include separators displaying action group name in results.
  • New: Import file function (Tap and hold +, “Import File”) now recognizes drafts export, backups and action files and offers to individually import contents.
  • Fix: Adjustments to swipe gestures to avoid accidentally triggering the action list when scrolling.
  • Fix: Properly theme clear button and placeholder text in search fields and a number of fields in settings and action configurations.
  • Change: Updates document icons for associated file types.
  • Change: Adjust launch image slightly.
  • Change: Tapping on tag in recent tag suggestions should not reorder the list.
  • Fix: Using [[line|n..]] range could omit last line. This was a regression in the previous release.
  • Fix: Auto-list completion now participates correctly in the undo history.
  • Fix: List auto-completion now enabled for MultiMarkdown syntax.


In addition to some non-obvious changes preparing for the upcoming release of Drafts for Mac (learn more at:, this release brings the following updates:

Markdown Updates

Drafts 5.5 brings significant new customizations for advanced Markdown users, letting you tailor the Markdown used in Drafts to specific needs. These customizations are in two parts.

  • MultiMarkdown & GitHub Markdown Syntax Highlighting: In addition to the default “Markdown” syntax highlighting option, there are new “MultiMarkdown” and “GitHub Markdown” syntax options which add highlight for some of the extensions specific to those flavors of Markdown. The default “Markdown” syntax has been simplified to more closely match the original Markdown specification as well. If you prefer one of these advanced highlighting options, you may wish to select it as your default for new drafts. More details
  • Markdown Processor Options: Markdown options have been added in setting to control the Markdown rendering used in templates and previews. It is now possible to choose between MultiMarkdown and GitHub Markdown when rendering, as well as control many advanced options provided by these renderers. More details

Workspace, List Options Additions

The draft list, and Workspaces, can now optionally sort flagged drafts to the top of the list in the inbox and archive - and the option to omit flagged drafts that has been available for the inbox is now also available for the archive. The Workspace script object has also been extended to support these features. More details in list options and Workspaces documentation.

Other Additions, Changes and Fixes in 5.5

  • New: [[line]] template tag now has support for negative indexes in ranges which count back from last line, like [[line|-1]] returns last line draft, [[line|-2..-1]] returns last two lines. Templates and tags documentation
  • Fix: Margin sizing on iPad accidently broken in previous release.
  • Change: Merge operation should remember last selected destination (archive, trash, etc.)
  • New: Add additional step summaries for more types of action steps when viewing steps in the action editor.
  • Change: Add “keepit” URL scheme to whitelist to work in link mode.
  • Fix: Better handling of keyboard accessory positioning to avoid issue with Chinese keyboards on X style phones.


  • Change: Ready for the latest iPad screen sizes.
  • Fix: Fix a couple of obscure watch-phone communication issues.
  • New: Periodic backup settings now have frequency option allowing choice of daily, weekly or month backup schedule.
  • Change: Change trash can sweep to keep 30 days instead of only 7.
  • Fix: Crasher in template processing when importing template from file with [[template|path.txt]] when the template was very short.
  • Fix: Some layout issues on SE size phones.
  • Fix: If only omitted tags were in the draft list tag filter, the filter status did not display properly.


General Additions

  • Searching drafts in the draft list now supports “quoted strings” and -negated strings, Google style. e.g. You can search for "red dress" -blue and only drafts containing the full phrase red dress and NOT containing blue will be returned.
  • Global ⇧-⌘-F search drafts external keyboard shortcut.
  • “Merge” operation now has option on whether to place originals in archive, trash or leave them where they are.
  • “Rename Tag” and “Delete Tag” operations in drafts list operations to globally rename or remove a tag across all drafts.
  • [[template|path.txt]] template tag to load a template from a file in the /Drafts/Library/Templates folder in iCloud Drive. Docs

Scripting Additions

  • Workspace scripting object now has full support for creation and editing of workspaces, as well as the ability to query for drafts contained in the workspace. Docs
  • require(path); global script function which imports content of script in the /Drafts/Library/Scripts folder in iCloud Drive. Useful to reuse script libraries across actions, or when developing new scripts in an external editor. Docs
  • Additional parameters to Draft.query function to omit tags, and specify sort order. Docs

Other fixes and changes

  • Fix: Some improvement to pushing data to Apple Watch more actively.
  • Fix: Work on some cases where the search field would not display correctly.
  • Fix: Taskpaper indentation on wrapped lines not working properly.
  • Fix: Case where action with Callback URL step might not archive after success properly when run from a keyboard key.


  • Change: Work to more aggressively restore Watch-Phone sessions if they get stuck and are not passing information.
  • Fix: Crash with some WebDAV step configurations.
  • Fix: Case where creating a draft using Siri could create duplicate drafts.
  • Fix: VoiceOver actions not working on action rows in the action list.
  • Fix: Some entity encoding issues in XML created by WordPress/XML-RPC requests.
  • Fix: Undo causing scrolling on longer drafts.
  • Change: Remove “Run Workflow” action step as option for new steps (replaced by Run Shortcut).
  • Fix: Spotlight indexing a bit too aggressive reindexing some content.
  • Fix: Do not donate Siri “View” intents for blank drafts.


  • New: Update Watch app to support new Series 4 complication types.
  • Change: Move Apple Watch app setting inside Drafts Settings (no longer in Watch app on phone).
  • New: Add setting to “Show inbox count” on complications. Disable to only show icons for most complication types.
  • Fix: Some cases where WordPress API calls failed could get reported as success, depending on how the server returned the error.
  • Fix: Missing placeholder text in dark mode for Mail/Messages action steps.


Note: An additional 5.4.1 release is planned for release before September 24, 2018 to fully support new Apple Watch Series 4 and iPhone XS, etc., models.

Siri & Shortcuts Support (iOS 12 Required)

  • “Run Shortcut” action step. Pass text to the Shortcuts app and trigger a Shortcut by name with a single tap. This is the same functionality available in the “Run Workflow” action step, updated for the new Shortcuts app. Details
  • Siri Intents:
    • “Capture clipboard” Siri shortcut. This shortcut allows capture of the current clipboard content to a new draft in Drafts without launching the app.
    • “View draft” Siri Shortcut. Allows creation of a shortcut which displays the content of a specific draft in the Siri interface - with the ability to tap and open that draft in the app. Great for previewing lists, or regularly view reference notes.
  • “Add to Siri” buttons to create voice shortcuts to functions in Drafts directly in the app in the following locations (iOS 12 only):
    • Add shortcut to open a specific draft in the (i) detail view.
    • Add shortcut to load a workspace on Workspace edit screen.
    • Add shortcut to run an action without input text from the action edit screen.
  • Drafts creates shortcuts as the app is used for a variety of other tasks, such as using the Drafts dictation interface. As you use Drafts, these become available in iOS Settings > Siri & Search and can be attached to custom Voice Shortcuts. A common example would be to create a “Dictate” voice shortcut that launches Drafts directly to dictation of a new draft.
  • Watch the community site for more information and guides to using Shortcuts with Drafts in the coming weeks.

WordPress Support

  • WordPress action step. Allows posting to WordPress blogs with a variety of basic options. Details
  • WordPress script object allows access to the entire WordPress XML-RPC API to provide advanced features, both reading and writing data for posts, taxonomy information and more.
  • Example actions and details in our “Using Drafts with Wordpress” integration guide.:

Expanded Google Drive support for Google Docs and PDFs

  • Google Drive action step enhancements allow creation of Google Docs and PDFs on Google Drive:
    • Template output of a Google Drive action step can be selected between Text, Markdown & HTML. This is similar to setting on Evernote steps and determines how the output of the content template will be treated.
    • Upload type allows you select the type of result file. If “Text”, well, you’ll get a text file. This is the only type that supports append/prepend. If “Google Doc” or “PDF”, Google drive will convert the uploaded file to those formats. When combined with HTML template output, you can create fully-styled documents and PDFs.
    • Additional details and sample actions

Full Dropbox API Scripting

  • Dropbox script object exposes entire Dropbox API. New rpcRequest, contentDownloadRequest and contentUploadRequest methods wrap and expose the entire Dropbox API. This is an advanced feature and requires direct API knowledge, but it is possible now to create share links, list files, folders, query files and version, create Paper documents, etc. Anything you can do with the API, essentially. Details in the Scripting Reference.
  • Example Actions:

Other New Features in 5.4

  • Separators in action groups. Separators act like headings and allow for visual organization of actions in a large action group or keyboard rows. Each has a full text name for the action list, and optional shorter key label for display in the keyboard row. Create them using the “+” button in the action list. Manage them just like an action - drag and drop to move the around, etc.
  • Light Gray theme.
  • XMLRPC.request(url, methodName, params) script method to interface with XML-RPC based services. Takes care of creation and decoding of XML needed to interact such services. Suitable far wrapping XML-RPC based APIs like the MetaWeblog API or others.
  • HTTP script object now supports parameters setting to specific URL query args as a javascript object.
  • Draft detail (i) screen now has button to copy UUID or draft text to clipboard, in addition to existing copy link option.
  • More summary information in Draft detail (i) screen.
  • addLabel(name, label, options) method on Prompt scripting object allows adding text labels, captions and headings in a prompt.
  • strftime(date, format) global script method. Returns formatted date string.
  • Toggle device sleep off and on via script. app.isIdleDisabled and app.setIdleDisabled(bool) script methods to allow disabling of system sleep timer to keep the screen from dimming. Useful for times when you do not want to have to keep waking up your phone when referencing a draft. Example Toggle System Sleep action is available. See reference for more information
  • Ability to clear all version history for draft in Details (i) > Versions, or individually delete specific versions (swipe to left).
  • Markdown list auto-complete will now try to enable capitalization for first word of new list line if Sentence auto-capitalization is enabled.

Other Fixes and Changes in 5.4

  • Change: A few updates to default action groups. These will only take effect for new installations - but these groups can all be reinstalled from the Action Directory
  • Change: Make “edit” the default swipe option for Workspaces in Workspace list.
  • Fix: Problem with login credentials for Work/School OneDrive accounts expiring after 1 hour.
  • Change: Display confirmation dialog when clearing the recent tag suggestion list.
  • Change: Prompts using single select fields now display more like radio buttons than checkboxes.
  • Change: Add “Manage Subscriptions” button in settings for Pro users.
  • Change: Throw error alert if /get URL scheme does not provide x-success callback to return content.
  • Fix: Badge on iPhone not always updated after receiving new information from Watch app until Drafts as launched.
  • Fix: Scripted callback URL call should fail immediately and not wait for timeout to fail if URL could not be opened.
  • Fix: Regression in CallbackURL scripting that prevented it from properly waiting for response.
  • Fix: Certain actions which update draft content, then use prompts or leave the app might lose the update to the draft if run from a keyboard row instead of action list.
  • Fix: Issue where tags assigned to the current editor draft using Select > Operations in list would not get updated.
  • Fix: Be less aggressive about dismissing side panels when app is returned to foreground.
  • Fix: Disabled action steps run when nested in “Include Action” step.
  • Fix: Prevent odd-ball case where sync could temporarily stall in certain network conditions.
  • Fix: Better enforcement of max. size limit for an individual draft (1 MB, ~900,000 characters) to prevent hitting sync issues.
  • Change: Merge operation now remembers last used separator.
  • Fix: Single select prompt options not appearing properly.
  • Fix: Race condition that could cause temporary stall of sync.
  • Fix: Pipe character could disable inline code highlight in Markdown syntax.
  • Change: It is now possible to escape template tags with a backslash to prevent them from be processed. e.g. \[[title]] will come out as [[title]] not get the title of the draft inserted.
  • Change: Make some VoiceOver improvements in Arrange mode.


  • Fix: Undo functions might not work properly in some situations.
  • Fix: Importing action from Action Directory created in beta version of Drafts could fail with “Import Error”.
  • Fix: Issue where changes made to current draft in the editor made via Select > Operations or in action could get ignored.
  • Fix: Reminder import with notes could add unnecessary text.
  • Fix: Provide defaults for addPicker if the caller does not.


New in 5.3

    • For full details, see our new Todoist integration guide.
    • Todoist action step. Adds task to Todoist inbox, which optional configuration to specify reminder and comment. Details
    • Todoist script object access any methods on the Todoist REST API. Allow creation and updating and reading of tasks, projects, comments, labels and more. See reference for details
  • Three new alternate app icons options for Pro subscribers, accessed via “Aa” appearance settings.
  • Prompt improvements
    • addPicker method on Prompt object to add iOS picker style control for selecting values. Details in reference
    • Prompt addButton method can now take optional second value parameter. When provided, the the buttonPressed property will be returned as the value instead of the button name. Value can be any data type. Useful for associating non-string values with a prompt button, or simply alternate string values.
    • Prompt addTextField and addTextView options parameter can now accept a wantsFocus boolean value to hint that the field should be focused for editing when the prompt is displayed. Should only be set on one field in the prompt.
    • Prompts with only one button will treat that one button as the default action and continue with CMD-Return on external keyboard as if that button was pressed.
  • ReminderList object now has getAllReminderLists() and find(title) methods to match those on Calendar object.
  • Learning resources page in Settings for easy access to community site, screencasts, etc.

Other Fixes and Changes in 5.3

  • Change: Allow higher paragraph spacing settings to work better with larger font sizes.
  • Change: More aggressively attempt to re-process Watch transactions which may have failed. Should avoid cases where some drafts created on the watch were stuck an not transferred to the phone.
  • Change: Tighten tolerances of side-panel display gestures to cancel if the swipe moves too much up or down to avoid accidental swipes.
  • Fix: Changing draft list filters should scroll to top of list.
  • New: Add several small animation and visual tweaks.
  • Fix: Insert text step after a script step that called draft.update() might not get freshest draft content.
  • Change: Reset tag entry field when tag is selected in tag suggestions.
  • New: Add uuid parameter to x-success callbacks for the /create URL scheme (also supports retParam to specify parameter name to use).
  • Fix: Embedded iframes in HTML preview action steps were triggering redirects.
  • Change: Refactored all handling of “after success” settings on actions to avoid a few edge cases where the move to archive/trash might not get saved properly.
  • Change: General pass of tweaks to prompts to better support Dynamic text and display better.
  • Change: Tweaks to Markdown bold/italic syntax definitions.
  • Fix: Subproject syntax highlighting in Taskpaper.
  • Change: Text views will also be focused if provided in a prompt.
  • Fix: Issue where “after success” settings on an action might not take properly when in focus mode.
  • Fix: Deleting an action group in manage view should not leave edit mode.


  • New: Navigate window (access via down arrow at top right) now also offers navigation to recent drafts. Defaults to displaying recent drafts if current draft does not have any identifiable navigation markers.
  • New: Sprinkle in more user activity registrations.
  • Fix: Clean up a couple of crashers with unexpected arguments in scripting methods.
  • Fix: Avoid deadlock running OneDrive append action with a subfolder path configured.
  • Fix: If the URL provided to Drafts in an x-success parameter did not already have any parameters, return parameters might not get appended correctly.
  • Fix: Matching projects in Taskpaper syntax should be less greedy matching : in tasks.
  • Fix: Resuming dictation after editing while paused could lose edits.
  • Fix: Spotlight in-app search continuation was not configured properly.
  • Fix: Better handling of more than one watch connected to an iPhone.
  • Fix: Request refresh of calendar store data before script methods that read from calendars.
  • Fix: Crash deleting multiple action log entries.
  • Fix: Crash requesting product information from App Store in poor network conditions.


New in 5.2

  • Actions now have an “Assign tags” after success setting. In addition to moving a draft to the archive or trash, after success can now also assign tags - great for marking or filing away drafts automatically when processing them. For example, set the Tweet action to automatically assign the “tweet” tag when run on a draft and you can later easily filter for tweets. Details
  • In-draft navigation to jump between key marks in longer drafts. Accessed via the navigate button (down arrow icon) in the upper right (or ⌘-\ shortcut). Currently navigation supports jumping to headers in a Markdown draft, projects in a Taskpaper draft, and functions and “// #region Name” region comments in Javascript drafts. Details
  • Scripting additions to support switching workspaces and action groups:
    • Allows for action setup to load a workspace, and simultaneously switch selected action list and keyboard row.
    • Inquiry about and toggle visibility of drafts and action lists:
      • app.isDraftListVisible, app.showDraftList(), app.hideDraftList()
      • app.isActionListVisible, app.showActionList(), app.hideActionList()
    • Load action groups and apply workspaces in script:
      • app.loadActionGroup(group), app.loadKeyboardActionGroup(group)
      • app.applyWorkspace(workspace)
    • Also Workspace and ActionGroup objects to allow lookup of groups and workspaces.
    • More details on scripting reference site
  • Additional URL Actions
    • /loadActionGroup?name=GROUP-NAME - loads action group in action list
    • /loadKeyboardActionGroup?name=GROUP-NAME - loads action group in extended keyboard.
    • Details in URL scheme documentation
  • “List in Reminders” action step now has a template. Useful to create one for sending only [[selection]] or passing in values from script or prompt. Details

Other Fixes and Changes in 5.2

  • Fix (Watch): Improvements to communication between Watch and Phone to address some issues with stuck transfers.
  • Fix (Watch): Watch app auto-capture from complication did not work if app was already running and open to a view other than the main capture view.
  • Fix: Some tweaks to Taskpaper syntax.
  • Change: Do not dismiss any presented views when the new draft creation timeout is fired to avoid loosing unsaved work in actions, etc.
  • Fix: Moving through action list with up-down arrow keys should scroll items into view when necessary.
  • Fix: URL action step should ignore “Open in Drafts” option if the URL generated is a non-http(s) URL.
  • Fix: Opening current list options without making changes could result it “current list options” erroneously displayed in list filter.
  • Fix: “Insert text” action step now plays nicer with other subsequent action steps.
  • Fix: Address a case where sync could get stalled in odd timing situations where sync was requested more than once quickly.
  • Fix: [[draft_open_url]] tag was not working.
  • Change: Work on some general improvements to syntax highlighting to avoid a few glitches in rendering.
  • Change: Several improvements to Markdown syntax, including highlighting of horizontal rules and indented code blocks.
  • New: Add keyboard shortcut preview when managing action groups actions.
  • Change: Some under-the-hood improvements to Action Directory sharing to support additional features on the web site.


  • New action steps
    • Event action step returns for creating calendar events with default system card. Docs and sample action.
    • Box action step to create, append, prepend to files in service. Docs and Examples
    • Open in... action step to support old-style document interaction export. Docs and Examples
  • Other new bits
    • Workspaces and tag filters now support “All - Any” mode selection to control whether drafts in the filter should match all the selected tags (and), or any of them (or). This setting will be saved with Workspaces.
    • Action steps in an action can now be disabled and duplicated (swipe on step in action editing to select). Handy addition for work-in-progress step modifications and testing variants of scripts.
    • Recent action log history (not specific to individual drafts) is now accessible from history button at top of action list. Makes access to recently performed actions quicker. Great for troubleshooting errors as well.
    • Action log entries can now be deleted (Swipe right).
    • CMD-Return external keyboard shortcut to toggle editor focus.
    • Support traditional table edit mode for better VoiceOver experience.
  • Scripting changes
    • Better scripting of Calendars and Events, including the ability to read calendar events. Details:
      • Calendar.default property which returns the system default calendar for new events.
      • Calendar.find(title) method looks up a calendar by name.
      • Calendar.getAllCalendars(); returns array of all known calendars on the device.
      • events(startDate, endDate); method to query the contents of a calendar. Returns an array of Event objects. This can be used to import calendar events into a drafts, among other things.
      • event.edit() method. Displays a Event object in the system event editing card. Allows scripting to create modify the default values for the event (start/end, add alarms, etc.) then display the event for modification/editing and adding to the calendar.
      • More detail in scripting reference
    • Box script object to read and write files to service. Docs
    • editor.isActive bool property to determine if editor is currently in edit mode.
  • Other fixes and updates
    • Fix: Restore last selection when opening a draft.
    • Fix: Better restore of text selections when undo/redo are used.
    • Fix: Improve frequency of updates to app badge.
    • Fix: Evernote action setup to use “Text” output not properly encoding some HTML entities.
    • Fix: Omit drafts in the trash from queries unless the trash folder is explicitly queried.
    • Fix: Various improvements for dynamic text.
    • Change: Better error reporting when file imports fail for some reason.
    • Fix: Workaround dark theme tinting of the system file import view.
    • Fix: Do not allow external keyboard shortcuts to interfere with arrow keys while editing search fields.


  • New: Full access to Twitter API via Twitter object request method. Drafts will handle the OAuth, and you can make any valid calls against the Twitter API. Details on methods in scripting documentation. Same actions, like a Tweet Storm example, in the Twitter integration guide.
  • Fix: Refactor animation to avoid oddball case where the side panels could get stuck when the cursor was in certain positions with certain content in a draft.
  • Fix: Threading issue scripting twitter updateStatus calls.
  • New: Inbox/Flagged/Archive/Trash tabs now support drag and drop. Draft drafts from list onto them to move them (or assign flags).


  • New: iMessages app is back and better than ever. With tag filtering, it makes it really easy to use Drafts as a snippet library to insert text into Messages. More information
  • New: Inbox/Flagged/Archive/Trash tabs in draft list now support drag and drop. Drag drafts from list onto them to move them (or assign flags).
  • New: “Inbox default swipe action” setting in “…” options of draft list. Allow changing of the default behavior of a full swipe on a draft in the inbox between “Archive” and “Trash”. Default is “Archive”.
  • New: External keyboard shortcuts for cancel (cmd-.) and continue (cmd-return) options in HTML Previews.
  • New: Improvements to drafts selection screen, which is used in iMessages, the Share extension and the app.selectDraft() method. Can now be filtered by a tag and archive can be browsed. Sometime down the road it will get better filtering, but this will do for now.
  • New: Twitter action now logs URL for tweet in action log when successful in the action log. - New: Twitter script object with updateStatus(string) method to post a tweet, returns bool success value. Details in scripting reference. Details
  • New: editor.deactivate(); script method to resign focus - opposite of existing editor.activate(); method

  • Change: Update MultiMarkdown from 6.0 to 6.3.2 to incorporate latest fixes/updates. Includes a few bugs rendering tables w/o opening closing pipe characters and with maintaining indents in code blocks.
  • Change: Improve margin calculations to better optimize readable line lengths, especially on the big iPads.
  • Change: Use Safari View Controller in-app to open http links in Link mode.
  • Change: Improved refresh of processed updates when viewing a draft on Apple Watch.
  • Change: Improve visibility in Workspaces Today widget.
  • Change: A few tweaks to Evernote login process to try to fix login for some in China - this may or may not help users seeing these issues, please report back.
  • Change: Some improvements for migrating actions from Drafts 4.

  • Fix: editor.undo(), editor.redo() were not working properly.
  • Fix: Maintain position of quick access tabs (both Workspace and Action Groups) after selecting new tab.
  • Fix: Text could go behind keyboard row on iPhone X with external keyboard connected. - Fix: Crash accessing App Store with poor network connectivity.
  • Fix: Clean up a few crashes calling Javascript methods is bad arguments.
  • Fix: Do not allow edit of name in current list options workspace.
  • Fix: VoiceOver issues with tag selection and editing.


  • New: Better drag and drop in action list. Actions can now be dragged between groups by switching group tabs, and also dropped on a different group in the group list to move them.
  • Fix: Automatic theme change would loose cursor position and not update keyboard appearance.
  • Fix: Rework implementation of “Insert text” to be faster and work better with TextExpander snippets.
  • Fix: Better updating of app badge when background sync completes or Siri creates draft.
  • Fix: [[selection]] tag not return correct result when selection was at very end of draft.
  • Fix: If a query was left in the draft list search field, it would get restored on a cold start of the app, but the not show in the search text in the text box making you wonder where all your drafts went.
  • Fix: Changes to tags made in scripting might not save if the action had after success setting.
  • Fix: Share extension might not immediately unlock pro features when subscription is initiated.
  • Fix: Clear button in recent tag suggestions would not stay in scrollable view.
  • Fix: Make sure custom template tags generated in an action are cleared when action is finished running.
  • Fix: Remove some overhead from scripts which manipulate editor selections to prevent some race conditions with the selection when actions are run quickly, repeatedly, like from a keyboard shortcut.
  • Fix: Case where bad tag filter could get applied to draft list after launching to search from widget.
  • Fix: Changing syntax highlighting for draft without making any other changes to draft did not save change.
  • Fix: Add “after success” label in group editing.
  • Fix: Scripting theme change should require Pro subscription.


  • Initial public release.