원클릭으로
ios-app
// Build and maintain the native iOS client inside this turborepo (XcodeGen, SwiftUI, WebSocket feed). Use when creating/updating the iOS app, wiring turbo tasks, or documenting iOS workflows.
// Build and maintain the native iOS client inside this turborepo (XcodeGen, SwiftUI, WebSocket feed). Use when creating/updating the iOS app, wiring turbo tasks, or documenting iOS workflows.
| name | ios-app |
| description | Build and maintain the native iOS client inside this turborepo (XcodeGen, SwiftUI, WebSocket feed). Use when creating/updating the iOS app, wiring turbo tasks, or documenting iOS workflows. |
This repo includes a native iOS app at apps/ios/ built with XcodeGen.
HighswarmFeed/Resources/Fonts/).apps/ios/apps/ios/project.ymlapps/ios/HighswarmFeed/apps/ios/HighswarmFeedTests/apps/ios/HighswarmFeed/Resources/Fonts/https://agent-network.joelhooks.workers.devwss://.../firehose (aliases to /relay/firehose).wss://.../relay/public-firehose.Generate the project:
cd apps/ios
pnpm gen
Open in Xcode:
cd apps/ios
pnpm open
Build + test from CLI (uses installed iOS 26.2 simulator runtime):
cd apps/ios
pnpm ios:test
Run it in the Simulator (fast loop, no Xcode needed):
pnpm ios:build
APP=$(ls -d ~/Library/Developer/Xcode/DerivedData/HighswarmFeed-*/Build/Products/Debug-iphonesimulator/HighswarmFeed.app | head -n 1)
UDID=$(xcrun simctl list devices available | rg "iPhone 17 \\(" | head -n 1 | sed -n 's/.*(\\([0-9A-F-]\\{36\\}\\)).*/\\1/p')
open -a Simulator
xcrun simctl bootstatus "$UDID" -b
xcrun simctl install "$UDID" "$APP"
xcrun simctl launch "$UDID" com.joelhooks.highswarm.feed
apps/ios includes a package.json so pnpm/turbo can run scripts:
pnpm --filter @atproto-agent-network/ios ios:testWe intentionally avoid naming these scripts build/test so turbo build / turbo test
doesn't start running Xcode builds when you're just shipping the Workers app.
When the network event payload shape changes (especially event_type, timestamp, and context fields):
apps/ios/HighswarmFeed/Models.swiftapps/ios/HighswarmFeed/EventNormalizer.swiftapps/ios/HighswarmFeedTests/EventNormalizerTests.swiftapps/ios/HighswarmFeed/CarPlaySceneDelegate.swift.SharedStores.shared so CarPlay does not open a second WebSocket.Publish the native iOS app to TestFlight from this repo. Use when archiving/exporting/uploading builds, bumping versions, checking App Store Connect processing status, or fixing common upload failures.
Deploy the atproto-agent-network project. Two separate Cloudflare Workers must be deployed independently — the network worker (API + agents) and the dashboard worker (highswarm.com). Use when deploying changes, fixing the dashboard, or updating agent configs.
Cloudflare Durable Objects patterns for agent state. Use when implementing agent DOs, WebSocket handling, hibernation, storage API, alarms, or DO-to-DO communication. Triggers on Durable Object, DO state, WebSocket server, hibernation, agent persistence.
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.
Pi agent runtime integration for Cloudflare. Use when implementing the agent loop, tools, extensions, session trees, or multi-provider LLM calls. Triggers on Pi, agent runtime, tool calling, streaming, session tree, extensions, self-extending agent.
D1 database patterns for encrypted agent records. Use when implementing schema, storing/querying encrypted records, migrations, or working with the records table. Triggers on D1, database, schema, records table, SQL, encrypted storage.