🧠 Convierte sesiones enteras de Codex en CLI copiadas y pegadas en
.odto.txta un HTML oscuro estilo terminal (Alacritty/Codex).
Ideal para logs, prompts de IA, diarios técnicos o documentación minimalista.
Capturas de un archivo sample.odt procesado por CodexRenderer, mostrando el resultado final en HTML oscuro estilo Alacritty.
CodexRenderer/
├── CodexRunner.spec
├── cli_entry.py
├── convert_codex.sh
├── convert_gemini.sh
├── gui_entry.py
├── pyproject.toml
├── requirements.txt
├── run.sh
├── src/
│ └── codexrenderer/
│ ├── __init__.py
│ ├── cli.py
│ ├── codex.py
│ ├── codexrenderer_gui.py
│ ├── gemini_cli.py
│ ├── geminirenderer_core.py
│ ├── geminirenderer_gui.py
│ ├── claudecode_cli.py
│ ├── claudecode_gui.py
│ ├── assets/
│ │ └── alacritty.css
│ └── thirdparty/
│ ├── tkdnd/ …
│ └── vendor/
│ └── tkinterdnd2/ …
├── thirdparty/
│ └── vendor/
│ └── tkinterdnd2/ …
├── tests/
│ ├── test_cli.py
│ └── test_gui_import.py
├── build/
├── dist/
└── .github/workflows/
├── ci.yml
└── release.ymlCodexRenderer renderiza notas/sesiones a HTML con un tema visual basado en la terminal Alacritty.
Aplica reglas semánticas automáticas sobre texto plano o documentos .odt para resaltar contenido según su función:
| Tipo de línea | Ejemplo | Renderizado |
|---|---|---|
🧠 Pensamientos IA (•) |
• esto es una idea interna |
Verde + cursiva |
🟩 Líneas añadidas (+) |
+ nueva línea añadida |
Bloque diff verde |
🔴 Líneas eliminadas (-) |
- línea eliminada |
Bloque diff rojo |
| 💻 Bloques de código | bash ... |
Tema oscuro estilo terminal |
El CSS se embebe directamente en el HTML final, garantizando un mismo aspecto en cualquier carpeta o sistema.
Las GUIs de GeminiRenderer y ClaudeCodeRenderer amplían la experiencia de CodexRenderer con soporte drag & drop y estilos de exportación específicos. Comparten la base Tkinter + tkinterdnd2 vendorizada y se distribuyen junto al lanzador run.sh.
- GeminiRenderer GUI adapta el flujo Codex al ecosistema Gemini y sirvió como base para la integración multiplataforma de TkDND.
- ClaudeCode GUI reutiliza la misma capa de conversión, añadiendo presets orientados a flujos Claude.
./run.sh --debug # Autodetecta GUI disponible y abre GeminiRenderer
codex-gemini --debug # Lanza la interfaz Gemini
codex-claude --debug # Lanza la interfaz ClaudeCode📦 Requisitos adicionales (ambas GUIs):
sudo apt install -y python3-tk tkdnd pandoc🧩 Dependencias vendorizadas:
src/codexrenderer/thirdparty/vendor/tkinterdnd2/src/codexrenderer/thirdparty/tkdnd/<plataforma>/thirdparty/vendor/tkinterdnd2/(soporte fuera de entornos virtuales)
- 🐍 Python 3.10+
- 📦 Pandoc
sudo apt install -y pandoc
- 🔹 Paquetes Python:
odfpy→ para leer.odt
cd ~/CodexRenderer
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[gui]"
sudo apt install -y pandoc # requerido para generar HTMLComandos disponibles tras la instalación editable:
codexrenderer --help # CLI ODT/TXT/MD → MD/HTML
geminirenderer --help # CLI estilo Gemini
geminirenderer-gui --debug # GUI con drag & drop
codexrenderer-gui --debug # GUI clásica (Codex)
claudecoderenderer --help # CLI estilo Claude
claudecoderenderer-gui --debug # GUI Claude
codex-gemini --debug # Alias lanzador Gemini
codex-claude --debug # Alias lanzador Claude--md-only: crea únicamente el.md(útil en entornos sin Pandoc instalado).--inline-css/--no-inline-css: controla si el CSS del tema se embebe al inicio del Markdown.
./convert_codex.sh ~/Documentos/MiSesion.odtSalida generada:
- 📝
MiSesion.md - 🌐
MiSesion.html(con tema Alacritty/Codex embebido)
• Pensamiento IA → *<span class="ia-thought">texto verde en cursiva</span>*
+ Línea añadida
- Línea eliminada
```bash
# Bloque de código
echo "Hello, Codex!"
```Convierte automáticamente todos los .odt y .txt de una carpeta:
find ./notas -type f \( -name '*.odt' -o -name '*.txt' \) -print0 \
| xargs -0 -I{} ./convert_codex.sh "{}"💚 Basado en el estilo limpio de Alacritty, con un toque retro tipo Matrix en el banner.
- 🖤 Fondo negro profundo
- 💚 Verde neón (
#00ff80) - 🧮 Tipografía monoespaciada
- 💿 Código resaltado con bordes luminosos
python -m pip install -r requirements.txt pyinstaller
pyinstaller CodexRunner.spec --clean --noconfirmEl ejecutable se genera en dist/CodexRunner/. Lo habitual es comprimir esa carpeta y adjuntarla como asset en la release correspondiente.
CodexRenderer está licenciado bajo GNU GPL v3.0, garantizando que siga siendo software libre.
Componentes de terceros incluidos
tkinterdnd2vendorizado (CLI/GUI y launcher): licencia ensrc/codexrenderer/thirdparty/vendor/tkinterdnd2-0.4.3.dist-info/LICENSE.- TkDND (binarios nativos para arrastrar y soltar): archivos redistribuidos en
src/codexrenderer/thirdparty/tkdnd/ythirdparty/vendor/tkinterdnd2/tkdnd/siguiendo su licencia original.
- Actualizar
pyproject.tomly cualquier banner con la nueva versión. - Instalar dependencias de desarrollo y ejecutar verificaciones:
python -m pip install -e ".[gui]" pytest ruff black build twine ruff check . black --check . pytest
- Generar artefactos y validar metadatos:
python -m build twine check dist/* pyinstaller CodexRunner.spec --clean --noconfirm - Confirmar los cambios relevantes (evitando
venv/,out/o binarios temporales). - Etiquetar la versión (
git tag vX.Y.Z && git push --tags) para activarrelease.yml. - Revisar el borrador automático en GitHub Releases y documentar las notas de cambio.
Creado con 💻 y ☕ por D4vRAM
“Del texto crudo al código vivo — de la mente al render.” 🧠⚡️
#markdown #html #converter #terminal-theme #python #matrix #alacritty #opensource