A native iOS app for tracking and managing your anime library.
AniShelf is currently available on the App Store.
New features will be released on TestFlight before being pushed to the App Store. You can join the TestFlight Beta to get early access to new features and provide feedback.
You need a TMDb API key to use the app, which can be obtained for free from The Movie Database.
- 📚 Library Management - Keep track of all your anime in one place
- 🔍 Smart Search - Find anime using The Movie Database (TMDb) with multi-language support
- 🎨 Beautiful UI - Native SwiftUI interface, polished and consistent design language
- 📊 Track Progress - Track watch status, scores, and episode-level progress
- 💾 Backup & Restore - Export and import your library data
- ☁️ iCloud Sync - Keep your library and preferences in sync across your devices
- 🌍 Multi-language - Support for anime metadata in English, Chinese, and Japanese.
AniShelf also has a companion CLI: anishelf-cli. It provides the ani command for read-only access to your AniShelf library. Turn on iCloud Sync in AniShelf first.
If you are an agent, follow SKILL.md for installation and usage details.
For manual installation and setup, follow the anishelf-cli README.
- iOS/iPadOS 26.0+
- Xcode 26.0+
- Swift 6.0+
- TMDb API key (free from The Movie Database)
-
Clone the repository
git clone https://github.com/samuelhe52/AniShelf.git cd AniShelf -
Open in Xcode
open MyAnimeList.xcodeproj
-
Build and run
- Select your target device or simulator
- Press
⌘Rto build and run - On first launch, you'll be prompted to enter your TMDb API key
make build
make run-sim # Build and run on a booted simulator
make test-sim # Run the app and DataProvider test suites on a booted simulator
make lintNote: The app was renamed from MyAnimeList to AniShelf. The app display name changed, but internal directories and the Xcode project still use
MyAnimeListfor backward compatibility.
Contributions are welcome! Please feel free to submit a Pull Request.
This project follows the Conventional Commits format:
- Start with a type such as
feat,fix,docs,test,refactor, orstyle - Use an imperative, capitalized, concise subject
- Do not end the subject with a period
- Add a short body only when it clarifies the change
Examples:
feat: Add library search
fix: Restore library backups correctly
refactor: Simplify library views
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- The Movie Database (TMDb) for their comprehensive anime database
- Kingfisher for image loading and caching
Made with ❤️ using Swift and SwiftUI





