explaingit

time-attack/hermesshare

Analysis updated 2026-05-18

33SwiftAudience · developerComplexity · 3/5Setup · moderate

TLDR

Turns structured JSON into native, interactive iMessage cards like flight passes, delivery trackers, and polls, without running any downloaded code.

Mindmap

mindmap
  root((HermesShare))
    What it does
      JSON to native cards
      Fixed signed renderer
      Tap to reply actions
      No runtime code
    Tech stack
      Swift and SwiftUI
      iMessage extension
      MapKit previews
      XcodeGen project
    Use cases
      Flight boarding passes
      Delivery tracking
      Trip itineraries
      Agent reply cards
    Audience
      iOS developers
      AI agent builders
      Messaging app teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Send a flight boarding pass or hotel listing as a rich interactive card in iMessage.

USE CASE 2

Let an AI agent reply to a conversation with structured cards instead of plain text walls.

USE CASE 3

Build tap to reply actions that insert new messages automatically into a thread.

USE CASE 4

Prototype new iMessage card types quickly using the included host debug app.

What is it built with?

SwiftSwiftUIiMessageMapKitXcodeGen

How does it compare?

time-attack/hermessharebleeeet/termipethoobnn/fanfan
Stars333333
LanguageSwiftSwiftSwift
Setup difficultymoderateeasyeasy
Complexity3/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires Xcode, an Apple developer setup for signing, and XcodeGen to generate the project.

In plain English

HermesShare is an open source iMessage app extension for iOS that turns structured JSON data into rich interactive cards inside Apple Messages, things like package tracking cards, flight boarding passes, trip itineraries, polls, hotel listings, and dashboards. An AI agent, or really any backend service, sends a JSON document describing the layout, and the app renders it natively on the device. The reason this project exists is that Apple does not allow apps to download and run arbitrary code at runtime. Any interface code running on an iPhone has to be compiled, signed, and shipped inside an App Store reviewed app, so you cannot send raw SwiftUI code the way a web page can send JavaScript. HermesShare works around this the same way apps like Scriptable do: it ships a fixed, Apple signed renderer, and the JSON that arrives only describes what to show, chosen from a known set of building blocks, rather than containing any code that gets executed. This keeps it within App Store rules while avoiding both plain text messages and web views embedded in the chat bubble. Under the hood, the JSON layout, called a HermesLayout, is a document with metadata plus a tree of nested view nodes. That document gets base64 encoded and packed into the URL of a Messages app link using Apple's iMessage app framework. When a person taps the message bubble, the signed extension reads the JSON tree and builds a real native SwiftUI interface from it, matching each node type to a fixed set of supported components. Buttons inside these cards can also send reply messages back into the conversation automatically when tapped. The repository includes a shared Swift package with the schema, rendering logic, and sample layouts, a small host app for quickly testing changes, the actual iMessage extension itself, documentation for the JSON format and for sending messages, and some helper scripts for things like generating thumbnails and sending test messages in bulk.

Copy-paste prompts

Prompt 1
Help me set up the HermesShare Xcode project using project.yml and XcodeGen.
Prompt 2
Show me how to author a HermesLayout JSON document for a package delivery tracking card.
Prompt 3
Explain how HermesShare encodes a HermesLayout into an iMessage URL using Photon.
Prompt 4
Walk me through adding a tap to reply action button to one of my HermesShare cards.

Frequently asked questions

What is hermesshare?

Turns structured JSON into native, interactive iMessage cards like flight passes, delivery trackers, and polls, without running any downloaded code.

What language is hermesshare written in?

Mainly Swift. The stack also includes Swift, SwiftUI, iMessage.

How hard is hermesshare to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is hermesshare for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.