Some checks failed
CI / lint-and-test (push) Has been cancelled
Sources merged: - teleo-codex/ops/pipeline-v2/ (11 newer lib files, 5 new lib modules) - teleo-codex/ops/ (agent-state, diagnostics expansion, systemd units, ops scripts) - VPS /opt/teleo-eval/telegram/ (10 new bot files, agent configs) - VPS /opt/teleo-eval/pipeline/ops/ (vector-gc, backfill-descriptions) - VPS /opt/teleo-eval/sync-mirror.sh (Bug 2 + Step 2.5 fixes) Non-trivial merges: - connect.py: kept codex threshold (0.65) + added infra domain parameter - watchdog.py: kept infra version (stale_pr integration, superset of codex) - deploy.sh: codex rsync version (interim, until VPS git clone migration) - diagnostics/app.py: codex decomposed dashboard (14 new route modules) 81 files changed, +17105/-200 lines Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
113 lines
3.3 KiB
Bash
113 lines
3.3 KiB
Bash
#!/usr/bin/env bash
|
|
# Install Hermes Agent on Teleo VPS (CAX31, ARM64, Ubuntu)
|
|
# Run as: teleo user
|
|
# Prereqs: Python 3.11+, Node.js 22+, git
|
|
set -euo pipefail
|
|
|
|
HERMES_HOME="$HOME/.hermes"
|
|
OPENROUTER_KEY_FILE="/opt/teleo-eval/secrets/openrouter-key"
|
|
|
|
echo "=== Hermes Agent Install for Teleo VPS ==="
|
|
|
|
# 1. Check prereqs
|
|
echo "[1/6] Checking prerequisites..."
|
|
python3 --version || { echo "ERROR: Python 3.11+ required"; exit 1; }
|
|
node --version || { echo "ERROR: Node.js 22+ required"; exit 1; }
|
|
git --version || { echo "ERROR: git required"; exit 1; }
|
|
|
|
# 2. Install Hermes
|
|
echo "[2/6] Installing Hermes Agent..."
|
|
if command -v hermes &>/dev/null; then
|
|
echo "Hermes already installed, upgrading..."
|
|
pip3 install --upgrade hermes-agent
|
|
else
|
|
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
|
|
# Source the updated PATH
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
fi
|
|
|
|
# 3. Create config directory
|
|
echo "[3/6] Setting up config..."
|
|
mkdir -p "$HERMES_HOME"
|
|
|
|
# 4. Write .env with OpenRouter key (read from existing pipeline secret)
|
|
if [ -f "$OPENROUTER_KEY_FILE" ]; then
|
|
OPENROUTER_KEY=$(cat "$OPENROUTER_KEY_FILE")
|
|
cat > "$HERMES_HOME/.env" << EOF
|
|
OPENROUTER_API_KEY=${OPENROUTER_KEY}
|
|
EOF
|
|
chmod 600 "$HERMES_HOME/.env"
|
|
echo " OpenRouter key loaded from pipeline secrets"
|
|
else
|
|
echo " WARNING: No OpenRouter key found at $OPENROUTER_KEY_FILE"
|
|
echo " You'll need to manually add OPENROUTER_API_KEY to $HERMES_HOME/.env"
|
|
fi
|
|
|
|
# 5. Write config.yaml
|
|
echo "[4/6] Writing config.yaml..."
|
|
cat > "$HERMES_HOME/config.yaml" << 'EOF'
|
|
# Hermes Agent config — Teleo VPS
|
|
model:
|
|
provider: openrouter
|
|
default: anthropic/claude-sonnet-4-6
|
|
smart_routing: true
|
|
smart_routing_model: google/gemini-2.5-flash
|
|
|
|
terminal:
|
|
backend: native
|
|
|
|
memory:
|
|
enabled: true
|
|
search: sqlite_fts5
|
|
|
|
tools:
|
|
web_search: true
|
|
browser: true
|
|
file_ops: true
|
|
terminal: true
|
|
vision: false
|
|
image_gen: false
|
|
tts: false
|
|
|
|
gateway:
|
|
telegram:
|
|
enabled: false # Enable after setting BOT_TOKEN below
|
|
# bot_token: "YOUR_TELEGRAM_BOT_TOKEN"
|
|
EOF
|
|
|
|
# 6. Write SOUL.md
|
|
echo "[5/6] Writing SOUL.md..."
|
|
cat > "$HERMES_HOME/SOUL.md" << 'EOF'
|
|
You are Cory's personal AI assistant running on the Teleo VPS.
|
|
|
|
Your owner is Cory Abdalla — founder of Metaversal, building LivingIP
|
|
(a collective intelligence system for investment research).
|
|
|
|
You help with:
|
|
- Email triage and drafting (when Gmail is connected)
|
|
- Calendar management
|
|
- Web research and summarization
|
|
- Quick tasks and reminders
|
|
- Anything Cory asks
|
|
|
|
Style: Direct, concise, no fluff. Cory is technical — skip explanations
|
|
of basic concepts. When uncertain, say so rather than guessing.
|
|
|
|
You are NOT part of the LivingIP pipeline. You're a separate personal
|
|
assistant. Don't try to interact with Forgejo, pipeline.db, or the
|
|
teleo-codex unless Cory specifically asks.
|
|
EOF
|
|
|
|
echo "[6/6] Done!"
|
|
echo ""
|
|
echo "=== Next Steps ==="
|
|
echo "1. Test: hermes 'hello, what model are you using?'"
|
|
echo "2. Gmail: hermes setup google-workspace (needs OAuth credentials)"
|
|
echo "3. Telegram: Create bot via @BotFather, add token to config.yaml,"
|
|
echo " then: hermes gateway start"
|
|
echo "4. Cron: hermes cron add '0 8 * * *' 'Check my calendar and summarize today'"
|
|
echo ""
|
|
echo "Config: $HERMES_HOME/config.yaml"
|
|
echo "Memory: $HERMES_HOME/MEMORY.md"
|
|
echo "Skills: $HERMES_HOME/skills/"
|
|
EOF
|