Skip to content

Repository files navigation

[ i a d i m e ]

shell license status

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.

Características

  • 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

Limitaciones y Diseño

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.

Requisitos

Mínimos:

  • sh
  • curl
  • jq
  • sed
  • awk

Opcional:

  • mdv o rich → (requiere python3) :leer conversacion en Markdown
  • git → para descargar y actualizar este proyecto

a-shell usa pkg install git para instalar.

Ejemplo de uso

[ 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

Instalación

  1. Descarga el proyecto o clónalo

    git clone https://github.com/Joselon/iadime.git

    a-Shell usa pickFolder que permite seleccionar una carpeta de Archivos para poder copiar archivos con cp desde/a ~/Documents/

  2. Copiar iadime.sh a la carpeta bin(crear si no existe) y darle un nombre corto como iadime

    cp iadime.sh ~/Documents/bin/iadime
  3. Dar permiso de ejecucion al script

    chmod +x iadime
  4. Necesitas:

    1. Una API_KEY de un proyecto (puede ser gratuito) en google aistudio
    2. Crear/añadir al fichero ~/Documents/.profile en a-Shell(en terminales comunes .bashrc o .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 como WSL Ubuntu o Zsh y añadir un alias en el mismo fichero. alias iadime="rlwrap iadime".

    En ish se instala diractemente del repositorio de alpine:

       apk add rlwrap --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
  • Para mejorar la lectura, se recomienda tener instalado mdv o rich y/o usar aplicaciones externas como Obsidian

    # Comprobar si esta instalado
    mdv --version
    
    # Instalar
    pip install mdv

    pipx Si pip da algun problema en otras terminales

    El comando :leer abre la conversación actual con mdv a traves de less por lo que se pueden usar comandos como:

    • G Ir al final del fichero
    • q Salir de la lectura

    Si no está instalado mdv, usa rich en su lugar (tb con python). Si no hay ninguno de los dos se abre la vista previa desde a-shell con view y en el resto de terminales con vim.

  • Para abrir las imagenes desde a-Shell usa view imagen01.png.

  • Actualiza con git pull si clonaste el proyecto y copia de nuevo el script a bin.

Uso

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 flash

Puedes 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.

Comandos

Generales

  • :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

Conversaciones

  • :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, ~/.bashrc o ~/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.

Modelo

  • :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.

Lectura

  • :leer → abre la conversacion actual con mdv, si está instalado, si no con rich, si no con vim. al abrirse con less -r se puede navegar al final de la conversacion pulsando G mayuscula Pulsar q para salir del modo lectura
  • :leeme → usa el comando saypara leer con voz la ultima respuesta
  • :leeme-todo → usa el comando saypara 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.

Estructura

/
├── 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-Shell solo hay permiso de escritura en la carpeta Documents o en carpetas del dispositivo importadas con pickFolder (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

Colaboraciones y Referencias

Son bienvenidas colaboraciones para mejoras y propuestas por pull request.

Autor

Jose Navarro Osta. 2026.

Con ayuda de Copilot, ChatGPT y Gemini.

About

CLI ligera para usar modelos de IA (Gemini) desde terminal

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages