https://github.com/RLAlpha49/KenmeiToAnilist
Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app.
https://github.com/RLAlpha49/KenmeiToAnilist
anilist anilist-api anilist-python anilistapi electron gui kenmei manga react sync synchronization typescript
Last synced: 5 months ago
JSON representation
Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app.
- Host: GitHub
- URL: https://github.com/RLAlpha49/KenmeiToAnilist
- Owner: RLAlpha49
- License: mit
- Created: 2023-11-08T19:32:16.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-05-06T02:24:03.000Z (5 months ago)
- Last Synced: 2025-05-06T02:24:48.399Z (5 months ago)
- Topics: anilist, anilist-api, anilist-python, anilistapi, electron, gui, kenmei, manga, react, sync, synchronization, typescript
- Language: TypeScript
- Homepage: https://rlalpha49.github.io/KenmeiToAnilist/
- Size: 7.36 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
# Kenmei to Anilist
> Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app. ๐
---
## ๐ธ Screenshots
- **Home Page**

- **Import Kenmei CSV**

- **Smart Matching**

- **Sync to AniList**

- **Settings**
---
## โจ Features
- **Import from Kenmei**: Easily import your entire manga collection from a Kenmei CSV export.
- **Smart Matching**: An algorithm matches your manga to AniList entries.
- **One-Click Sync**: Synchronize your collection to AniList with a single click after reviewing matches.
- **Auto-Pause Manga**: Automatically pause manga that haven't been updated within a customizable time period.
- **Flexible Configuration**: Customize how synchronization works with priority settings for status, progress, and scores.
- **Modern UI/UX**: Built with React, TailwindCSS, and Radix UI for a beautiful, accessible experience.---
## ๐ ๏ธ How It Works
1. **Import**: Export your manga library from Kenmei as a CSV and import it into the app.
2. **Match**: The app automatically matches your manga to AniList entries. Review and adjust matches as needed.
3. **Review**: See a summary of your collection and any issues before syncing.
4. **Sync**: With one click, sync your collection to AniList, including status, progress, and privacy settings.---
## ๐ Getting Started
### Prerequisites
- [Node.js](https://nodejs.org/) (v18+ recommended)
- [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)### Installation
```bash
# Clone the repository
git clone https://github.com/RLAlpha49/KenmeiToAnilist.git
cd KenmeiToAnilist# Install dependencies
npm install --force
# or
yarn install
```### Running the App (Development)
```bash
npm start
# or
yarn start
```### Building for Production
```bash
npm run make
# or
yarn make
```### Environment Variables
Create a `.env` file in the root if you want to override AniList credentials:
```env
VITE_ANILIST_CLIENT_ID=your-client-id
VITE_ANILIST_CLIENT_SECRET=your-client-secret
```> Default values are set in `src/config/anilist.ts`. You can also configure credentials in the app's Settings page.
---
## ๐ฆ Usage
1. **Export from Kenmei**: In Kenmei, export your manga library as a CSV file.
2. **Import in App**: Drag and drop or select your CSV file in the Import page.
3. **Review & Match**: The app will auto-match your manga. Review and adjust any mismatches.
4. **Sync to AniList**: Click sync to update your AniList library.
5. **Configure Settings**: Adjust sync options, privacy, and credentials in the Settings page.---
## ๐๏ธ Tech Stack
- **Electron** โ Desktop app framework
- **React** โ UI library
- **TypeScript** โ Type safety
- **TailwindCSS** โ Utility-first CSS
- **Radix UI** โ Accessible UI primitives
- **Vite** โ Fast build tool
- **Vitest** โ Unit testing
- **Playwright** โ End-to-end testing---
## ๐งช Testing
- **Unit Tests**: `npm run test:unit` or `yarn test:unit`
- **E2E Tests**: `npm run test:e2e` or `yarn test:e2e`
- **All Tests**: `npm run test:all` or `yarn test:all`
- **Coverage**: `npm run test:coverage`---
## ๐ค Contributing
Contributions are welcome! Please:
- Fork the repo and create your branch
- Follow the code style
- Open a pull request with a clear description
- For major changes, open an issue first to discuss---
## ๐ License
This project is licensed under the MIT License. See [LICENSE](./LICENSE) for details.