Sentō viene con un Dockerfile que te da paridad total con el VPS dentro de un contenedor: usuario no-root sento, cron @reboot para persistencia dentro del contenedor, Guardian corriendo al lado de Claude Code.

Requisitos previos

  • Docker 24+
  • Un token OAuth de Claude Code — como Docker corre sin interacción, el flujo de autenticación por browser no funciona. Generá un token en tu máquina local primero: npm install -g @anthropic-ai/claude-code && claude setup-token. Empieza con sk-ant-oat01-….
  • Un bot token para el canal que elijas

Buildear la imagen

git clone https://github.com/sentoagent/sento
cd sento
docker build -t sento .

La imagen corre como un usuario no-root sento (Claude Code se niega a usar --dangerously-skip-permissions como root) y mantiene los paquetes globales de npm bajo ~/.npm-global.

Correr con variables de entorno

docker run -d \
  --name sento-agent \
  -e CLAUDE_CODE_OAUTH_TOKEN="sk-ant-oat01-..." \
  -e DISCORD_BOT_TOKEN="tu-bot-token" \
  -e AGENT_NAME="kai" \
  -e CHANNEL="discord" \
  -v sento-data:/home/sento/workspace \
  sento

Montá el workspace como volumen así CLAUDE.md, la memoria y las credenciales sobreviven a reinicios del contenedor.

Docker Compose (multi-agente)

Para más de un agente, usá Compose:

version: "3.9"
services:
  kai:
    image: sento
    environment:
      - CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_TOKEN}
      - DISCORD_BOT_TOKEN=${KAI_DISCORD_TOKEN}
      - AGENT_NAME=kai
      - CHANNEL=discord
    volumes:
      - kai-data:/home/sento/workspace
  mira:
    image: sento
    environment:
      - CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_TOKEN}
      - TELEGRAM_BOT_TOKEN=${MIRA_TG_TOKEN}
      - AGENT_NAME=mira
      - CHANNEL=telegram
    volumes:
      - mira-data:/home/sento/workspace

volumes:
  kai-data:
  mira-data:

Chequear salud

docker exec -it sento-agent sento status
docker exec -it sento-agent sento logs -n 40

O metete al shell y tratalo como un VPS:

docker exec -it sento-agent bash

Por qué importa la paridad con Docker

Todo feature que funciona en un VPS funciona en Docker: Guardian, cron @reboot, tmux, la CLI entera, emparejamiento entre agentes. No hay "modo lite". El contenedor corre igual que un usuario de Linux.