iPadOS Inventory Taker is a SwiftUI inventory capture app for beverage programs, bars, and back-of-house stock counts. It supports barcode lookup, AI-assisted photo recognition, and text-based product inference in one iPad-first workflow.
- OpenAI keys are stored in Keychain, not
UserDefaults - Inventory data stays on-device unless you explicitly use barcode or AI lookup
- CSV exports exclude secrets
- Unit tests cover duplicate resolution, CSV formatting, and secret persistence
- GitHub Actions runs the project test suite on every push and pull request
- Barcode scanning with manual fallback
- AI photo analysis from camera or photo library
- Text-based product inference
- Duplicate detection with merge-or-new-line resolution
- Quick quantity editing
- CSV export for downstream inventory workflows
- Local image preview support for captured products
- Inventory sessions are stored locally on-device
- Barcode lookup uses OpenFoodFacts
- AI inference uses the OpenAI Responses API only when you invoke text or image inference
- Your OpenAI API key is stored in the iOS Keychain on the device running the app
- Xcode 26.2 or newer
- iPadOS / iOS 26.2 deployment target
- An OpenAI API key if you want AI-assisted capture
git clone https://github.com/theos2node/ipados-inventory-taker.git
cd ipados-inventory-taker
open "Inventory Taker.xcodeproj"Then:
- Build and run the app on an iPad or simulator.
- Open the
Settingstab. - Add your OpenAI API key if you want text or image inference.
xcodebuild -project "Inventory Taker.xcodeproj" -scheme "Inventory Taker" -destination "platform=iOS Simulator,name=iPad Air 13-inch (M3)" buildxcodebuild -project "Inventory Taker.xcodeproj" -scheme "Inventory Taker" -destination "platform=iOS Simulator,name=iPad Air 13-inch (M3)" "-only-testing:Inventory TakerTests" testContentView.swift: capture, viewer, settings, and export UIInventoryStore.swift: session state, persistence, duplicate handling, CSV generationCaptureServices.swift: barcode lookup and OpenAI inferenceScannerAndImagePickers.swift: UIKit bridges for camera and photo pickingSecretStore.swift: Keychain-backed secret persistence
This project is released under the MIT License. See LICENSE.
See CONTRIBUTING.md for development workflow and pull request expectations.
If you find a security issue, see SECURITY.md.