"Welcome to the Literature Club! Write your way into her heart... directly inside your favorite terminal interface." ๐
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ DOKI DOKI CLI CLUB! ๐ โ
โ "Welcome to the Literature Club... in your shell." โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Doki Doki CLI Club! (DDCC) is an ultra-lightweight, high-performance command-line visual novel engine that cuts through GUI overhead and lets you hang out with the Literature Club in pure ASCII glory.
Whether you're in SSH sessions or just want a byte-sized poem reading experience, DDCC brings the full psychological horror and wholesome clubroom vibes directly to your shell.
| "I gently open the door." |
|---|
![]() |
| No more visual PTSD! |
![]() |
| Interactive Poem Session! |
![]() |
- โก Zero-GUI Overhead: Cut through bloated graphics! Play over SSH, headless servers, or inside your favorite terminal emulator.
- ๐ญ Full Act 1 - Act 4 Story Arc: Complete storyline progression from Act 1, Act 2 glitch horror, Act 3 Monika Space Room, into Act 4 and final credits!
- ๐ Live Reactive File System (
characters/): Real-time 50ms monitoring ofcharacters/monika.chr. Deletingmonika.chrdirectly in your file manager or terminal instantly triggers Monika's deletion reaction and transitions into Act 4! - ๐จ Character-Accurate Palette (Coloring outside the lines!):
- ๐ฉต Sayori: Sky Blue (
sky_blue1) โ Don't leave her hanging! - ๐ฉท Natsuki: Pastel Pink (
pink1) โ Freshly baked aesthetics, because Manga IS Literature! - ๐ Yuri: Deep Purple (
purple) โ A sharp, cutting-edge style that gets straight to the point. - ๐ Monika: Emerald Green (
green) โ Just Monika. Period.
- ๐ฉต Sayori: Sky Blue (
- ๐ Dedicated TUI Poem Reader: Read handwritten poems (
poem_s1,poem_y1,poem_n1,poem_m1) and special glitch poems rendered inside picture-perfect Rich paper panels. - ๐ In-Place Split TUI Poem Minigame: A side-by-side split TUI layout where Sayori bounces, Natsuki hops, and Yuri smiles in real-time as you pick words (including Act 3 glitched poem minigame!).
- ๐ Ren'Py Text Tag Markup: Automatically parses
{i}(italics),{b}(bold),{u}(underline),{s}(strikethrough), and{color=...}tags. Unclosed tags are automatically bound frame-by-frame during typewriter typing! - ๐ฎ Bottom Dialogue Quick-Menu:
[Space]: Advance to the next line of dialogue (or fast-forward the typewriter!).[A]: Toggle Auto-Play mode (look ma, no hands!).[S]: Toggle Skip Mode (fast-forward at neck-breaking speeds!).[G]: Save Game state to disk (savegame.json).[L]: Load Game state from disk (don't worry, Monika didn't delete it... yet).
- ๐พ Bulletproof JSON Save System: Trial-tested JSON serialization that deletes bad save bugs before Monika can delete your character files.
Download Doki Doki Literature Club! from official webpage
Ensure you have Python 3.7+ installed. Install the required dependencies:
pip install rich readchar rpycdecPlace the official PC game directory named DDLC-1.1.1-pc into the root of this repository. Your directory layout should look like this:
DDCC/
โโโ DDLC-1.1.1-pc/ # Place official DDLC game directory here
โโโ decompile_scripts.py
โโโ engine.py
โโโ parser.py
โโโ poem_game.py
โโโ renpy_mock.py
โโโ state.py
โโโ terminal.py
โโโ ui.py
โโโ screenshot/ # Memorable moments screenshots
โโโ README.md
Unpack .rpa archives and decompile .rpyc bytecode into readable .rpy scripts:
python decompile_scripts.pyThis unzips the secret recipe into game_scripts/!
Start the visual novel interpreter:
python engine.py| Action | Shortcut Key | Description |
|---|---|---|
| Next Line / Finish Poem | Space |
Advance dialogue / finish reading poem / fast-forward typewriter |
| Auto-Play | A |
Toggle automatic line advancement |
| Skip Mode | S |
Fast-forward all dialogue; press any key to stop |
| Save Game | G |
Save current game state to savegame.json |
| Load Game | L |
Load last saved game state (in-game or at startup) |
| Menu Select | Enter / Space |
Confirm selection in Decision menu or Poem minigame |
| Navigate | Up / Down or W / S |
Move cursor in menus |
- decompile_scripts.py: Extracts
scripts.rpa, runsrpycdecbytecode decompilation to.rpy, and cleans up output folders. - parser.py: Indentation-based Ren'Py syntax parser. Constructs structured AST nodes (
label,dialogue,if/elif/else,menu,call_expr,jump_expr,python_block). - terminal.py: Cross-platform terminal & TTY utilities, cbreak non-blocking keyboard input, and double Ctrl+C signal handling.
- state.py: Persistent state JSON storage (
persistent.json), localcharacters/folder management, character theme colors, markup converter, and state variable resolution. - ui.py: Interactive Rich TUI components (
display_dialogue,select_choicedecision boxes,display_dialog_popup,display_confirm_popup,show_main_menu). - renpy_mock.py: Ren'Py runtime environment mock layer, handling
renpy.full_restart(),renpy.save_persistent(), and virtual character file APIs. - poem_game.py: Interactive TUI Poem minigame runner (
play_poem_game), Act 3 glitched poem minigame, and special poem display panels (SPECIAL_POEMS). - engine.py: Core AST runtime engine loop (
DDCCEngine), save/load game state engine logic, node execution dispatching, character file deletion monitoring, and main game startup menu.
โ ๏ธ Warning: Side effects of playing DDCC may include sudden urges to write 20-word poems at 3 AM, extreme emotional attachment to terminal windows, and double-checking yourcharacters/folder. ๐


