Agentation-iOS Developer mearnest-dev released Agentation-iOS 0.1, an open-source Swift package that lets developers tap views in an iOS app running in the Simulator, attach notes, and copy structured markdown so an AI coding agent receives the view's identifier, type, frame, text and a cropped screenshot. The package has zero dependencies, runs only in DEBUG builds and by default only in the Simulator (with an allowOnDevice: true option for physical devices), and supports both SwiftUI and UIKit through a .agentation() modifier or Agentation.start(). Annotations can sync to the existing agentation-mcp server so agents read them without copy/paste, and the author states the 0.1 release is early and has not been tried on many apps. Visual annotation tool for iOS apps running in the Simulator. Inspired by Agentation https://www.agentation.com/ for React and agentation-vanilla https://github.com/mearnest-dev/agentation-vanilla for plain JS. This is the native iOS version. Tap a view, write a note, copy structured markdown. Your AI coding agent gets the view's identifier, type, frame, text and a screenshot, so it can find the code you mean. Status: 0.1, early. It hasn't been tried on many apps yet. Please open an issue when it describes a view badly. One Swift package. Zero dependencies. Debug builds only. In Xcode: File → Add Package Dependencies… and enter: https://github.com/mearnest-dev/agentation-ios Or in Package.swift : .package url: "https://github.com/mearnest-dev/agentation-ios", from: "0.1.0" Link the Agentation library to your app target. SwiftUI python import SwiftUI import Agentation @main struct MyApp: App { var body: some Scene { WindowGroup { ContentView .agentation } } } UIKit python import Agentation func scene scene: UIScene, willConnectTo session: UISceneSession, options: UIScene.ConnectionOptions { // ...your window setup... Agentation.start } A floating button appears in the bottom-right corner. Tap it to open the toolbar. The toolbar only runs in DEBUG builds. In release builds start and all the modifiers do nothing, so you don't need if DEBUG around them. By default it also only runs in the Simulator; pass allowOnDevice: true to use it on a physical device. - Inspect mode : tap any view to see its type, identifier, frame, text, font and colors. Copy the details, or turn them into an annotation. - Annotate mode : tap a view to drop a numbered marker with a note - Area select : drag to annotate a region, even empty space - Intent tags : tag annotations as bug, style, feature, or content - Screenshots : each annotation saves a cropped PNG with the selection outlined. In the Simulator, that file lives on your Mac, so the agent can open it directly. - Copy as markdown : copies to the Simulator pasteboard, which syncs to your Mac clipboard. Paste into Claude Code, Cursor, or any AI tool. - MCP sync : sends annotations to the existing agentation-mcp https://www.npmjs.com/package/agentation-mcp server, so agents can read them without copy/paste - Agent round trip : when your agent resolves or dismisses an annotation through MCP, it disappears from the toolbar - Per-screen persistence : annotations survive relaunches, grouped by screen - Isolated overlay : draws in its own UIWindow , so it never changes your view hierarchy or layout - UIKit and SwiftUI : works with either, or both in the same app On the web, Agentation hands the agent a CSS selector to grep for. On iOS, the best grep targets are: | What it captures | Example | Where it comes from | |---|---|---| | Accessibility identifier | checkout.payButton | .accessibilityIdentifier ... / accessibilityIdentifier | | Agentation tag | PaymentSummaryCard | .agentationTag ... / view.agentationTag optional, see below | | Source location | MyApp/PaymentSummary.swift:42 | .agentationSource optional, see below | | View controller chain | UINavigationController CheckoutViewController | responder chain | | View path | UITableView PaymentCell 2 UIStackView UILabel | view hierarchy | | SwiftUI root view | UIHostingController