diff --git a/.gitignore b/.gitignore
index 6985cf1..a17e17b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,77 @@ Cargo.lock
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
+
+### Linux ###
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
diff --git a/README_ES.md b/README_ES.md
new file mode 100644
index 0000000..3b6ed05
--- /dev/null
+++ b/README_ES.md
@@ -0,0 +1,277 @@
+# code2prompt
+
+[![crates.io](https://img.shields.io/crates/v/code2prompt.svg)](https://crates.io/crates/code2prompt)
+[![LICENSE](https://img.shields.io/github/license/mufeedvh/code2prompt.svg#cache1)](https://github.com/mufeedvh/code2prompt/blob/master/LICENSE)
+
+
+
+
+
+`code2prompt` es una herramienta de línea de comandos (CLI) que convierte tu base de código en un único prompt para LLM, incluyendo un árbol de archivos fuente, plantillas de prompts y conteo de tokens.
+
+## Tabla de Contenidos
+
+- [Características](#features)
+- [Instalación](#installation)
+- [Uso](#usage)
+- [Plantillas](#templates)
+- [Variables Definidas por el Usuario](#user-defined-variables)
+- [Tokenizadores](#tokenizers)
+- [Contribución](#contribution)
+- [Licencia](#license)
+- [Apoya al Autor](#support-the-author)
+
+## Características
+
+Puedes ejecutar esta herramienta en un directorio completo, y generará un prompt bien formateado en Markdown que detalla la estructura del árbol de archivos fuente y todo el código. Luego puedes cargar este documento en modelos como GPT o Claude con ventanas de contexto amplias y pedirles que:
+
+- Generen prompts para LLM rápidamente a partir de bases de código de cualquier tamaño.
+- Personalicen la generación de prompts usando plantillas de Handlebars (ver la [plantilla predeterminada](src/default_template.hbs))
+- Respete los archivos `.gitignore`.
+- Filtren y excluyan archivos utilizando patrones glob.
+- Muestren el conteo de tokens del prompt generado (Ver [Tokenizadores](#tokenizers) para más detalles).
+- Incluyan opcionalmente salidas de `git diff` (archivos en estado staged) en el prompt generado.
+- Copien automáticamente el prompt generado al portapapeles.
+- Guarden el prompt generado en un archivo de salida.
+- Excluyan archivos y carpetas por nombre o ruta.
+- Añadan números de línea a los bloques de código fuente.
+
+Puedes personalizar las plantillas de prompts para lograr cualquier caso de uso deseado. Básicamente, recorre una base de código y crea un prompt con todos los archivos fuente combinados. En resumen, automatiza la tarea de copiar y formatear múltiples archivos fuente en un único prompt y te informa cuántos tokens consume.
+
+## Instalación
+
+### Lanzamiento de binarios
+Descarga el binario más reciente para tu sistema operativo desde [Releases](https://github.com/mufeedvh/code2prompt/releases).
+
+### Construcción desde código fuente
+Requisitos:
+
+- [Git](https://git-scm.org/downloads), [Rust](https://rust-lang.org/tools/install) y Cargo.
+
+```sh
+git clone https://github.com/mufeedvh/code2prompt.git
+cd code2prompt/
+cargo build --release
+```
+
+## cargo
+
+Instala desde el registro [`crates.io`](https://crates.io).
+
+```sh
+cargo install code2prompt
+```
+
+Para versiones no publicadas:
+
+```sh
+cargo install --git https://github.com/mufeedvh/code2prompt
+```
+
+### AUR
+`code2prompt` está disponible en [`AUR`](https://aur.archlinux.org/packages?O=0&K=code2prompt). Instálalo usando cualquier gestor AUR.
+
+```sh
+paru/yay -S code2prompt
+```
+
+### Nix
+Si utilizas Nix, puedes instalarlo con `nix-env` o `profile`:
+
+```sh
+# Sin flakes:
+nix-env -iA nixpkgs.code2prompt
+# Con flakes:
+nix profile install nixpkgs#code2prompt
+```
+
+## Uso
+
+Genera un prompt desde un directorio de código:
+
+```sh
+code2prompt path/to/codebase
+```
+
+Usa un archivo de plantilla Handlebars personalizado:
+
+```sh
+code2prompt path/to/codebase -t path/to/template.hbs
+```
+
+Filtrar archivos usando patrones glob:
+
+```sh
+code2prompt path/to/codebase --include="*.rs,*.toml"
+```
+
+Excluir archivos usando patrones glob:
+
+```sh
+code2prompt path/to/codebase --exclude="*.txt,*.md"
+```
+
+Excluir archivos/carpetas del árbol de origen basándose en patrones de exclusión:
+
+```sh
+code2prompt path/to/codebase --exclude="*.npy,*.wav" --exclude-from-tree
+```
+
+Mostrar el conteo de tokens del prompt generado:
+
+```sh
+code2prompt path/to/codebase --tokens
+```
+
+Especificar un tokenizador para el conteo de tokens:
+
+```sh
+code2prompt path/to/codebase --tokens --encoding=p50k
+```
+
+Tokenizadores soportados: `cl100k`, `p50k`, `p50k_edit`, `r50k_bas`.
+> [!NOTE]
+> Ver [Tokenizadores](#tokenizers) para más detalles.
+
+Guardar el prompt generado en un archivo de salida:
+
+```sh
+code2prompt path/to/codebase --output=output.txt
+```
+
+Imprimir salida como JSON:
+
+```sh
+code2prompt path/to/codebase --json
+```
+
+La salida JSON tendrá la siguiente estructura:
+
+```json
+{
+ "prompt": "",
+ "directory_name": "codebase",
+ "token_count": 1234,
+ "model_info": "Modelos de ChatGPT, text-embedding-ada-002",
+ "files": []
+}
+```
+
+Generar un mensaje de commit de Git (para archivos en estado staged):
+
+```sh
+code2prompt path/to/codebase --diff -t templates/write-git-commit.hbs
+```
+
+Generar una Pull Request comparando ramas (para archivos en estado staged):
+
+```sh
+code2prompt path/to/codebase --git-diff-branch 'main, development' --git-log-branch 'main, development' -t templates/write-github-pull-request.hbs
+```
+
+Añadir números de línea a los bloques de código fuente:
+
+```sh
+code2prompt path/to/codebase --line-number
+```
+
+Desactivar el envoltorio de código dentro de bloques de código markdown:
+
+```sh
+code2prompt path/to/codebase --no-codeblock
+```
+
+- Reescribir el código a otro idioma.
+- Encontrar errores/vulnerabilidades de seguridad.
+- Documentar el código.
+- Implementar nuevas características.
+
+> Inicialmente escribí esto para uso personal para utilizar la ventana de contexto de 200K de Claude 3.0 y ha resultado ser bastante útil, ¡así que decidí hacerlo de código abierto!
+
+## Plantillas
+
+`code2prompt` viene con un conjunto de plantillas integradas para casos de uso comunes. Puedes encontrarlas en el directorio [`templates`](templates).
+
+### [`document-the-code.hbs`](templates/document-the-code.hbs)
+
+Usa esta plantilla para generar prompts para documentar el código. Añadirá comentarios de documentación a todas las funciones, métodos, clases y módulos públicos en la base de código.
+
+### [`find-security-vulnerabilities.hbs`](templates/find-security-vulnerabilities.hbs)
+
+Usa esta plantilla para generar prompts para encontrar posibles vulnerabilidades de seguridad en la base de código. Buscará problemas de seguridad comunes y proporcionará recomendaciones sobre cómo solucionarlos o mitigarlos.
+
+### [`clean-up-code.hbs`](templates/clean-up-code.hbs)
+
+Usa esta plantilla para generar prompts para limpiar y mejorar la calidad del código. Buscará oportunidades para mejorar la legibilidad, adherencia a las mejores prácticas, eficiencia, manejo de errores, y más.
+
+### [`fix-bugs.hbs`](templates/fix-bugs.hbs)
+
+Usa esta plantilla para generar prompts para corregir errores en la base de código. Ayudará a diagnosticar problemas, proporcionar sugerencias de corrección y actualizar el código con las correcciones propuestas.
+
+### [`write-github-pull-request.hbs`](templates/write-github-pull-request.hbs)
+
+Usa esta plantilla para crear una descripción de Pull Request de GitHub en markdown comparando el git diff y el git log de dos ramas.
+
+### [`write-github-readme.hbs`](templates/write-github-readme.hbs)
+
+Usa esta plantilla para generar un archivo README de alta calidad para el proyecto, adecuado para alojar en GitHub. Analizará la base de código para entender su propósito y funcionalidad, y generará el contenido del README en formato Markdown.
+
+### [`write-git-commit.hbs`](templates/write-git-commit.hbs)
+
+Usa esta plantilla para generar commits de git a partir de los archivos en estado staged en tu directorio git. Analizará la base de código para entender su propósito y funcionalidad, y generará el contenido del mensaje de commit de git en formato Markdown.
+
+### [`improve-performance.hbs`](templates/improve-performance.hbs)
+
+Usa esta plantilla para generar prompts para mejorar el rendimiento de la base de código. Buscará oportunidades de optimización, proporcionará sugerencias específicas y actualizará el código con los cambios.
+
+Puedes usar estas plantillas pasando el flag `-t` seguido de la ruta al archivo de plantilla. Por ejemplo:
+
+```sh
+code2prompt path/to/codebase -t templates/document-the-code.hbs
+```
+
+## Variables Definidas por el Usuario
+
+`code2prompt` soporta el uso de variables definidas por el usuario en las plantillas de Handlebars. Cualquier variable en la plantilla que no sea parte del contexto predeterminado (`absolute_code_path`, `source_tree`, `files`) será tratada como una variable definida por el usuario.
+
+Durante la generación del prompt, `code2prompt` solicitará al usuario que ingrese valores para estas variables definidas por el usuario. Esto permite una mayor personalización de los prompts generados basados en la entrada del usuario.
+
+Por ejemplo, si tu plantilla incluye `{{challenge_name}}` y `{{challenge_description}}`, se te pedirá que ingreses valores para estas variables al ejecutar `code2prompt`.
+
+Esta característica permite crear plantillas reutilizables que pueden adaptarse a diferentes escenarios basados en la información proporcionada por el usuario.
+
+## Tokenizadores
+
+La tokenización se implementa usando [`tiktoken-rs`](https://github.com/zurawiki/tiktoken-rs). `tiktoken` soporta estas codificaciones utilizadas por los modelos de OpenAI:
+
+| Nombre de codificación | Modelos de OpenAI |
+| ----------------------- | ------------------------------------------------------------------------- |
+| `cl100k_base` | Modelos de ChatGPT, `text-embedding-ada-002` |
+| `p50k_base` | Modelos de código, `text-davinci-002`, `text-davinci-003` |
+| `p50k_edit` | Usar para modelos de edición como `text-davinci-edit-001`, `code-davinci-edit-001` |
+| `r50k_base` (o `gpt2`) | Modelos GPT-3 como `davinci` |
+| `o200k_base` | Modelos GPT-4o |
+
+Para más contexto sobre los diferentes tokenizadores, ver el [OpenAI Cookbook](https://github.com/openai/openai-cookbook/blob/66b988407d8d13cad5060a881dc8c892141f2d5c/examples/How_to_count_tokens_with_tiktoken.ipynb)
+
+## ¿Cómo es útil?
+
+`code2prompt` facilita la generación de prompts para LLMs desde tu base de código. Recorre el directorio, construye una estructura de árbol y recopila información sobre cada archivo. Puedes personalizar la generación de prompts usando plantillas de Handlebars. El prompt generado se copia automáticamente en tu portapapeles y también se puede guardar en un archivo de salida. `code2prompt` ayuda a agilizar el proceso de creación de prompts para análisis de código, generación y otras tareas.
+
+## Contribución
+
+Formas de contribuir:
+
+- Sugerir una característica
+- Reportar un error
+- Arreglar algo y abrir un pull request
+- Ayudarme a documentar el código
+- Difundir la palabra
+
+## Licencia
+
+Licenciado bajo la Licencia MIT, ver LICENSE para más información.
+
+## ¿Te gustó el proyecto?
+
+Si te gustó el proyecto y lo encontraste útil, por favor dale una :star: y considera apoyar a los autores!