Aider + Qwen Coder

Pair programming local con LLM corriendo en el propio VPS

¿Qué es esto?

Aider es un asistente de programación en terminal — le pides un cambio en lenguaje natural y edita los archivos del proyecto directamente, haciendo commits de cada cambio.

Qwen 2.5 Coder es el modelo que piensa. Corre localmente vía Ollama en el VPS, sin API externas ni coste por token. Privacidad total sobre el código.

Tú (terminal)
escribes "añade validación al formulario"

Aider — lee tu proyecto, prepara el prompt
HTTP → localhost:11434

Ollama — sirve el modelo


Qwen 2.5 Coder — genera el diff


Aider — aplica el diff, hace git commit

Stack instalado en el VPS

ComponenteUbicaciónTamaño
Aider v0.86.2 /root/.local/bin/aider
Ollama v0.20.3 /usr/local/bin/ollama
qwen2.5-coder:7b modelo principal 4.7 GB
qwen2.5-coder:3b modelo rápido 1.9 GB

El servicio Ollama ya está arrancado y se lanza al reiniciar: systemctl status ollama.

Cómo arrancar

  1. Conectar al VPS
    ssh root@TU_IP_SERVIDOR
  2. Ir al proyecto

    Aider funciona mejor dentro de una carpeta con git inicializado — cada cambio que aplica se guarda como commit.

    cd /ruta/de/tu/proyecto
    git init    # si aún no tiene git
  3. Lanzar Aider

    Hay alias ya configurados en ~/.bashrc:

    # modelo 7b (mejor calidad — por defecto)
    aider-7b
    
    # modelo 3b (el doble de rápido, menos capaz)
    aider-3b
    
    # con archivos concretos en contexto desde el inicio
    aider-7b server.js index.html
Primera ejecución tras reposo: Ollama tarda ~30s extra en cargar el modelo en RAM. La segunda respuesta va inmediata.

Comandos dentro del chat

Una vez Aider está abierto, se teclea en el prompt. Todo lo que empiece por / es un comando; el resto son instrucciones al modelo.

Ejemplos de uso

Arreglar un bug

cd /home/user/web/srv1157349.hstgr.cloud/public_html/proyectos/AF
aider-7b save_contacto.php delete_contacto.php

> El borrado del último contacto devuelve 500. Arréglalo.

Añadir una feature

aider-7b index.html

> Añade un botón "Exportar a CSV" que descargue la tabla como archivo.

Pregunta sin modificar

aider-7b server.js

> /ask ¿qué hace el endpoint POST /api/view-token/:id ?

¿Cuándo usar 7b vs 3b?

Criterioqwen2.5-coder:7bqwen2.5-coder:3b
Tamaño 4.7 GB 1.9 GB
Velocidad (CPU) ~5-8 tok/s ~12-15 tok/s
Respuesta típica ~1-2 min ~20-40 s
Lógica compleja ✅ Bien ⚠️ Justita
Refactors multi-archivo ✅ Sí ❌ Mejor no
Snippets / fixes cortos ✅ Sobra ✅ Perfecto
Regla rápida: empieza con aider-7b. Si vas a hacer muchos cambios pequeños y quieres más agilidad, /model ollama_chat/qwen2.5-coder:3b.

Tips de rendimiento

Sin GPU, todo va por CPU. El VPS tiene 2 vCPUs y 8 GB RAM, así que hay que ser estratégico:

Alternativa: RunPod serverless

Para tareas grandes (refactors multi-archivo, proyectos enteros) el local en CPU se queda corto. La opción seria es servir un Qwen 32B por RunPod serverless, igual que el de anamnesis2.

Se configura en Aider apuntando a un endpoint OpenAI-compatible:

export OPENAI_API_BASE=https://api.runpod.ai/v2/TU_ENDPOINT/openai/v1
export OPENAI_API_KEY=rpa_...
aider --model openai/qwen2.5-coder:32b

Coste estimado: ~5 céntimos por petición. Respuesta en 15-30 s con GPU.

Si algo falla

Aider no arranca

# ¿Está en el PATH?
which aider

# Si no aparece, usar ruta completa
/root/.local/bin/aider --version

# Recargar aliases
source ~/.bashrc

Ollama no responde

# Estado
systemctl status ollama

# Reiniciar
systemctl restart ollama

# Probar directo
curl http://127.0.0.1:11434/api/tags

Gestión de modelos

# Listar modelos instalados
ollama list

# Descargar otro modelo
ollama pull qwen2.5-coder:14b

# Borrar un modelo
ollama rm qwen2.5-coder:3b
No cargues dos modelos a la vez si no hace falta — tirará de swap y todo se ralentiza. Ollama descarga el modelo anterior tras 5 min de inactividad por defecto.

Archivos clave