LoopKit Loop for iOS: Architecture, Setup, and Adoption Limits
An automated insulin delivery app for iOS, built on LoopKit
At a glance
- What is it?
- LoopKit/Loop is an experimental iOS app template for automated insulin delivery, built on the LoopKit framework. It combines data handling, calculations, iPhone controls, and Apple Watch surfaces, but it is not approved for therapy.
- Who is it for?
- Loop fits developers and researchers who need a customizable iOS template for studying automated insulin delivery behavior. It does not fit people seeking an approved therapy product or a turnkey clinical installation.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Loop's automated insulin delivery template
LoopKit/Loop targets developers building an automated insulin delivery system for iOS, rather than users looking for a generally available diabetes treatment application. The README calls it an app template and describes it as experimental. It is also explicitly not approved for therapy. That distinction governs the rest of the project: the repository is a technical foundation for development and evaluation, not a documented medical release with therapy approval.
The intended scope is broader than a single glucose calculation screen. Based on the repository layout, the project contains the main Loop application, LoopCore, LoopUI, common components, test targets, an intent extension, a status extension, a widget extension, and Apple Watch application extensions. The listed screenshots also cover status, bolus, carb entry, reservoir warnings, failure notifications, and watch complications. These entries indicate that the template addresses several parts of an iPhone and Apple Watch workflow, including input, status presentation, and alerts.
Loop is aimed at people who already understand the surrounding diabetes and iOS development context. The README does not document supported devices, deployment targets, compatible insulin pumps, sensor integrations, build prerequisites, or a general installation procedure. Those omissions matter. A prospective adopter cannot infer hardware compatibility or clinical coverage from the project description alone.
LoopKit supplies the shared application core
Loop delegates its central framework responsibilities to LoopKit. According to the README, LoopKit provides data storage, retrieval, and calculation, together with boilerplate view controllers used in Loop. That separation makes the architecture reasonably direct to inspect. The repository has a dedicated LoopCore area, while the Loop directory contains the application-level implementation and LoopUI provides interface-related code.
The likely development flow starts with source data entering Loop, storage and retrieval being handled through LoopKit, and calculations being performed by the framework layer before the app presents status or accepts actions. The exact glucose algorithm, prediction model, dosing calculation, and persistence schema are not described in the README, so this article does not assign specific values or behavior to them. The documentation site is the stated source for algorithm details.
The extensions expose distinct parts of the iOS execution environment. Repository entries named Loop Intent Extension, Loop Status Extension, and Loop Widget Extension indicate separate targets for intents, status information, and a widget. WatchApp and WatchApp Extension show that Apple Watch support is included as a first-class part of the repository rather than as an incidental script. The project is primarily Swift, while the separate DoseMathTests and LoopTests entries indicate that calculation and application behavior have dedicated test code. The README does not state how those tests are configured or what coverage they provide.
iPhone and Apple Watch surfaces
Loop's repository structure suggests a multi-surface application rather than a command-line utility or background service. The main iPhone interface includes status, bolus, notification, and settings-related paths, while the Watch app has complications and controls for carb and bolus entry. The screenshot names are useful evidence of intended surfaces, although they do not prove the behavior of a current build.
This design creates an explicit integration boundary. On iOS, an app extension cannot be treated as arbitrary standalone code because it has its own target and lifecycle. The repository gives no entitlement list, bundle identifier scheme, signing procedure, or deployment configuration. Those details would have to be established from the Xcode project and the external documentation before building. Without them, a developer should treat the presence of extension directories as architectural intent, not as installation instructions.
The Apple Watch screenshots include failure and reservoir notifications, which suggests that some status and error information is intended to be visible away from the phone. However, the README does not explain synchronization behavior, disconnected-device handling, or whether every iPhone operation is available on the watch. Those are important questions for any controller architecture, but they remain undocumented in the README.
Loop documentation points to an external setup path
The README does not contain a command-line installation procedure for Loop. It directs readers to the Loop Docs at https://loopkit.github.io/loopdocs/ for installation, algorithm, and other details. Because the repository text does not reproduce those steps, this article does not invent a package command, build flag, device configuration, or signing setting.
For a first real use, the supported path is therefore to open the documented setup instructions, identify the required Xcode and device configuration there, and use the repository's Xcode project as the source target. The project includes Loop.xcodeproj and configuration files such as Loop.xcconfig, LoopCore, LoopUI, and the extension targets. A developer should expect to work in Xcode rather than install Loop through a package manager, although the README does not explicitly state the complete build procedure.
The external documentation is part of the adoption path, not an optional convenience. Loop's own README sends installation, algorithm, and related questions there, while the Wiki is listed for FAQs, open-source contribution guidance, and other tips. The distinction matters for medical-device software: the application source can reveal architecture, but it cannot substitute for the documentation that explains intended configuration and operation.
Experimental status limits operational adoption
The clearest limitation is stated directly: Loop is highly experimental and is not approved for therapy. That rules out treating the repository as an authorized treatment system without separate review and evidence. It also means that a successful build should not be interpreted as clinical validation, regulatory clearance, or proof that the software is suitable for an individual treatment decision.
There is a second limitation around change tracking. The repository is not archived, and its last push was on 2026-10-16. However, the listed recent releases are v3.4.4, v3.4.3, and v3.4.2 from October 2024. The README and release list do not explain whether later commits belong to an unreleased development line, whether release artifacts correspond to the current default branch, or how upgrades are handled. Maintenance activity and release readiness are therefore separate questions here.
The custom licence adds another adoption constraint. GitHub classifies the licence as Other and directs readers to LICENSE.md. The repository description does not reproduce the licence terms, so it does not establish permissions for redistribution, modification, device builds, or commercial use. Anyone considering incorporation into a product must read that file rather than relying on the repository's source-code description.
LoopKit and Loop are different adoption choices
The clearest alternative to adopting the complete Loop application is to build on LoopKit alone. The README identifies LoopKit as a collection of frameworks for data storage, retrieval, calculations, and boilerplate view controllers. Loop adds the application-level iPhone and Apple Watch structure, including its main app, extensions, widgets, tests, and watch targets. In practical terms, the framework route leaves more application and product design to the adopter, while the Loop route supplies a larger starting template with a specific automated insulin delivery structure.
That is an architectural difference, not a claim that one option is clinically safer or more complete. The README provides no comparison with another automated insulin delivery app, and it does not document whether LoopKit alone supports every Loop feature. It also does not state that LoopKit is an approved alternative. The useful comparison is scope: choose Loop for an existing iOS application template, or inspect LoopKit when the shared data and calculation services are the only confirmed requirements.
For either route, hardware and therapy compatibility remain unresolved by the README. The repository description names diabetes and diabetes prediction as topics, but the README does not enumerate supported pumps, sensors, calibration steps, or deployment requirements.
Upgrades require reading both code and release records
Loop has visible test directories and a version configuration file, but the README does not document an upgrade procedure, migration path, rollback process, or compatibility matrix. The presence of Version.xcconfig identifies a place where versioning is configured, yet it does not establish how an existing installation should be upgraded. The external Loop Docs and Wiki are the documented destinations for installation and contribution information.
Release history also needs careful interpretation. The listed v3.4.4 release is dated 2024-10-09, while the repository's last push was on 2026-10-16. A later commit can exist without a corresponding published release, but the README and release list do not say whether that happened here. Engineers should compare the intended release tag with the current default branch before relying on a version number.
The absence of documented rollback is particularly relevant for a multi-target Xcode project. The repository contains application extensions, shared resources, tests, and watch targets, so an upgrade may involve more than replacing one binary. The README does not identify migration scripts or retained-state behavior. Those details need confirmation from the project documentation and source before a build is modified.
Editorial conclusion
Loop fits developers and researchers who need a customizable iOS template for studying automated insulin delivery behavior. It does not fit people seeking an approved therapy product or a turnkey clinical installation. Before adoption, verify the current installation and algorithm documentation at loopdocs.org, read the custom LICENSE file, and account for the gap between the documented v3.4.4 release and later repository changes.
Frequently asked questions
Is LoopKit/Loop approved for therapy?
No. The README explicitly describes Loop as highly experimental and not approved for therapy.
What does LoopKit provide to the Loop app?
LoopKit provides frameworks for data storage, retrieval, and calculation, plus boilerplate view controllers used in Loop.
Where can I find Loop installation and algorithm documentation?
The README directs users to the Loop Docs at https://loopkit.github.io/loopdocs/. It also points to the project Wiki for FAQs and open-source contribution topics.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/loopkit-loop)Was this useful?