# MoE Code — Useful actions for Shortcuts

> Adds custom actions to Apple's Shortcuts app for advanced automation. (iPhone/iPad app by BENJAMIN ANDREW HOOPER.)

- Source: https://appshunter.io/ios/app/moe-code/id6761283435 (this page in markdown: same URL + `.md`)
- Developer: [BENJAMIN ANDREW HOOPER](https://appshunter.io/developer/1888625382)
- Category: Developer Tools, Utilities
- Price: Free
- Rating: 5.00/5 from 1 App Store ratings · 1 written reviews indexed
- Age rating: 17+
- Requires: iOS 18.0 · 9 MB
- Languages: American English
- Released: 2026-04-28
- Data updated: 2026-08-26
- Monetization: free
- User reviews in markdown: https://appshunter.io/ios/app/moe-code/id6761283435/reviews.md

## What is MoE Code?

MoE Code adds additional useful actions to Apple's Shortcuts app.

After spending ~2 years developing ~40 distinct shortcuts (https://routinehub.co/user/mythofechelon) over ~650 versions and encountering all sorts of functionality gaps, I decided to develop and share my own native solutions.

These are currently as follows, and I'm happy to take suggestions!
	• Data: Dictionaries
		◦ "Delete Nested Dictionary Key"
		◦ "Set Nested Dictionary Value"

	• Data: HTML
		◦ "Convert HTML Tables To JSON"
		◦ "Extract HTML Elements Using SwiftSoup"
		
	• Data: JSON
		◦ "Transform JSON Using JQ"
	
	• Data: Lists
		◦ "Add Value(s) To List / Merge Lists"
		◦ "Convert JSON Array To Shortcuts List"
		◦ "Convert String / Shortcuts List To JSON Array"
		◦ "Get Value Position In List"
		◦ "List Contains List?"
		◦ "List Contains Value?"
		◦ "Remove Value From List"
		◦ "Sort Keys Of Dicts In List"
	
	• Data: Text
		◦ "Extract Strings From Binary"
		◦ "Multi Replace Text"
		
	• Device
		◦ "Get Device Ground Speed"
		◦ "Get Device Model"
		◦ "Get Device Type"
		◦ "Is Apple Intelligence Functional?"
		◦ "Is Apple Intelligence-Capable?"
		
	• Files
		◦ "Get File / Folder Properties"
		
	• Media
		◦ "Change Images' / Videos' Creation Dates"
		◦ "Chunk Video"
		◦ "Mark Photos / Videos" (as favourited, unfavourited, or hidden)
		◦ "Play System Sound"
		◦ "Resize Images With Fill (HDR)"
		
	• Network
		◦ "Is Internet-Connected?"
		◦ "Make HTTP Request"
		
	• Settings
		◦ "Get Reminders Default List"
		◦ "Open Settings Deep Link"

	• Shortcuts
		◦ "Convert Action PLIST Binary To JSON"
		◦ "Extract Action Blocks"
		◦ "Find Invalid Variable References"

	• UI
		◦ "Show Markdown"
		
	• Widget
		◦ "Delete Widget / Complication Key"
		◦ "Get Widget / Complication Value"
		◦ "Set Circular Widget / Complication Value"
		◦ "Set Text Widget / Complication Value"
		◦ "Sync And Reload App Widgets"

## Key features

- Data conversion (PLIST, HTML, JSON)
- HTML element extraction
- String manipulation
- Device information retrieval
- Video chunking and resizing
- Network request execution
- Widget management

## Recent user reviews (1 of 1)

All indexed reviews: https://appshunter.io/ios/app/moe-code/id6761283435/reviews.md

### 5/5 — Top! Empfehlenswert

*2026-07-05*

Prima Ergänzung für die Kurzbefehle-App und gratis! Außerdem ist der Entwickler freundlich und fleißig!

## Frequently asked questions about MoE Code

### What is MoE Code?

MoE Code is a free application that adds over 30 new, useful actions to Apple's Shortcuts app. These actions cover data manipulation, device information, media processing, network requests, and widget management, allowing for more advanced automation.

### What kind of data actions does MoE Code offer?

MoE Code provides actions for converting data formats like PLIST binary to JSON, HTML tables to JSON, and string lists to JSON arrays. It also includes functions for deleting nested dictionary keys, extracting HTML elements, and transforming JSON using JQ.

### Can MoE Code help with device-specific information?

Yes, MoE Code can retrieve device-specific information such as the device's ground speed and model. It can also access the default Reminders list and check the functionality and capability of Apple Intelligence features.

### Does MoE Code support media manipulation?

Yes, MoE Code includes actions for media manipulation. You can chunk videos, mark photos and videos (favoriting, unfavoriting, or hiding), and resize media with fill, including HDR content.

### How does MoE Code handle network operations?

MoE Code allows you to check if an internet connection is active and make HTTP requests directly within your Shortcuts. This enables more dynamic and responsive automations that depend on network availability.

### What are the widget-related features in MoE Code?

MoE Code offers several actions for managing widgets and complications. You can delete widget keys, get widget values, set circular or text widget values, and sync and reload app widgets.

### Is MoE Code free to use?

Yes, MoE Code is completely free to download and use. There are no in-app purchases or subscription fees associated with this application.

### What devices is MoE Code compatible with?

MoE Code is designed for Apple devices and is compatible with iPhone, iPad, and Apple Watch. It integrates directly with the Shortcuts app on these platforms.

## Version history (last 5 releases)

### 1.16.1 — 2026-08-19

-Created-

• Action "Show Markdown".

• Action "Find Invalid Variable References".



-Functional changes-

• Action "Make HTTP Request": Added parameter for custom timeout message.

• Actions "Get Value Position In List", "List Contains Value(s)?", and "Remove Value(s) From List": Added specific handling for dictionaries so that key order doesn't matter.

• Action "Sort Keys Of Dicts In List": Added graceful handling (skipping) of an error scenario where the value that's meant to be a dict is malformed.

• Actions "Convert JSON Array To Shortcuts List" and "List Contains List?": Added parameter for correcting data types.

• Action "Extract Action Blocks": Added an error throw for if a +++ comment doesn't end with a label.

• Action "Set Circular Widget / Complication Value": Added trimming of SF symbol name.

• Action "Transform JSON Using JQ": Added parameters for output list type, pretty print, and correct data types.

• Action "Multi Replace Text": Split up parameter for delimiter into one for targets and one for substitutions.

• Data correction parameters: Expanded to convert full strings "true" and "false" to their literal Boolean equivalents.

• Below actions: Changed Shortcuts list output so that if correcting of data type is enabled then true and false will be converted to "Yes" and "No" respectively.
	◦ "Add Value(s) To List / Merge Lists"
	◦ "Remove Value(s) From List"

• Implemented improved / proper parsing of list parameters for the following actions, including allowing empty inputs more broadly and removing requirement for a string list delimiter. An unavoidable side effect of this is that parameters / variables need to be re-linked, so I chose to create new versions and mark the old ones as deprecated to be removed in the future, rather than break anything.
	◦ "List Contains List?"
	◦ "List Contains Value(s)?"
	◦ "Convert String / Shortcuts List To JSON Array"
	◦ "Add Value(s) To List / Merge Lists"
	◦ "Remove Value(s) From List"
	◦ "Sort Keys Of Dicts In List"
	◦ "Get Value Position In List"
	◦ "Multi Replace Text"
	◦ "Extract Action Blocks"
	◦ "Change Images' / Videos' Creation Dates"
	◦ "Mark Photos / Videos"

• String-to-array conversions: Changed handling of no delimiter from throwing an error to returning the original string, as I've now removed a default from parameters, adding a default that's guaranteed to not appear in strings is difficult, and it should be obvious that the string hasn't been converted to an array.

• Action "Get Device Type": Tried to change output from string to an AppEnum of possible values to make it easier to use, but it was rejected as it contained product names. Instead, I tried to added a link to the documentation where the possible values can be found, but that was rejected too. So, it now just provides a relative link.



-Cosmetic changes / improvements-

• Action "Remove Value From List": Renamed to "Remove Value(s) From List"

• Action "List Contains Value?": Renamed to "List Contains Value(s)?"

• Category "Widget / Complication": Renamed to "Widgets / Complications"

• Action "Mark Photos / Videos": Renamed to "Mark Images / Videos As Favourited, Unfavourited, Or Hidden"

• Below actions: Changed parameter summary to be similar to the title.
	◦ "List Contains Value(s)?"
	◦ "Change Images' / Videos' Creation Dates"
	◦ "Mark Images / Videos As Favourited, Unfavourited, Or Hidden"

### 1.15.0 — 2026-08-06

Changes are in decreasing order of importance.
	
Removed:
	• Action "Extract Strings From Binary To JSON Array", as superseded by new version of "Extract Strings From Binary".

Added:
	• Action "Remove Value From List": Created.
	
	• Action "Get File / Folder Properties": Created.
	
	• Action "Open Settings Deep Link": Created.
	
	• Action "Get Device Type": Created.
	
	• Action "Extract Action Blocks": Created.
	
Changed:
	• Action "Merge Lists":
		◦ Fixed bug where, when filtering of duplicates was disabled, array add mode was always suffix.
		
		◦ Fixed likely bug where, when filtering of duplicates was enabled and array add mode was set to prefix, order of added items would be reversed.
		
		◦ Renamed to "Add Value(s) To List / Merge Lists".
		
		◦ Reworded / cleaned up summary.
		
	• Action "Extract Strings From Binary To Shortcuts List":
		◦ Added parameter for output list type (as I figured out how to output either a Shortcuts-compatible list or a JSON array string, despite one AppIntent being limited to one output data type).
		
		◦ Renamed to "Extract Strings From Binary".
	
	• Action "Sort Keys Of Dicts In List": Added parameters for JSON array output.
	
	• Action "Set Nested Dictionary Value": Added parameter for pretty printing JSON.
		
	• Actions "Get Value Position In List" and "Merge Lists":
		◦ Allowed list to be empty.
		
	• Action "Get Value Position In List":
		◦ Changed the auto linking from the list variable to the value variable.
		
		◦ Reworded summary.
		
	• Action "Extract HTML Elements": Renamed to "Extract HTML Elements Using SwiftSoup".
	
	• Action "Resize With Fill (HDR)": Renamed to "Resize Image With Fill (HDR)"
	
	• Various category changes.

### 1.14.0 — 2026-08-02

Added: 
	• Action "Play System Sound": Created.
	
	• Action "Change Images' / Videos' Creation Dates": Created.
	
	• Actions "Convert String / Shortcuts List To JSON Array" and "Merge Lists": Added parameter for pretty print.
	
	• Action "Merge Lists": Added "Shortcuts lists" to the summary to make it clear that it's supported.

Changed:
	• Actions "Mark Photos / Videos" and "Change Images' / Videos' Creation Dates": Massively expanded supported list of datetime formats.
	
	• Action "Make HTTP Request": Improved description for timeout parameter and enforced (AppIntent's) maximum of 30 seconds.
	
	• Implemented named output variables, so they won't just be the action name.
	
	• Split up data category.
	
	• Action "Get Reminders Default List": Changed category from "Data" to new one "Settings". Also looked into whether there's a Swift API for setting the default Reminders list, but it seems that there is not.

### 1.13.0 — 2026-07-27

Added:
	• Action "Get Value Position In List": Created.
	
	• Action "Convert JSON Array To Shortcuts List": Created.
	
	• Action "Extract Strings From Binary To JSON Array": Created.
	
	• Action "Convert Action PLIST Binary To JSON": Added parameters for whether to pretty print and sort keys.
	
Changed:
	• Action "Resize With Fill (HDR)": Fixed bugs with HDR sometimes beind lost in auto gradient mode.
	
	• All complications: Completely rearchitected the data flow so that iPhone actions are more likely to update the Watch complications much faster, whilst preserving eventual updates from iCloud KVS on other, non-paired devices. A side effect of this is that keys (max 1,024) are no longer deleted but marked as inactive.

	• Action "Convert String List To JSON Array": Renamed to "Convert String / Shortcuts List To JSON Array" to make it clear that it can be used for this too.
	
	• Actions "Convert String / Shortcuts List To JSON Array", "List Contains List?", "Mark Photos / Videos", "Merge Lists", "Multi Replace Text", and "Sort Keys Of Dicts In List": Improved parsing of JSON array strings, standardised stripping of certain wrapping characters, removed throwing of errors if the resulting array is empty for runtime reliability, and moved delimited out of action summary.
	
	• Action "Extract Strings From Binary": Renamed to "Extract Strings From Binary To Shortcuts List"
	
	• Actions "Extract Strings From Binary To JSON Array" and "Extract Strings From Binary To Shortcuts List": Added parameter "Output Maximum: Mode" for whether to output the first or last items if the max is hit.
	
	• Action "Convert String / Shortcuts List To JSON Array": Added parameter for pretty print.

	• Action "Get Widget / Complication Value": Made available on watchOS and changed behaviour for when a value isn't found from throwing an error to returning an empty string.

	• Circular complications: Fixed opaque background not actually applying, and disabled by default.
	
	• Home screen text widgets: Changed default font weight from medium to semibold.

	• Action "Sync And Reload App Widgets": Renamed to include complications.

### 1.12.0 — 2026-07-15

• Created new data actions:
	= "Extract Strings From Binary"
	= "Convert Action PLIST Binary To JSON"
• All widgets and complications and related actions:
	= Implemented usage of WatchConnectivity so the iOS actions can get watchOS to request that it sync with iCloud KVS and reload the complications. This increases reliability, but it's still not guaranteed immediacy by any means.
	= Adjusted code so that actions can have default values set for user reference, but they only take effect if the respective mode is "Shortcut-Set".
• Circular complication:
	= Split colour parameter into separate ones for symbol and gauge.
	= Made symbol name, symbol colour, and gauge colour set-able by the action.
• Action "Sync And Reload App Widgets": Made available on watchOS.
• Actions "Is Internet-Connected?", "Is Apple Intelligence-Capable?", and "Is Apple Intelligence Functional?": Changed summaries to make use of "Invert Output?"

---

*Data collected daily from the US App Store and indexed by [AppsHunter](https://appshunter.io/). User reviews are verbatim App Store reviews. Ratings, prices and chart positions refresh continuously; this snapshot is from 2026-08-26.*
