Vamos a generar un primer agente con Claude Code y se ejecutará de forma automática cada hora con un cron y subirá a github el contenido generado.

1️ Estructura de carpetas
Crea la carpeta de tu agente:
mkdir -p ~/motivational-agent/md mkdir -p ~/motivational-agent/data cd ~/motivational-agent
La estructura final quedará así:
motivational-agent/ │ ├─ md/ │ └─ claude.md # contexto y estilo de frases ├─ data/ │ └─ frases.json # histórico de frases ├─ claude-config.json # configuración de Claude └─ run-agent.js # script que genera frases + commits
2️ Crear claude.md (contexto)
Este archivo le da a Claude la personalidad y estilo de las frases.
Crea el archivo:
nano ~/motivational-agent/md/claude.md
Pega este contenido:
# Contexto para generar frases motivacionales
1. Genera frases **positivas, breves y motivadoras**.
2. Inspírate en filosofía, libros de autoayuda y citas de personas famosas.
3. Nunca repitas frases que ya estén en el archivo de frases existentes.
4. El formato final debe ser JSON:
{
"frase": "Aquí va la frase motivacional",
"autor": "Opcional"
}
Guarda y cierra.
3️ Crear claude-config.json
Configura tu modelo, paths y autor de commits:
nano ~/motivational-agent/claude-config.json
Pega esto:
{
"model": "claude-instant-1",
"temperature": 0.7,
"max_tokens": 200,
"md_path": "/motivational-agent/md",
"data_path": "/motivational-agent/data/frases.json",
"repo_path": "/motivational-agent",
"commit_author": "Isma",
"commit_email": "[email protected]"
}
4️ Crear el script run-agent.js
Este script:
- Lee el prompt (
claude.md) - Llama a Claude Code
- Guarda la frase en
frases.json - Hace commit y push automáticamente
nano ~/motivational-agent/run-agent.js
Pega este código:
const fs = require('fs');
const { execSync } = require('child_process');
const config = JSON.parse(fs.readFileSync('claude-config.json'));
const prompt = fs.readFileSync(`${config.md_path}/claude.md`, 'utf8');
try {
// Ejecuta Claude Code
const output = execSync(`claude "${prompt}" --model ${config.model}`);
const frase = output.toString().trim();
// Leer frases existentes
let frases = [];
if (fs.existsSync(config.data_path)) {
frases = JSON.parse(fs.readFileSync(config.data_path, 'utf8'));
}
// Agregar nueva frase
frases.push({ frase, fecha: new Date().toISOString() });
// Guardar archivo
fs.writeFileSync(config.data_path, JSON.stringify(frases, null, 2));
console.log("Frase generada:", frase);
// Commit y push
execSync(`cd ${config.repo_path} && git add data/frases.json`);
execSync(`cd ${config.repo_path} && git commit -m "Añadida nueva frase motivacional" --author="${config.commit_author} <${config.commit_email}>"`);
execSync(`cd ${config.repo_path} && git push`);
console.log("Commit y push realizados");
} catch (err) {
console.error(err.toString());
}
5️ Inicializar Git
Si aún no lo has hecho:
cd ~/motivational-agent git init git remote add origin [email protected]:TuUsuario/motivational-agent.git git add . git commit -m "Inicializar repo agente motivacional" git push -u origin master
Recuerda reemplazar
TuUsuariopor tu usuario de GitHub y que tu SSH esté configurada.
6️ Probar el script manualmente
cd ~/motivational-agent node run-agent.js
- Deberías ver en consola:
- “Frase generada: …”
- “Commit y push realizados ”
- En GitHub aparecerá la nueva frase en
frases.json.
7️ Configurar cron para automatizar
- Abre crontab:
crontab -e
- Añade la línea para generar una frase cada hora:
0 * * * * /usr/bin/node /home/raspi4/motivational-agent/run-agent.js >> /home/raspi4/motivational-agent/cron.log 2>&1
0 * * * *→ cada hora en minuto 0>> cron.log 2>&1→ guarda logs de salida y errores
- Guarda y cierra. Cron ahora ejecutará tu agente automáticamente.
8️ Comprobar cron
grep CRON /var/log/syslog

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.