CLI ligera para usar modelos de IA (Gemini) desde terminal, ideada para un iPad obsoleto con a-shell.
También puedes usar iadime desde el navegador.
- Chat interactivo en terminal
- Contexto persistente entre preguntas
- Generación de imágenes
- Envio de ficheros para su analisis
- Exportación e importación de conversaciones
- Historial en formato Markdown
- Cálculo de tokens y coste estimado cada peticion a la API
- Compatible con a-shell y facilmente adaptable a shells Linux básicos
a-shell es una aplicación para iOS que simula un entorno Unix limitado (sandboxing, permisos restringidos, compatibilidad parcial con comandos nativos de Linux, command subsitution limitado).
Este proyecto está diseñado específicamente para dispositivos obsoletos como el iPad Mini 4 (lanzado en 2015), que no admiten la aplicación oficial de ChatGPT debido a requisitos de iOS más actuales en la AppStore. Tampoco sus versiones de Safari o Chrome pueden abrir la interfaz web de ChatGPT.
Sin embargo, gracias a este script y a a-shell, el dispositivo sigue siendo una herramienta válida y funcional para interactuar con modelos de IA, extendiendo su utilidad mucho más allá de su obsolescencia.
Mínimos:
shcurljqsedawk
Opcional:
mdvorich→ (requiere python3) :leer conversacion en Markdowngit→ para descargar y actualizar este proyecto
a-shellusapkg install gitpara instalar.
[ i a d i m e ] (gemini-flash-latest)
Tu:
Hola
IA:
¡Hola! ¿En qué puedo ayudarte?
Uso:
120 tokens
Total acumulado:
350
Coste estimado (€):
0.0007
Tu:
:leer-
Descarga el proyecto o clónalo
git clone https://github.com/Joselon/iadime.git
a-Shellusa pickFolder que permite seleccionar una carpeta deArchivospara poder copiar archivos concpdesde/a ~/Documents/ -
Copiar
iadime.sha la carpeta bin(crear si no existe) y darle un nombre corto comoiadimecp iadime.sh ~/Documents/bin/iadime -
Dar permiso de ejecucion al script
chmod +x iadime
-
Necesitas:
- Una
API_KEYde un proyecto (puede ser gratuito) en google aistudio - Crear/añadir al fichero
~/Documents/.profileena-Shell(en terminales comunes.bashrco.zshrc) las siguientes lineas:
export GEMINI_API_KEY="tu_api_key" export PATH="$HOME/Documents/bin:$PATH"
Recuerda recargar luego con
source .profile.Se recomienda instalar
rlwrap(apt o brew install rlwrap) en terminales comoWSL UbuntuoZshy añadir un alias en el mismo fichero.alias iadime="rlwrap iadime".En
ishse instala diractemente del repositorio de alpine:apk add rlwrap --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
- Una
-
Para mejorar la lectura, se recomienda tener instalado
mdvorichy/o usar aplicaciones externas comoObsidian# Comprobar si esta instalado mdv --version # Instalar pip install mdv
pipxSipipda algun problema en otras terminalesEl comando
:leerabre la conversación actual conmdva traves delesspor lo que se pueden usar comandos como:GIr al final del ficheroqSalir de la lectura
Si no está instalado
mdv, usarichen su lugar (tb con python). Si no hay ninguno de los dos se abre la vista previa desde a-shell conviewy en el resto de terminales convim. -
Para abrir las imagenes desde a-Shell usa
view imagen01.png. -
Actualiza con
git pullsi clonaste el proyecto y copia de nuevo el script a bin.
Se puede usar con el modelo flash-latest y el pro-latest de gemini. Por defecto se inicia con flash. Es facilmente adaptable a otros proveedores como openAI, cambiando la url y el json.
iadime
# Inicia o continua la converacion actual con la carpeta tmp como contexto
iadime -m pro
iadime -m flash
# Inicia con uno de los modelos pro o flashPuedes mantener una conversacion con el modelo de IA seleccionado o ejecutar los comandos que necesites.
Se muestra al final de cada respuesta el consumo en tokens y un coste estimado basado en el modelo flash.
:salir→ salir:reset→ limpiar contexto:clear→ limpiar pantalla:imagen <texto>→ Generar imagen con el texto dado ( usa misma API key y llamadas a Imagen 4.0):enviar <ruta>→ Enviar archivo (ruta relativa a ~/ROOT_PATH) * Por defecto donde se ejecute.Tipos de ficheros admitidos: markdown, txt, json, png, jpg, pdf.
:ayuda→ muestra todos los comandos disponibles:debug→ Alternar modo debug y validar petición:tokens→ Muestra el consumo anterior de tokens
:export NOMBRE→ guarda conversación:import NOMBRE→ carga conversación:list→ lista conversaciones disponibles:exportHTML→ guarda conversación en HTML en index.html
Si quieres servir el HTML exportado condesde este proyecto, añade también este alias a
~/.zshrc,~/.bashrco~/Documents/.profile:
alias iadime-serve='cd ~/Documents/iadime && python3 -m http.server 3000'Después ejecuta iadime-serve y abre http://localhost:3000 en el navegador.
:reglas→ Muestra las reglas para el modelo actuales:reglas NUEVAS_REGLAS'→ Actualizar reglas:reglas-reset→ Vuelve a las reglas por defecto:model pro→ Usa el modelo con más capacidad de razonamiento:model flash→ Usa el modelo más rápido respondiendo:model <nombre_modelo>→ Usa el modelo de la lista modelos disponibles:list-models→ Lista modelos disponibles en la API
Por defecto las reglas son: Eres un asistente útil. Si el usuario pide una imagen, genera un prompt detallado en inglés entre etiquetas [IMAGEN_PROMPT]Description[/IMAGEN_PROMPT]. Responde siempre en español.
El limite es 1024 caracteres.
:leer→ abre la conversacion actual con mdv, si está instalado, si no con rich, si no con vim. al abrirse conless -rse puede navegar al final de la conversacion pulsandoGmayuscula Pulsar q para salir del modo lectura:leeme→ usa el comandosaypara leer con voz la ultima respuesta:leeme-todo→ usa el comandosaypara leer con voz toda la conversación.
Si lo usas en WSL puedes crear el script /usr/local/bin/say con este contenido:
#!/bin/bash
# Esto usa PowerShell de Windows para hablar
powershell.exe -Command \"Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('$*')\"
En iSH no funciona este comando.
/
├── actual.md
├── index.html (Si se usa el comnado :exportHTML)
├── iadime.log
├── tmp/
├── imagenes/
├── *.md
└── *_tmp/iadime crea esta estructura de ficheros y carpetas a partir de la ruta desde donde se ejecute.
Nota: En
a-Shellsolo hay permiso de escritura en la carpeta Documents o en carpetas del dispositivo importadas conpickFolder(se recomienda usar una carpeta en la nube, ej iCloud, para tener disponibles las conversaciones en todos los dispositvios).Se recomienda crear una carpeta envios para guardar los ficheros para enviar con el comando :envia envios/fichero
Son bienvenidas colaboraciones para mejoras y propuestas por pull request.
- Documentación de a-Shell: https://github.com/holzschu/a-shell
- Documentación oficial sobre iSH: https://github.com/ish-app/ish/wiki
Jose Navarro Osta. 2026.
Con ayuda de Copilot, ChatGPT y Gemini.