ssh root@TU_IP_SERVIDOR
Pair programming local con LLM corriendo en el propio VPS
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.
| Componente | Ubicación | Tamañ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.
ssh root@TU_IP_SERVIDOR
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
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
Una vez Aider está abierto, se teclea en el prompt. Todo lo que empiece por / es un comando; el resto son instrucciones al modelo.
/add file.jsAñade un archivo al contexto del modelo/drop file.jsQuita un archivo del contexto (para ahorrar tokens)/lsLista archivos actualmente en contexto/model ollama_chat/qwen2.5-coder:3bCambia de modelo sin salir/diffMuestra el diff del último cambio/undoDeshace el último commit de Aider/commitCommit manual de cambios pendientes/run comandoEjecuta shell y añade la salida al contexto/test comandoEjecuta tests; si fallan, el modelo intenta arreglar/ask preguntaPregunta sin modificar archivos (solo explica)/helpLista todos los comandos/exitSalir (Ctrl+C también vale)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.
aider-7b index.html
> Añade un botón "Exportar a CSV" que descargue la tabla como archivo.
aider-7b server.js
> /ask ¿qué hace el endpoint POST /api/view-token/:id ?
| Criterio | qwen2.5-coder:7b | qwen2.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 |
aider-7b. Si vas a hacer muchos cambios pequeños y quieres más agilidad, /model ollama_chat/qwen2.5-coder:3b.
Sin GPU, todo va por CPU. El VPS tiene 2 vCPUs y 8 GB RAM, así que hay que ser estratégico:
Pocos archivosCuantos más archivos en /add, más lento. Usa /drop agresivamente.Prompt claroTareas concretas ("añade X", "arregla Y") tardan menos que "mejora este código".Cold startPrimera pregunta tras reposo: +30s cargando el modelo. Luego cacheado.SwapHay 8 GB de swap. Si cargas dos modelos a la vez, tirará de swap — lento. Mejor uno cada vez.Evita 14b+Modelos más grandes no caben cómodos en esta RAM. Si necesitas más potencia, vete a RunPod.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.
# ¿Está en el PATH?
which aider
# Si no aparece, usar ruta completa
/root/.local/bin/aider --version
# Recargar aliases
source ~/.bashrc
# Estado
systemctl status ollama
# Reiniciar
systemctl restart ollama
# Probar directo
curl http://127.0.0.1:11434/api/tags
# Listar modelos instalados
ollama list
# Descargar otro modelo
ollama pull qwen2.5-coder:14b
# Borrar un modelo
ollama rm qwen2.5-coder:3b
~/.bashrcAlias aider-7b / aider-3b~/.local/bin/aiderBinario de Aider/usr/share/ollama/.ollama/modelsModelos descargados~/.aider.conf.yml(Opcional) Config global de Aider por si se crea./.aider.chat.history.mdHistorial de chat (por proyecto)./.aider.input.historyHistorial de prompts (por proyecto)