You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable public changes to Runline are tracked here.
4
+
5
+
Runline is in public beta. Versions may move quickly while the iOS app, TestFlight flow, and optional Cursor SDK bridge settle.
6
+
7
+
## Unreleased
8
+
9
+
- Keep Cloud Agent mode as the default iOS experience.
10
+
- Continue refining Cursor SDK mode and Runline Bridge pairing for power users.
11
+
- Improve iPhone and iPad polish while staying native to SwiftUI and iOS system patterns.
12
+
13
+
## Runline Public Beta
14
+
15
+
- Renamed the project and repository to Runline.
16
+
- Prepared GitHub source release `v1.0.0-beta.1`.
17
+
- Moved the public repository to `https://github.com/parrisdigital/runline`.
18
+
- Preserved the App Store bundle identifier `com.matthewparris.runline`.
19
+
- Added open source project files: MIT license, security policy, contributing guide, support guide, code of conduct, issue templates, PR template, Dependabot, CI, and gitleaks configuration.
20
+
- Added native iPhone and iPad support for Cloud Agent chats, repositories, Settings, attachments, model selection, light/dark mode, and optional Cursor SDK mode.
21
+
- Cleaned chat event rendering so streaming text and thinking deltas are grouped into readable timeline entries.
22
+
23
+
## runline-bridge 0.1.2
24
+
25
+
- Published `runline-bridge@0.1.2` to npm.
26
+
- Set both `latest` and `beta` npm dist-tags to `0.1.2`.
27
+
- Updated npm metadata to point to `parrisdigital/runline`.
The app uses a proven Cloud Agents foundation with a chat-first, system-native iOS interface: stock navigation, lists, forms, sheets, toolbars, and settings surfaces.
7
+
Runline is a native iOS 26+ client for working with Cursor Cloud Agents from iPhone and iPad. It keeps the default path simple: connect a Cursor API key, choose a repository, start a Cloud Agent run, and continue the conversation from a system-native chat interface.
8
+
9
+
Runline also includes an optional Mac-side bridge for Cursor SDK sessions. The bridge is only needed when a user wants SDK-specific workflows such as MCP profiles, SDK session state, or local Mac-assisted pairing.
6
10
7
11
Runline is independent and is not affiliated with, endorsed by, or connected to Cursor or Anysphere.
- iOS app: native SwiftUI app for iOS 26+ and iPadOS 26+.
21
+
- Cloud Agent mode: default, fully on-device direct integration with Cursor's Cloud Agents API.
22
+
- Cursor SDK mode: optional, powered by `runline-bridge` on the user's Mac or a trusted HTTPS bridge.
23
+
- TestFlight/App Store Connect releases: maintainer-managed.
24
+
- npm package: `runline-bridge@0.1.2` is published on both `latest` and `beta`.
25
+
26
+
## What Runline Does
27
+
28
+
- Stores the user's Cursor API key in iOS Keychain.
29
+
- Lists Cursor repositories and models.
30
+
- Starts Cursor Cloud Agent runs from native iOS forms.
31
+
- Streams and restores run timelines with cleaner event grouping.
32
+
- Lets users continue terminal runs with a native chat composer.
33
+
- Supports images and files as prompt context where the Cursor API path accepts them.
34
+
- Shows artifacts, PR links, run status, archive/delete/cancel actions, and notification preferences.
35
+
- Adapts the same SwiftUI experience to iPhone and iPad, including portrait and landscape.
36
+
- Supports system appearance, light mode, dark mode, and user-selected appearance preferences.
37
+
- Provides an optional Cursor SDK bridge path for users who want SDK sessions from their Mac.
38
+
39
+
## Runtime Modes
40
+
41
+
| Mode | Where it runs | Best for | Requirements |
42
+
| --- | --- | --- | --- |
43
+
| Cloud Agent | Directly from iOS to Cursor Cloud Agents | Most users, TestFlight users, repository tasks, follow-ups, artifacts, PR workflows | Cursor API key |
44
+
| Cursor SDK | iOS app plus Runline Bridge | SDK sessions, MCP profiles, richer local tooling, Mac-assisted workflows | Cursor API key, Node.js 20+, `runline-bridge`|
45
+
46
+
Cloud Agent mode does not require Node, a Mac bridge, a hosted backend, or any Runline server.
10
47
11
-
Runline is in public beta. Cloud Agent mode is the default path and works directly from iOS. Cursor SDK mode is optional and requires Runline Bridge on the user's Mac.
48
+
Cursor SDK mode is intentionally opt-in. It should be treated as a power-user path until the bridge and pairing flow are hardened further.
12
49
13
-
## Features
50
+
## Install the iOS Beta
14
51
15
-
- iOS 26+ SwiftUI app target
16
-
- Chat-first Cloud Agents navigation for iPhone and iPad
17
-
- Cursor Cloud Agents v1 provider for account, repositories, models, agents, runs, streams, artifacts, archive, unarchive, and delete
18
-
- Optional `@cursor/sdk` bridge client for Cursor SDK sessions, MCP profiles, subagents, and multi-turn follow-ups
19
-
- Runline Bridge pairing with one-time terminal codes and Keychain-backed bridge tokens
20
-
- First-run and Settings runtime selection between Cloud Agent and Cursor SDK defaults
21
-
- Native Cursor SDK composer controls for intent, model, MCP profile, image context, and file context
22
-
- Keychain-backed Cursor API key storage
23
-
- Local cache for account, repositories, models, agents, runs, stream events, artifacts, notification preferences, and launch draft
24
-
- Unit tests for Cursor v1 request contracts, SSE parsing, cache persistence, app routing, push payloads, chat event cleanup, file attachment loading, and SDK bridge request mapping
52
+
The iOS beta is distributed through TestFlight by the maintainer. Once installed:
25
53
26
-
## Cursor SDK Mode
54
+
1. Open Runline.
55
+
2. Connect a Cursor API key.
56
+
3. Keep Cloud Agent as the default mode unless you specifically want the SDK bridge.
57
+
4. Select a repository and launch a chat.
58
+
5. Continue completed runs from the chat composer.
27
59
28
-
Cloud Agent mode works directly from iOS. Cursor SDK mode is optional and requires Runline Bridge on the user's Mac:
60
+
Cursor API keys stay on device in Keychain for direct Cloud Agent requests.
61
+
62
+
## Optional Cursor SDK Mode
63
+
64
+
Install the bridge only if you want Cursor SDK mode:
Runline Bridge prints the iPhone-reachable URL and pairing instructions. The iOS app stores the bridge token in Keychain after pairing.
72
+
For Simulator development, `http://localhost:8787` is usually enough.
73
+
74
+
For a physical iPhone on the same Wi-Fi network:
75
+
76
+
```bash
77
+
ipconfig getifaddr en0
78
+
```
79
+
80
+
Then enter `http://<mac-lan-ip>:8787` in Runline Settings and pair with the one-time code printed by the bridge.
81
+
82
+
The bridge does not need to store Cursor API keys. It can accept a per-request bearer token from the iOS app, or use `CURSOR_API_KEY` from the user's local shell environment.
83
+
84
+
## Repository Layout
85
+
86
+
```text
87
+
Runline/ SwiftUI app source
88
+
RunlineTests/ Unit tests for app state, providers, cache, routing, and bridge mapping
89
+
orchestrator/ runline-bridge npm package
90
+
DesignAssets/ Public logo and app icon source previews
91
+
Tools/ Maintainer utilities such as build-number updates
92
+
.asc/ Maintainer App Store Connect workflow config
See [docs/RELEASES.md](docs/RELEASES.md) for the maintainer release checklist, [CHANGELOG.md](CHANGELOG.md) for public release notes, and [docs/ROADMAP.md](docs/ROADMAP.md) for the beta roadmap.
155
+
156
+
## Maintainer TestFlight Workflow
63
157
64
158
TestFlight and App Store releases are maintainer-only and are not required for contributors.
65
159
@@ -79,9 +173,20 @@ asc workflow run testflight BUILD_NUMBER:<next-build-number>
79
173
80
174
Use explicit build numbers so TestFlight stays aligned with the active Runline sequence.
81
175
176
+
## Security Model
177
+
178
+
- Cursor API keys are stored on iOS in Keychain.
179
+
- Bridge pairing tokens are stored on iOS in Keychain.
180
+
- Cloud Agent mode works without any Runline backend.
181
+
- Cursor SDK mode uses a user-controlled bridge.
182
+
- The bridge must not log or persist user Cursor API keys.
183
+
- Apple signing material, npm tokens, API keys, `.env` files, archives, IPAs, and provisioning profiles must never be committed.
184
+
185
+
Report vulnerabilities privately through [SECURITY.md](SECURITY.md).
186
+
82
187
## Contributing
83
188
84
-
See [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
189
+
See [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), [SUPPORT.md](SUPPORT.md), and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
Copy file name to clipboardExpand all lines: SUPPORT.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,8 @@ Open a GitHub issue for:
13
13
14
14
Include the app build number, iOS version, device type, bridge version, and clear reproduction steps when relevant.
15
15
16
+
For Cursor SDK mode, also include whether the bridge is local LAN, Simulator localhost, or hosted HTTPS. Do not include pairing tokens, API keys, terminal environment dumps, or private repository contents.
17
+
16
18
## Security Issues
17
19
18
20
Do not open public issues for security reports. Use [SECURITY.md](SECURITY.md).
0 commit comments