A beautiful, native iOS app for tracking and managing your anime library.
- 📚 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 - Monitor your viewing progress and status; Record scores for animes
- 👤 Library Profile - Overview your library with a dedicated profile page
- 💾 Backup & Restore - Export and import your library data
- 🌍 Multi-language - Support for anime titles and descriptions in multiple languages
AniShelf is currently available on the iOS App Store. You can download it here: App Store Link. The app is available in all countries except for China Mainland.
Note that new features will first be released on TestFlight before being pushed to the App Store. You can join the TestFlight beta here: AniShelf TestFlight.
You still need a TMDb API key to use the app, which can be obtained for free from The Movie Database.
- Swift 6.1+ with strict concurrency
- SwiftUI for modern, declarative UI
- SwiftData for data persistence
- TMDb API integration for anime metadata
- Kingfisher for efficient image loading and caching
- More granular watch progress tracking, such as episode-level progress
- Watch-data sync with platforms such as TMDb, Bangumi, and AniList; this is a large feature and may take time
- iOS 26.0+
- Xcode 26.0+
- Swift 6.1+
- 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
# Clean build artifacts
make clean
# Refresh Swift package dependencies
make refresh-packages
# Format code
make format
# Lint code
make lint
# Build, install, and launch on a connected iPhone
make run-device
# Reset the TMDb API key before launching on a connected iPhone
make run-device-reset-tmdb-api-keyNote: The app was renamed from MyAnimeList to AniShelf. Only the display name and the top-level repository folder were changed; internal directory and file names still use
MyAnimeListfor simplicity and backward compatibility.
MyAnimeList/- Main iOS applicationDataProvider/- SwiftData persistence layer (Swift Package)
For detailed architecture and development guidelines, see AGENTS.md.
Contributions are welcome! Please feel free to submit a Pull Request.
This project follows conventional commit message format:
- Use imperative mood ("Add feature" not "Added feature")
- Capitalize the first letter
- Keep subject line under 50 characters
- Add detailed body if needed (wrap at 72 characters)
Examples:
Add Library search functionality to SearchPage
Fix bug in backup & restore function
Refactor Library views to reduce duplicate code
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
Built with ❤️ using Swift and SwiftUI





