iOS App
The NeuralRepo iOS app is a native SwiftUI client for the two things you do on a phone: capture an
idea the moment it arrives, and find one when you need it. It talks to the same /api/v1 surface
as the CLI, authenticated with the same nrp_ key, so everything you
capture appears everywhere else immediately.
Installing
Section titled “Installing”-
Install the prerequisites:
Terminal window brew install xcodegen # Xcode 16 or later is also required -
Generate the Xcode project from the checked-in definition:
Terminal window cd iosxcodegen generateopen NeuralRepo.xcodeprojThe
.xcodeprojis generated and git-ignored — editproject.ymland re-runxcodegen generaterather than the project file. -
In Xcode, select your Apple Developer team under Signing & Capabilities for all three targets: NeuralRepo, ShareExtension, and NeuralRepoWidget. They share an App Group and a Keychain access group, both already declared in
project.yml. -
Build to a device with ⌘R.
Signing in
Section titled “Signing in”The sign-in screen offers two paths, and both end with an nrp_ API key in the shared Keychain:
- Sign in with Apple — native, on-device. The identity token is posted to
/auth/apple/nativeand exchanged for a key. - Sign in (web) — opens
/auth/cliin aASWebAuthenticationSession, the same endpointnrepo loginuses, and returns to the app atneuralrepo://auth.
Use the same account you use on the web or in Claude — the app is a client, not a separate space. The key is stored once and read by the app, the share extension, the widget, and the Siri intent through a shared Keychain group, so you sign in a single time.
Signing out clears the key and discards anything still waiting in the offline queue, so that captures made under one account can never post under the next.
The five tabs
Section titled “The five tabs”| Tab | What it does |
|---|---|
| Capture | Title, notes, a starting status, and tags with suggestions from your existing tag list |
| Search | Semantic search across everything you have captured |
| Ideas | The full list, filtered by status, with swipe actions and a context menu |
| Review | Pending duplicates, new connections, and ideas that have gone quiet — badged with the count |
| Settings | Account and plan, theme, offline queue, and links out to the web app |
Capture
Section titled “Capture”The capture form offers captured, exploring, and building as starting statuses — the same
three the web app’s capture modal offers — and a tag field that suggests tags you already use.
Ideas post with source: ios, shown as ⬢ everywhere else in NeuralRepo.
Two conveniences worth knowing:
- Drafts survive. Backgrounding the app with a part-written idea saves it; you come back to what you were typing.
- The form clears itself. After a successful capture the fields reset, the keyboard returns to the title, and a “Captured” toast appears for about a second and a half.
The offline queue
Section titled “The offline queue”If a capture cannot reach the server, the app keeps it locally and syncs it later.
| Behaviour | Detail |
|---|---|
| What gets queued | Only requests that demonstrably never reached the server — a network failure, not a rejection |
| Where | One file per capture in the App Group container, so the app and the share extension can queue at the same time |
| Order | Oldest first, so capture order and idea numbering are preserved |
| When it drains | On the next successful capture, when you open the app, or from Sync now on the banner |
| When an item is deleted | Only after the server confirms the create |
| What stops a drain | Being offline, or a 401 — everything stays queued |
| Other errors | The item stays queued and the drain moves on, so a capture blocked by the free-plan cap retries after you upgrade |
A banner on the Capture tab and a row in Settings both show the pending count.
The duplicate banner
Section titled “The duplicate banner”After a capture, the app polls for a duplicate detection three times over the next couple of seconds and, if the idea it just saved was flagged, raises a banner offering View duplicate, Dismiss, or a close button. Dismissing resolves the detection server-side so it will not come back.
This is the one surface in NeuralRepo with a duplicate banner attached to capture, and it appears after the idea is saved — detection is asynchronous, so it cannot happen before. It is Pro-only, because duplicate detections are.
Search, Ideas, and Review
Section titled “Search, Ideas, and Review”Search runs the same semantic search as nrepo search, 30 results at a time. When the server
falls back to keyword results — on the free plan past 10 semantic searches a month — the list is
labelled Keyword results and the match percentages disappear.
Ideas filters by status with a chip bar, pages as you scroll, and supports swipe-to-archive,
swipe-to-ship, a leading swipe to move to building, and a context menu for copying the title or
setting any status. Opening an idea shows its body, tags, relations, and — at the bottom —
id 391 · #42, which is the easiest way to read an idea’s real ID off your phone for a CLI or API
call.
Review is the mobile version of the Review Queue: possible duplicates (Merge / Not a duplicate), new connections (Open / Seen it), and ideas gone quiet past your stale threshold (Keep / Develop / Archive). The tab badge shows how many cards are waiting.
Capturing without opening the app
Section titled “Capturing without opening the app”Share sheet
Section titled “Share sheet”Share a page from Safari, or selected text from anywhere, into NeuralRepo. The extension pulls the
page title, text, and URL into a pre-filled capture form with the same status and tag controls as
the app. It posts with source: ios and uses the same offline queue, so a share on the Underground
still lands.
Siri and Shortcuts
Section titled “Siri and Shortcuts”The app registers a native App Intent, so these all work without opening it:
- “Capture to NeuralRepo”
- “Add an idea to NeuralRepo”
- “New idea in NeuralRepo”
Siri asks “What’s the idea?”, and the dictated text is saved with source: siri. Text longer than
200 characters is split: the first 200 become the title and the whole text becomes the body. If
you are not signed in, the intent replies “Open the NeuralRepo app and sign in first”; at the
free-plan cap it says so and points at Pro.
This replaces the older iCloud shortcut described in Siri Shortcuts — the intent needs no download and no API key pasted into a shortcut.
Widget
Section titled “Widget”A home and lock screen widget in small and medium sizes: a New idea button that deep-links straight into the capture screen, your active idea count, and — at medium size — your four most recent ideas.
What the app does not do
Section titled “What the app does not do”Organising work stays on the web: the mind map, the kanban board, the AI agent, tag management, bulk actions, and export are all web-app features. The iOS app is deliberately a capture-and-lookup client, and Open web app in Settings takes you to the rest.