Agent-native UIKit starter for Codex, Claude Code, and other coding agents.
Modern.UIKit is a programmatic UIKit starter plus an Agent workflow. It helps an Agent create a new UIKit app, inspect an existing iOS/macOS repo, and decide whether adoption is safe before touching files.
It is not a universal one-click migration tool. Complex SwiftUI, Tuist, CocoaPods, SwiftPM, or custom build setups are treated as planning cases first.
Install the skill where your Agent runtime can see it:
npx skills add Zach677/Modern.UIKit --skill uikit-starter -g -yThen ask Codex, Claude Code, or another skill-aware Agent to use $uikit-starter.
Good prompts:
Use $uikit-starter to create a new private UIKit app repo named ShelfMusic.Use $uikit-starter to inspect this repo and tell me whether it can adopt Modern.UIKit safely.Use $uikit-starter on this SwiftUI/Tuist repo, but do not change files until you explain the migration path.Use $uikit-starter to preserve this repo's existing workflow and only borrow compatible Modern.UIKit practices.
The intended user experience is natural language first. The scripts under skills/uikit-starter/scripts/ exist so Agents can do deterministic work; they are not the primary UI.
- Create fresh programmatic UIKit apps from this starter.
- Rename project, app source, tests, workspace, scheme, bundle identifier, and starter docs for generated apps.
- Analyze existing repos without writing files.
- Apply additive baseline files only when the analyzer returns
can_apply: true. - Produce migration plans for SwiftUI, Tuist, CocoaPods workspace, SwiftPM package-first, and SwiftPM package-only repos.
- Preserve git history, remotes, signing settings, bundle identifiers, product source, resources, and existing repo-specific workflows by default.
- It will not automatically replace a SwiftUI app entry with UIKit.
- It will not automatically convert Tuist, CocoaPods, SwiftPM, XcodeGen, Bazel, Buck, Fastlane, or custom build systems.
- It will not overwrite existing files during adoption.
- It will not claim a repo can migrate just because it can be inspected.
The template itself is intentionally small:
- UIKit app lifecycle through
main.swift,AppDelegate, andSceneDelegate. - Programmatic UI with no main storyboard.
Application/,Interface/Root/, and appResources/folders.- Shared
Configuration/*.xcconfigfiles for signing, bundle, and version settings. - Hosted Swift Testing target with an
.xctestplan. Makefileplus DevKit scripts for log-aware build/test, formatting, localization, scheme tidying, and license scanning.
Current phase: agent-native preview.
- Fresh UIKit app creation.
- Existing repo analysis with a guarded
can_applypath. - Planning mode for common SwiftUI, Tuist, CocoaPods, workspace-only, and SwiftPM repo shapes.
- Broaden real repo smoke coverage (#1).
- Improve adoption accuracy (#2, #3).
- Design migration tooling after analysis is reliable (#4).
Modern.UIKit uses a discussion-first contribution flow. Start with Discussions for bug triage, feature ideas, and questions. The issue tracker is reserved for accepted, actionable work.
See CONTRIBUTING.md for the full process.
Detailed rules live outside the README:
skills/uikit-starter/SKILL.mdis the Agent-facing workflow contract.AGENTS.mdis the repository working contract.skills/uikit-starter/scripts/create_project.pycreates fresh projects.skills/uikit-starter/scripts/adopt_existing.pyanalyzes existing repos and gates adoption withcan_apply.
- Xcode with iOS 17 SDK or later.
- Swift Testing support.
- GitHub CLI (
gh) for repository workflows. - Node.js /
npx, Prettier,swiftformat, andxcbeautifyfor the full Agent workflow.
Modern.UIKit is inspired by the engineering discipline in MuseAmp, especially its workspace-first Xcode workflow, DevKit-style maintenance scripts, test-plan setup, and log-aware build/test automation.
Modern.UIKit is licensed under the MIT License. See LICENSE for details.
© 2026 @Zach677. Released under the MIT License.