Situación Actual:
- PM2 corre:
npx @neuralnomads/codenomad-dev(paquete oficial NPM) - Tu fork:
/home/dark/Project/codenomad(código local con fixes)
Objetivo: Correr tu fork local en lugar del NPM package
cd /home/dark/Project/codenomad
# Instalar dependencias (si no lo hiciste)
npm install
# Build del proyecto
npm run build
# Verificar que los scripts existen
npm run# Detener y eliminar el proceso actual
pm2 delete codenomad
# Verificar que se eliminó
pm2 list# Iniciar desde tu fork local
cd /home/dark/Project/codenomad
pm2 start npm --name codenomad -- run start -- \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
# Guardar configuración
pm2 save# Ver si está corriendo
pm2 list
# Ver logs
pm2 logs codenomad
# Debería mostrar algo como:
# "CodeNomad server running on https://0.0.0.0:9898"Abrí el browser en https://192.168.50.45:9898 y verificá que funciona.
cd /home/dark/Project/codenomad
# Build primero
npm run build
# Detener actual
pm2 delete codenomad
# Iniciar usando el CLI compilado
pm2 start node --name codenomad -- \
packages/server/dist/cli.js \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
pm2 savecd /home/dark/Project/codenomad
# Detener actual
pm2 delete codenomad
# Iniciar con tsx (no-build, más rápido para desarrollo)
pm2 start npx --name codenomad-dev -- \
tsx packages/server/src/cli.ts \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
pm2 saveCrear archivo para gestión más fácil:
cd /home/dark/Project/codenomad
nano ecosystem.config.jsContenido:
module.exports = {
apps: [
{
name: 'codenomad-fork',
script: 'npm',
args: 'run start -- --host 0.0.0.0 --https-port 9898 --password 3467 --launch',
cwd: '/home/dark/Project/codenomad',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'production'
},
env_development: {
NODE_ENV: 'development'
},
error_file: '~/.pm2/logs/codenomad-fork-error.log',
out_file: '~/.pm2/logs/codenomad-fork-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z'
}
]
}Uso:
# Detener actual
pm2 delete codenomad
# Iniciar desde config
pm2 start ecosystem.config.js
# Guardar
pm2 save
# Ver logs
pm2 logs codenomad-fork# Detener fork
pm2 delete codenomad # o codenomad-fork
# Iniciar official
pm2 start npx --name codenomad -- @neuralnomads/codenomad-dev \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
pm2 save# Detener official
pm2 delete codenomad
# Iniciar fork
cd /home/dark/Project/codenomad
pm2 start npm --name codenomad-fork -- run start -- \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
pm2 savenano ~/toggle-codenomad.shContenido:
#!/bin/bash
if pm2 list | grep -q "codenomad-fork.*online"; then
echo "Switching to OFFICIAL..."
pm2 delete codenomad-fork
pm2 start npx --name codenomad -- @neuralnomads/codenomad-dev \
--host 0.0.0.0 --https-port 9898 --password 3467 --launch
pm2 save
echo "✅ Running OFFICIAL package"
else
echo "Switching to FORK..."
pm2 delete codenomad 2>/dev/null
cd /home/dark/Project/codenomad
npm run build
pm2 start npm --name codenomad-fork -- run start -- \
--host 0.0.0.0 --https-port 9898 --password 3467 --launch
pm2 save
echo "✅ Running FORK"
fi
pm2 listUso:
chmod +x ~/toggle-codenomad.sh
~/toggle-codenomad.sh # Toggle entre fork y official# 1. Hacer cambios en el código
cd /home/dark/Project/codenomad
# ... editar archivos ...
# 2. Rebuild
npm run build
# 3. Restart PM2 (usa el nuevo build)
pm2 restart codenomad-fork
# 4. Ver logs
pm2 logs codenomad-fork --lines 20
# 5. Probar en browser
# https://192.168.50.45:9898Si querés iterar más rápido sin rebuild:
# Usar tsx en modo watch
pm2 delete codenomad-fork
cd /home/dark/Project/codenomad
pm2 start npx --name codenomad-dev -- \
tsx watch packages/server/src/cli.ts \
--host 0.0.0.0 \
--https-port 9898 \
--password 3467 \
--launch
# Ahora los cambios en server se recargan automáticamente
# (cambios en UI necesitan rebuild)# 1. Asegurate de estar en fork
cd /home/dark/Project/codenomad
# 2. Crear branch para el fix
git checkout -b fix/session-timeout
# 3. Hacer cambios (ej: implementar timeout)
# ... editar packages/server/src/workspaces/opencode-workspace.ts ...
# 4. Typecheck
npm run typecheck
# 5. Build
npm run build
# 6. Si PM2 corre fork, restart
pm2 restart codenomad-fork
# 7. Si PM2 corre official, switch temporalmente
pm2 delete codenomad
pm2 start npm --name codenomad-fork -- run start -- \
--host 0.0.0.0 --https-port 9898 --password 3467 --launch
# 8. Testing
pm2 logs codenomad-fork
# ... probar en browser ...
# 9. Si funciona, commit
git add .
git commit -m "fix: add timeout to OpenCode requests"
# 10. Push a tu fork
git push origin fix/session-timeout
# 11. Crear PR en GitHub
gh pr create --base dev --head fix/session-timeout \
--title "fix: add timeout to OpenCode requests" \
--body "Fixes session stuck bug..."| Aspecto | Official NPM | Fork Local |
|---|---|---|
| Inicio | npx @neuralnomads/codenomad-dev |
npm run start en /home/dark/Project/codenomad |
| Velocidad de inicio | Más lento (descarga) | Más rápido (ya built) |
| Aplicar fixes | Esperar release upstream | Inmediato |
| Testing de cambios | No posible | Sí |
| Actualizaciones | Automático con npx | Manual (git pull + rebuild) |
| Estabilidad | Release oficial | Tu código |
| Para desarrollo | ❌ | ✅ |
| Para uso normal | ✅ |
# Usa fork local
pm2 delete codenomad
cd /home/dark/Project/codenomad
npm run build
pm2 start npm --name codenomad-fork -- run start -- \
--host 0.0.0.0 --https-port 9898 --password 3467 --launch
pm2 save# Usa official package
pm2 delete codenomad-fork
pm2 start npx --name codenomad -- @neuralnomads/codenomad-dev \
--host 0.0.0.0 --https-port 9898 --password 3467 --launch
pm2 save# Instalar dependencias
cd /home/dark/Project/codenomad
npm install
npm run build
pm2 restart codenomad-fork# Matar proceso en puerto 9898
lsof -ti:9898 | xargs kill -9
# O cambiar puerto en PM2
pm2 start ... -- --https-port 9899 ...cd /home/dark/Project/codenomad
git fetch upstream
git merge upstream/dev
npm install # por si hay nuevas dependencias
npm run build
pm2 restart codenomad-forkpm2 flush codenomad-fork
pm2 restart codenomad-fork
pm2 logs codenomad-fork --lines 50Para saber cuál estás corriendo:
pm2 list
# Si ves "codenomad" → Official NPM
# Si ves "codenomad-fork" → Tu fork local
# O verificar el script path:
pm2 describe 0 | grep "script path"
# Si dice "/usr/bin/npx" con "@neuralnomads" → Official
# Si dice "npm" con tu path → ForkPara implementar el timeout fix:
-
Switch a fork:
pm2 delete codenomad cd /home/dark/Project/codenomad npm install && npm run build pm2 start npm --name codenomad-fork -- run start -- \ --host 0.0.0.0 --https-port 9898 --password 3467 --launch pm2 save
-
Decime: "Implementá el timeout según MOBILE-FIX-PLAN.md"
-
Yo hago el código (30 min)
-
Vos aplicás:
cd /home/dark/Project/codenomad npm run build pm2 restart codenomad-fork pm2 logs codenomad-fork -
Testing (15 min)
-
PR upstream si funciona
¿Querés que hagamos el switch ahora y empecemos con el fix? 🚀