Plugin-based architecture supporting multiple manga sources with a gorgeous Rich-based interface
Inspired by mangal but built in Python with modern architecture
| π¨ Beautiful CLI | π Plugin System | β‘ High Performance | π¦ Multiple Formats |
|---|---|---|---|
| Rich-based interface | Auto-discover providers | Parallel downloads | CBZ, PDF, Images |
| Interactive menus | Drop-in architecture | Concurrent processing | Live progress bars |
| Paginated tables | No core modifications | Smart rate limiting | Beautiful output |
| Provider | Status | Description |
|---|---|---|
| Bato οΏ½ | β Site Taken Down | Site has been permanently shut down |
| WeebCentral π’ | β Fully Working | High-quality manga scans |
| MangaPark οΏ½ | β Site Taken Down | Site has been permanently shut down |
| MangaBuddy π’ | β Fully Working | Fast and reliable source |
| AsuraComic π’ | β Fully Working | Premium manga hosting |
| WebToons π’ | β Fully Working | Premium webtoon hosting |
| MangaKakalot π’ | β Fully Working | Large manga library |
| VyManga π’ | β Fully Working | Premium manga and webtoon hosting |
| Toonily π’ | β Fully Working | SFW/NSFW webtoon and Manhwa hosting |
| KaliScan π’ | β Fully Working | High-quality manga hosting with modern interface |
| ManhuaScan π’ | β Fully Working | Rich manhua Library hosting |
| Comix π’ | β Fully Working | API-based manga reader with scanlator groups |
| MangaBall π’ | β Fully Working | Multi-language manga hosting |
| WeebDex π’ | β Fully Working | API-based manga reader with high-quality images |
| MangaPill π’ | β Fully Working | Large manga library with clean static HTML |
| KunManga π’ | β Fully Working | Manhwa & manga hosting (requires FlareSolverr) |
| HarmonyScan π’ | β Fully Working | French scanlation site (WordPress Madara) |
| MangaCloud π’ | β Fully Working | High-performance manga aggregator |
| MangaFire π’ | β Fully Working | Large library with high quality chapters |
| MangaKatana π’ | β Fully Working | Fast chapter fetching library |
| MangaTaro π’ | β Fully Working | Clean manga reading source |
| Atsu π’ | β Fully Working | Multi-scanlator aggregation API |
π’ Fully Tested | π‘ Basic Testing | βͺ In Development
More providers coming soon!
git clone https://github.com/Yui007/MangaForge.git
cd MangaForge
# Create virtual environment (recommended)
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtpython main.py- Search: Choose "[1] π Search Manga by Title"
- Select Provider: Pick from 20 available sources
- Browse Results: Navigate paginated results
- Download: Select chapters and format (CBZ/PDF/Images)
# Launch CLI
python main.py
# Select: [1] Search Manga by Title
# Choose provider: WeebCentral, MangaBall, etc.
# Enter: "attack on titan"
# Browse results and select manga# Select: [2] Get Manga by URL
# Enter manga URL from any supported provider
# Auto-detect provider and fetch chapters# Select: [3] Settings
# Configure:
# - Download directory
# - Parallel workers
# - Output format (CBZ/PDF/Images)
# - Preferred language & scanlator
# - Network timeoutMangaForge/
βββ π§ core/ # Core system (locked)
β βββ base_provider.py # Provider interface
β βββ downloader.py # Parallel downloads
β βββ converter.py # Format conversion
β βββ config.py # Settings management
βββ π models/ # Data structures
βββ π providers/ # Plugin providers
β βββ bato.py # Bato provider β (site taken down)
β βββ weebcentral.py # WeebCentral β
β βββ mangapark.py # MangaPark β (site taken down)
β βββ mangabuddy.py # MangaBuddy β
β βββ asuracomic.py # AsuraComic β
β βββ webtoons.py # Webtoons β
β βββ mangakakalot.py # MangaKakalot β
β βββ vymanga.py # VyManga β
β βββ toonily.py # Toonily β
β βββ kaliscan.py # KaliScan β
β βββ manhuascan.py # ManhuaScan β
β βββ comix.py # Comix β
β βββ mangaball.py # MangaBall β
β βββ weebdex.py # WeebDex β
β βββ mangacloud.py # MangaCloud β
β βββ mangafire.py # MangaFire β
β βββ mangakatana.py # MangaKatana β
β βββ mangataro.py # MangaTaro β
β βββ atsu.py # Atsu β
βββ π¨ cli/ # Beautiful interface
βββ βοΈ config/ # Settings
βββ π₯ downloads/ # Downloaded manga
- π Plugin Architecture: Add providers without touching core code
- π Auto-Discovery: Drop
.pyfiles inproviders/folder - π‘οΈ Error Handling: Robust failure recovery
- β‘ Performance: Optimized scraping and parsing
- π Parallel Processing: Configurable workers for chapters
- π Live Progress: Real-time progress bars
- π Resume Support: Continue interrupted downloads
- π Smart Queuing: Efficient resource utilization
- π CBZ: Comic book archive (ZIP format)
- π PDF: Portable document format
- πΌοΈ Images: Individual image files
- π― Quality Control: Configurable image processing
Some providers (MangaBall, WeebDex, Comix) host chapters in multiple languages or from different scanlation groups. You can set your preferences in config/settings.yaml:
providers:
preferred_language: en # ISO language code (en, es, fr, pt-br, id, ko, ja, zh, etc.)
preferred_scanlator: '' # Scanlation group name (empty = accept any)preferred_language: Filters chapters by language. Set toenfor English (default). Leave empty to show all languages.preferred_scanlator: When multiple groups translate the same chapter, picks the one matching this name. Leave empty to accept any group.
You can also change these at runtime via Settings β [7] Change Preferred Language or [8] Change Preferred Scanlator in the CLI.
The MangaKakalot provider uses FlareSolverr to bypass Cloudflare protection. You must have it running before using these providers.
Setup:
-
Download the latest release for your platform from:
π FlareSolverr Releases -
Run it:
# Windows: extract and run the .exe ./FlareSolverr.exe # Linux: extract and run the binary chmod +x ./FlareSolverr ./FlareSolverr # Docker (alternative) docker run -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest
-
FlareSolverr defaults to
http://localhost:8191β MangaForge will connect to it automatically.
β οΈ Without FlareSolverr running, MangaKakalot will fail with connection errors.
Create a new file in providers/:
from core.base_provider import BaseProvider
from models import MangaSearchResult, MangaInfo, Chapter
class NewProvider(BaseProvider):
provider_id = "newprovider"
provider_name = "New Provider"
base_url = "https://newprovider.com"
def search(self, query: str, page: int = 1):
# Implement search logic
pass
def get_manga_info(self, manga_id: str = None, url: str = None):
# Implement manga info extraction
pass
def get_chapters(self, manga_id: str):
# Implement chapter listing
pass
def get_chapter_images(self, chapter_id: str):
# Implement image extraction
pass⨠Auto-discovered! No core modifications needed.
# Core system tests
python test_core_system.py
# CLI system tests
python test_cli_system.py
# All tests
python test.py- Python: 3.10 or higher
- Dependencies: See
requirements.txt - FlareSolverr: Required for MangaKakalot (see setup above)
# Create virtual environment
python -m venv venv
# Activate (Windows)
venv\Scripts\activate
# Activate (macOS/Linux)
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Deactivate when done
deactivate| Feature | MangaForge | mangal |
|---|---|---|
| Language | Python π | Go π |
| Interface | Rich CLI π¨ | TUI |
| Providers | 20 active (growing) π | 10+ |
| Architecture | Plugin-based π | Built-in |
| Customization | YAML config βοΈ | CLI flags |
| Output Formats | CBZ, PDF, Images π¦ | CBZ only |
MangaForge brings the mangal experience to Python with:
- π¨ Beautiful Rich-based CLI
- π True plugin architecture
- βοΈ Flexible configuration
- π¦ Multiple output formats
Contributions are welcome! Here's how to help:
# Fork and clone
git clone https://github.com/YOUR_USERNAME/MangaForge.git
cd MangaForge
# Setup development environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
# Run tests
python test.py
# Launch CLI
python main.py- Create provider file in
providers/ - Implement 4 methods:
search(),get_manga_info(),get_chapters(),get_chapter_images() - Test thoroughly with real data
- Submit PR with provider name and description
- π Bugs: Use GitHub Issues with detailed error logs
- π‘ Features: Create feature requests with use cases
- π Docs: Help improve documentation
MIT License - See LICENSE file for details.