Glossarion is a comprehensive AI-powered translation suite for light novels, web novels, manga, subtitles, synchronized lyrics, and documents in virtually any language, with preconfigured profiles for Korean, Japanese, and Chinese via its profile system. Built to transform EPUB, TXT, PDF, SRT, ASS, and LRC files into high-quality, context-aware translations, it also includes a dedicated manga translator panel that combines multiple AI models to translate .cbz archives and direct image files, plus a translation-editing tool for .sdlxliff files. It works with 40+ AI providers — including OpenAI, Google Gemini, Anthropic Claude, DeepSeek, xAI Grok, Mistral, and local LLMs via Ollama — and, beyond those, any OpenAI-compatible model or endpoint, all through a modern PySide6 GUI that gives you total control over every step of the translation process.
📖 Read the Complete User Guide →
Every button and setting explained in plain language — including how to translate for free.
cryptography libraryauthgrok0/ for automatic rotationocagy0/ for the plugin-managed account pool or numbered OcAgy routes for deterministic batch-account selection, including Gemini 3.1 Pro High| Provider | Model Prefix | Example Models (2026) |
|---|---|---|
| OpenAI | gpt-*, o3-* | gpt-5.4, gpt-5.4-pro, gpt-5.3-codex, gpt-5.2, gpt-5, gpt-5-mini, gpt-5-nano, o3 |
| Google Gemini | gemini-* | gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-flash, gemini-2.5-pro |
| Anthropic Claude | claude-* | claude-opus-4-6, claude-sonnet-4-6, claude-sonnet-4-5, claude-haiku-4-5 |
| xAI Grok | grok-*, xai/* | grok-4.20-beta, grok-4-fast, grok-4-0709, grok-3, grok-3-mini |
| DeepSeek | deepseek-* | deepseek-chat, deepseek-reasoner, deepseek-coder |
| Mistral | mistral-*, mixtral-*, codestral-* | mistral-large, mixtral-8x22b, codestral-latest |
| Cohere | command-* | command-r, command-r-plus |
| ElectronHub | eh/* | eh/gpt-5-chat-latest, eh/claude-sonnet-4-6, eh/gemini-3.1-pro-preview, eh/grok-4-fast |
| OpenRouter | or/* | or/openai/gpt-5.4, or/google/gemini-3.1-pro-preview, or/deepseek/deepseek-v3.2 |
| LiteRouter | lr/* | lr/deepseek-v3.2:free, lr/gpt-oss-120b:free, lr/openrouter:free:full-context |
| OpenCode Go | oc/* | oc/kimi-k2.6, oc/glm-5.1, oc/deepseek-v4-pro, oc/mimo-v2.5-pro |
| Poe | poe/* | poe/gpt-4.5, poe/claude-4-opus, poe/gemini-2.5-pro |
| VertexAI | vertex/* | vertex/gemini-3.1-pro-preview, vertex/claude-4-opus |
| Groq | groq/* | groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b |
| AuthGPT | authgpt/* | authgpt/gpt-5.4, authgpt/gpt-5.3-codex, authgpt/gpt-5.2 |
| AuthGrok | authgrok0/*, authgrok/*, authgrokN/* | authgrok0/grok-4.5, authgrok/grok-4.5, authgrok1/grok-build |
| AuthCD | authcd/* | authcd/claude-sonnet-4-6, authcd/claude-haiku-4-5-20251001 |
| AuthGem | authgem/*, authgem-vertex/* | authgem/gemini-3.1-pro-preview, authgem-vertex/gemini-3.1-pro-preview |
| Antigravity | antigravity/* | antigravity/claude-opus-4-6-thinking-high, antigravity/gemini-3.1-pro-low |
| OcAgy (OpenCode Antigravity) | ocagy0/*, ocagy/*, ocagy1/*, ... | ocagy0/gemini-3.1-pro-high, ocagy/gemini-3.1-pro-high, ocagy1/gemini-3.1-pro-high |
| AuthND | authnd/* | authnd/z-ai/glm-5.1 |
| NVIDIA | nd/* | nd/deepseek-ai/deepseek-v3.2, nd/moonshotai/kimi-k2-thinking |
| Chutes | chutes/* | chutes/deepseek-ai/DeepSeek-V3.2, chutes/openai/gpt-oss-120b |
| Zhipu Intl. | za/* | za/glm-4.6, za/glm-4-plus |
| NanoGPT | nan/* | nan/gpt-image-2, nan/deepseek/deepseek-v4-flash, nan/openai/gpt-latest |
| SambaNova | sam/* | sam/DeepSeek-V3.2, sam/Meta-Llama-3.3-70B-Instruct, sam/gpt-oss-120b |
| Fireworks | fireworks/* | fireworks/llama-v3-70b |
| Together AI | together/* | together/llama-3-70b |
| Perplexity | perplexity/*, pplx-* | perplexity-70b-online, pplx-70b-online |
| AI21 | j2-*, jamba-* | j2-ultra, jamba-instruct |
| Qwen | qwen-* | qwen-72b-chat, qwen-plus, qwen-turbo |
| Yi | yi-* | yi-34b-chat-200k |
| DeepL | deepl | deepl (traditional translation API) |
| Google Translate | google-translate* | google-translate, google-translate-free |
| Custom Prefix Routes | user-defined prefix/* | Route custom prefixes to OpenAI-compatible endpoints in Model Manager |
AuthGrok browser login and account pool:
authgrok/pins the default saved account, whileauthgrok1/,authgrok2/, and later numbered routes pin their matching account slots. Whenauthgrok0/is selected in the main model field or used in the Multi API Key Manager, the Grok account-slot dropdown appears beside Grok Login. Choose + N there to allocate the next free numbered slot and open a fresh xAI sign-in for another email—there is no need to type numbered prefixes manually. Numbered logins use xAI's device-authorization flow in the regular default browser. Glossarion first signs out the previous xAI website session (without signing out Google or deleting the already-saved OAuth token), then polls xAI and saves the new account's tokens automatically after approval; a Grok Build code never needs to be copied back from the browser. Glossarion also rejects saving the same known email into two numbered slots. After saving the accounts,authgrok0/rotates distinct accounts round-robin and advances to another account on authentication, quota, or request failure.
OcAgy login and account slots: OcAgy is separate from the local
antigravity/proxy. Click OCAGY Login; Glossarion installs OpenCode andopencode-antigravity-authautomatically when needed, then opens the login so you can choose Google → OAuth with Google (Antigravity). No API key is required.ocagy0/...preserves the plugin-managed shared pool/current behavior;ocagy/...pins saved account #1,ocagy1/...pins account #2,ocagy2/...pins account #3, and so on. A pinned route fails clearly if that slot is missing, disabled, or out of quota instead of silently switching accounts.
Custom prefix routing is supported for user-defined OpenAI-compatible endpoints; add the prefix route in Model Manager, then use prefix/model-name in the model field.
Note: Many more providers are supported — including Baichuan, Zhipu AI (GLM), Moonshot/Kimi, Baidu ERNIE, Tencent Hunyuan, ByteDance Doubao, MiniMax, Meta Llama, Microsoft Phi, Falcon, and others. See
model_options.pyandunified_api_client.pyfor the full catalog.
Custom endpoints can use either a base URL or a user-defined prefix route for self-hosted and alternative OpenAI-compatible endpoints.
authgrok/grok-4.5, click Grok Login, and sign in to xAI (Google sign-in is available on xAI's page)ocagy0/gemini-3.1-pro-high for automatic plugin account rotation or a numbered account route for batch translation, then use OCAGY Login; Glossarion installs the required OpenCode runtime and auth plugin when needed (no API key required)localhost:3000 via Shirochi-stack/antigravity-proxy (no API key needed)| Workflow | Extensions | Notes |
|---|---|---|
| Books and documents | .epub, .txt, .pdf, .md, .json, .csv | Supported by the main translation and batch workflows. |
| Translation editing | .sdlxliff | Extract, translate, review, and rebuild SDLXLIFF translation units. |
| Subtitles and synchronized lyrics | .srt, .ass, .lrc | Preserves subtitle timing and structure. Files can be selected directly or stored inside a ZIP, including within nested subfolders. |
| Archives and comics | .zip, .cbz | ZIP handling depends on its contents; subtitle ZIPs are processed as one bundle, while CBZ archives are handled by the manga workflow. |
| Images | .png, .jpg, .jpeg, .gif, .bmp, .webp | Supported by the image and manga translation workflows. |
| Video and game integration | .mp4, .exe | MP4 video input and RPG Maker game translation through the GTool integration. |
| Additional Direct Text attachments | .markdown, .html, .htm, .xhtml, .xml, .tsv, .vtt, .log, .tif, .tiff, .svg, .ico, .heic, .heif, .avif, .jxl | Available when attaching a file in Direct Text. |
Extension matching is case-insensitive. Output formats depend on the selected workflow and its output settings.
Clone the repository:
git clone https://github.com/Shirochi-stack/Glossarion.git
cd Glossarion
Install dependencies:
# Windows
pip install -r requirements.txt
# macOS
pip install -r requirements-macos.txt
Launch the GUI:
cd src
python translator_gui.py
pip install pyinstaller
# Standard build
pyinstaller src/translator.spec
# Lite build
pyinstaller src/translator_lite.spec
# macOS
pyinstaller src/translator_lite_mac.spec
# GUI Framework
PySide6==6.9.3
# AI/API Clients
openai, anthropic, mistralai, cohere, tiktoken
google-genai, google-cloud-aiplatform, vertexai
poe-api-wrapper, deepl, httpx, aiohttp
# File Processing
ebooklib, beautifulsoup4, lxml, html5lib, html2text
pymupdf, weasyprint, xhtml2pdf
# Image Processing & OCR
Pillow, opencv-python-headless, numpy, scipy
google-cloud-vision, azure-ai-vision-imageanalysis
azure-ai-documentintelligence
# Manga / Bubble Detection
onnxruntime, ultralytics (YOLO)
torch, torchvision, transformers
# Text Analysis
langdetect, chardet, datasketch, rapidfuzz, jellyfish, regex
# Security
cryptography
📖 For a full walkthrough of every feature and setting, see the Complete User Guide. The quick steps below get you started.
translator_gui.pyGlossarion/
├── src/
│ ├── translator_gui.py # Main GUI entry point (PySide6)
│ ├── TransateKRtoEN.py # Core translation engine
│ ├── unified_api_client.py # Multi-provider AI client (40+ providers)
│ ├── async_api_processor.py # Async concurrent chapter processing
│ ├── model_options.py # Centralized model catalog
│ ├── multi_api_key_manager.py # API key pool & rotation
│ ├── manga_translator.py # Manga OCR and translation
│ ├── manga_integration.py # Manga GUI interface
│ ├── bubble_detector.py # YOLO-based speech bubble detection
│ ├── local_inpainter.py # ONNX local inpainting engine
│ ├── ocr_manager.py # OCR provider manager
│ ├── ai_hunter_enhanced.py # ML-based duplicate detection
│ ├── epub_converter.py # EPUB processing & conversion
│ ├── pdf_extractor.py # PDF text extraction (PyMuPDF)
│ ├── scan_html_folder.py # QA scanner
│ ├── GlossaryManager.py # Glossary management engine
│ ├── extract_glossary_from_epub.py # EPUB glossary extractor
│ ├── review_dialog.py # Translation review UI
│ ├── other_settings.py # Advanced settings dialogs
│ ├── authgpt_auth.py # ChatGPT OAuth integration
│ ├── authgrok_auth.py # xAI/Grok OAuth integration
│ ├── api_key_encryption.py # API key encryption at rest
│ ├── config_backup.py # Config backup management
│ ├── dpi_setup.py # DPI awareness configuration
│ ├── splash_utils.py # Animated splash screen
│ ├── update_manager.py # Auto-update system
│ └── ...
├── assets/ # App icons and images
├── docs/ # User guides and documentation
├── .github/workflows/ # CI/CD (Windows, macOS)
├── requirements.txt # Windows dependencies
├── requirements-macos.txt # macOS dependencies
├── translator.spec # PyInstaller build config
└── LICENSE # GNU AGPL v3.0
translation_progress.jsonBuilt using:
ocagy/ prefix routing implementationCopyright (C) 2025 Shirochi-stack.
This project is licensed under the GNU Affero General Public License v3.0 only
(AGPL-3.0-only) — see the LICENSE file for details. Third-party
components remain subject to their respective licenses.
Made with 🌸 for the translation community
8,729 commits
Python
99.2%
Glossarion is a comprehensive AI-powered translation suite for light novels, web novels, manga, subtitles, synchronized lyrics, and documents in virtually any language, with preconfigured profiles for Korean, Japanese, and Chinese via its profile system. Built to transform EPUB, TXT, PDF, SRT, ASS, and LRC files into high-quality, context-aware translations, it also includes a dedicated manga translator panel that combines multiple AI models to translate .cbz archives and direct image files, plus a translation-editing tool for .sdlxliff files. It works with 40+ AI providers — including OpenAI, Google Gemini, Anthropic Claude, DeepSeek, xAI Grok, Mistral, and local LLMs via Ollama — and, beyond those, any OpenAI-compatible model or endpoint, all through a modern PySide6 GUI that gives you total control over every step of the translation process.
📖 Read the Complete User Guide →
Every button and setting explained in plain language — including how to translate for free.
cryptography libraryauthgrok0/ for automatic rotationocagy0/ for the plugin-managed account pool or numbered OcAgy routes for deterministic batch-account selection, including Gemini 3.1 Pro High| Provider | Model Prefix | Example Models (2026) |
|---|---|---|
| OpenAI | gpt-*, o3-* | gpt-5.4, gpt-5.4-pro, gpt-5.3-codex, gpt-5.2, gpt-5, gpt-5-mini, gpt-5-nano, o3 |
| Google Gemini | gemini-* | gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-flash, gemini-2.5-pro |
| Anthropic Claude | claude-* | claude-opus-4-6, claude-sonnet-4-6, claude-sonnet-4-5, claude-haiku-4-5 |
| xAI Grok | grok-*, xai/* | grok-4.20-beta, grok-4-fast, grok-4-0709, grok-3, grok-3-mini |
| DeepSeek | deepseek-* | deepseek-chat, deepseek-reasoner, deepseek-coder |
| Mistral | mistral-*, mixtral-*, codestral-* | mistral-large, mixtral-8x22b, codestral-latest |
| Cohere | command-* | command-r, command-r-plus |
| ElectronHub | eh/* | eh/gpt-5-chat-latest, eh/claude-sonnet-4-6, eh/gemini-3.1-pro-preview, eh/grok-4-fast |
| OpenRouter | or/* | or/openai/gpt-5.4, or/google/gemini-3.1-pro-preview, or/deepseek/deepseek-v3.2 |
| LiteRouter | lr/* | lr/deepseek-v3.2:free, lr/gpt-oss-120b:free, lr/openrouter:free:full-context |
| OpenCode Go | oc/* | oc/kimi-k2.6, oc/glm-5.1, oc/deepseek-v4-pro, oc/mimo-v2.5-pro |
| Poe | poe/* | poe/gpt-4.5, poe/claude-4-opus, poe/gemini-2.5-pro |
| VertexAI | vertex/* | vertex/gemini-3.1-pro-preview, vertex/claude-4-opus |
| Groq | groq/* | groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b |
| AuthGPT | authgpt/* | authgpt/gpt-5.4, authgpt/gpt-5.3-codex, authgpt/gpt-5.2 |
| AuthGrok | authgrok0/*, authgrok/*, authgrokN/* | authgrok0/grok-4.5, authgrok/grok-4.5, authgrok1/grok-build |
| AuthCD | authcd/* | authcd/claude-sonnet-4-6, authcd/claude-haiku-4-5-20251001 |
| AuthGem | authgem/*, authgem-vertex/* | authgem/gemini-3.1-pro-preview, authgem-vertex/gemini-3.1-pro-preview |
| Antigravity | antigravity/* | antigravity/claude-opus-4-6-thinking-high, antigravity/gemini-3.1-pro-low |
| OcAgy (OpenCode Antigravity) | ocagy0/*, ocagy/*, ocagy1/*, ... | ocagy0/gemini-3.1-pro-high, ocagy/gemini-3.1-pro-high, ocagy1/gemini-3.1-pro-high |
| AuthND | authnd/* | authnd/z-ai/glm-5.1 |
| NVIDIA | nd/* | nd/deepseek-ai/deepseek-v3.2, nd/moonshotai/kimi-k2-thinking |
| Chutes | chutes/* | chutes/deepseek-ai/DeepSeek-V3.2, chutes/openai/gpt-oss-120b |
| Zhipu Intl. | za/* | za/glm-4.6, za/glm-4-plus |
| NanoGPT | nan/* | nan/gpt-image-2, nan/deepseek/deepseek-v4-flash, nan/openai/gpt-latest |
| SambaNova | sam/* | sam/DeepSeek-V3.2, sam/Meta-Llama-3.3-70B-Instruct, sam/gpt-oss-120b |
| Fireworks | fireworks/* | fireworks/llama-v3-70b |
| Together AI | together/* | together/llama-3-70b |
| Perplexity | perplexity/*, pplx-* | perplexity-70b-online, pplx-70b-online |
| AI21 | j2-*, jamba-* | j2-ultra, jamba-instruct |
| Qwen | qwen-* | qwen-72b-chat, qwen-plus, qwen-turbo |
| Yi | yi-* | yi-34b-chat-200k |
| DeepL | deepl | deepl (traditional translation API) |
| Google Translate | google-translate* | google-translate, google-translate-free |
| Custom Prefix Routes | user-defined prefix/* | Route custom prefixes to OpenAI-compatible endpoints in Model Manager |
AuthGrok browser login and account pool:
authgrok/pins the default saved account, whileauthgrok1/,authgrok2/, and later numbered routes pin their matching account slots. Whenauthgrok0/is selected in the main model field or used in the Multi API Key Manager, the Grok account-slot dropdown appears beside Grok Login. Choose + N there to allocate the next free numbered slot and open a fresh xAI sign-in for another email—there is no need to type numbered prefixes manually. Numbered logins use xAI's device-authorization flow in the regular default browser. Glossarion first signs out the previous xAI website session (without signing out Google or deleting the already-saved OAuth token), then polls xAI and saves the new account's tokens automatically after approval; a Grok Build code never needs to be copied back from the browser. Glossarion also rejects saving the same known email into two numbered slots. After saving the accounts,authgrok0/rotates distinct accounts round-robin and advances to another account on authentication, quota, or request failure.
OcAgy login and account slots: OcAgy is separate from the local
antigravity/proxy. Click OCAGY Login; Glossarion installs OpenCode andopencode-antigravity-authautomatically when needed, then opens the login so you can choose Google → OAuth with Google (Antigravity). No API key is required.ocagy0/...preserves the plugin-managed shared pool/current behavior;ocagy/...pins saved account #1,ocagy1/...pins account #2,ocagy2/...pins account #3, and so on. A pinned route fails clearly if that slot is missing, disabled, or out of quota instead of silently switching accounts.
Custom prefix routing is supported for user-defined OpenAI-compatible endpoints; add the prefix route in Model Manager, then use prefix/model-name in the model field.
Note: Many more providers are supported — including Baichuan, Zhipu AI (GLM), Moonshot/Kimi, Baidu ERNIE, Tencent Hunyuan, ByteDance Doubao, MiniMax, Meta Llama, Microsoft Phi, Falcon, and others. See
model_options.pyandunified_api_client.pyfor the full catalog.
Custom endpoints can use either a base URL or a user-defined prefix route for self-hosted and alternative OpenAI-compatible endpoints.
authgrok/grok-4.5, click Grok Login, and sign in to xAI (Google sign-in is available on xAI's page)ocagy0/gemini-3.1-pro-high for automatic plugin account rotation or a numbered account route for batch translation, then use OCAGY Login; Glossarion installs the required OpenCode runtime and auth plugin when needed (no API key required)localhost:3000 via Shirochi-stack/antigravity-proxy (no API key needed)| Workflow | Extensions | Notes |
|---|---|---|
| Books and documents | .epub, .txt, .pdf, .md, .json, .csv | Supported by the main translation and batch workflows. |
| Translation editing | .sdlxliff | Extract, translate, review, and rebuild SDLXLIFF translation units. |
| Subtitles and synchronized lyrics | .srt, .ass, .lrc | Preserves subtitle timing and structure. Files can be selected directly or stored inside a ZIP, including within nested subfolders. |
| Archives and comics | .zip, .cbz | ZIP handling depends on its contents; subtitle ZIPs are processed as one bundle, while CBZ archives are handled by the manga workflow. |
| Images | .png, .jpg, .jpeg, .gif, .bmp, .webp | Supported by the image and manga translation workflows. |
| Video and game integration | .mp4, .exe | MP4 video input and RPG Maker game translation through the GTool integration. |
| Additional Direct Text attachments | .markdown, .html, .htm, .xhtml, .xml, .tsv, .vtt, .log, .tif, .tiff, .svg, .ico, .heic, .heif, .avif, .jxl | Available when attaching a file in Direct Text. |
Extension matching is case-insensitive. Output formats depend on the selected workflow and its output settings.
Clone the repository:
git clone https://github.com/Shirochi-stack/Glossarion.git
cd Glossarion
Install dependencies:
# Windows
pip install -r requirements.txt
# macOS
pip install -r requirements-macos.txt
Launch the GUI:
cd src
python translator_gui.py
pip install pyinstaller
# Standard build
pyinstaller src/translator.spec
# Lite build
pyinstaller src/translator_lite.spec
# macOS
pyinstaller src/translator_lite_mac.spec
# GUI Framework
PySide6==6.9.3
# AI/API Clients
openai, anthropic, mistralai, cohere, tiktoken
google-genai, google-cloud-aiplatform, vertexai
poe-api-wrapper, deepl, httpx, aiohttp
# File Processing
ebooklib, beautifulsoup4, lxml, html5lib, html2text
pymupdf, weasyprint, xhtml2pdf
# Image Processing & OCR
Pillow, opencv-python-headless, numpy, scipy
google-cloud-vision, azure-ai-vision-imageanalysis
azure-ai-documentintelligence
# Manga / Bubble Detection
onnxruntime, ultralytics (YOLO)
torch, torchvision, transformers
# Text Analysis
langdetect, chardet, datasketch, rapidfuzz, jellyfish, regex
# Security
cryptography
📖 For a full walkthrough of every feature and setting, see the Complete User Guide. The quick steps below get you started.
translator_gui.pyGlossarion/
├── src/
│ ├── translator_gui.py # Main GUI entry point (PySide6)
│ ├── TransateKRtoEN.py # Core translation engine
│ ├── unified_api_client.py # Multi-provider AI client (40+ providers)
│ ├── async_api_processor.py # Async concurrent chapter processing
│ ├── model_options.py # Centralized model catalog
│ ├── multi_api_key_manager.py # API key pool & rotation
│ ├── manga_translator.py # Manga OCR and translation
│ ├── manga_integration.py # Manga GUI interface
│ ├── bubble_detector.py # YOLO-based speech bubble detection
│ ├── local_inpainter.py # ONNX local inpainting engine
│ ├── ocr_manager.py # OCR provider manager
│ ├── ai_hunter_enhanced.py # ML-based duplicate detection
│ ├── epub_converter.py # EPUB processing & conversion
│ ├── pdf_extractor.py # PDF text extraction (PyMuPDF)
│ ├── scan_html_folder.py # QA scanner
│ ├── GlossaryManager.py # Glossary management engine
│ ├── extract_glossary_from_epub.py # EPUB glossary extractor
│ ├── review_dialog.py # Translation review UI
│ ├── other_settings.py # Advanced settings dialogs
│ ├── authgpt_auth.py # ChatGPT OAuth integration
│ ├── authgrok_auth.py # xAI/Grok OAuth integration
│ ├── api_key_encryption.py # API key encryption at rest
│ ├── config_backup.py # Config backup management
│ ├── dpi_setup.py # DPI awareness configuration
│ ├── splash_utils.py # Animated splash screen
│ ├── update_manager.py # Auto-update system
│ └── ...
├── assets/ # App icons and images
├── docs/ # User guides and documentation
├── .github/workflows/ # CI/CD (Windows, macOS)
├── requirements.txt # Windows dependencies
├── requirements-macos.txt # macOS dependencies
├── translator.spec # PyInstaller build config
└── LICENSE # GNU AGPL v3.0
translation_progress.jsonBuilt using:
ocagy/ prefix routing implementationCopyright (C) 2025 Shirochi-stack.
This project is licensed under the GNU Affero General Public License v3.0 only
(AGPL-3.0-only) — see the LICENSE file for details. Third-party
components remain subject to their respective licenses.
Made with 🌸 for the translation community
8,729 commits
Python
99.2%