Lewati ke konten utama
Versi: 1.0

Langkah 3 — Remote via Telegram

Di sinilah "solo = team" mulai terasa: agent hidup di mesin yang selalu menyala, dan kamu mengarahkannya dari HP — memberi task, menerima laporan, menyetujui langkah berisiko — dari mana saja.

Pilih jalurmu

JalurCocok untukEffort setupKontrol
A. OpenClawMayoritas orang — gateway chat→agent matang, multi-channel± 30 menitTinggi (self-hosted)
B. Hermes AgentYang mau agent + memory + skills terintegrasi satu paket± 30 menitTinggi (self-hosted, open source)
C. Bridge customYang mau paham cara kerjanya / kebutuhan sangat spesifik± 1–2 jamTotal

Ketiganya butuh mesin yang selalu menyala: laptop/PC di rumah, Mac mini, atau VPS ($5–10/bulan — Hetzner/DigitalOcean/dll). Untuk mulai, laptop yang tidak sleep sudah cukup.

Buat bot Telegram

Semua jalur butuh ini. Di Telegram, chat ke @BotFather:

/newbot
→ beri nama, misal: My Agent Runner
→ beri username, misal: my_agent_runner_bot

BotFather membalas dengan bot token (123456:ABC-DEF...). Lalu dapatkan chat ID-mu: chat ke @userinfobot, catat angka Id.

:::warning Token = akses penuh ke bot Siapa pun yang memegang token bisa membaca dan mengirim pesan sebagai bot-mu. Simpan di environment variable / secret manager, jangan pernah commit ke repo. Kalau bocor: /revoke di BotFather. :::

Checkpoint: kamu punya bot token dan chat ID numerik milikmu sendiri.

Jalur A — OpenClaw (rekomendasi default)

OpenClaw adalah runtime + gateway yang menghubungkan agent ke Telegram/WhatsApp/Discord dan mengeksekusi shell, browser, dan cron di mesinmu. Butuh Node 22+.

npm install -g openclaw
openclaw onboard --install-daemon

Wizard onboarding akan menanyakan: provider model + API key (pilih model terkuat yang budget-mu izinkan — ini agent yang memegang shell), workspace, lalu channels → Telegram: tempel bot token dari langkah sebelumnya.

--install-daemon mendaftarkan gateway sebagai service (launchd di macOS, systemd di Linux) sehingga hidup lagi setelah reboot.

Setelah jalan, kunci aksesnya — hanya kamu yang boleh memerintah:

~/.openclaw/openclaw.json (bagian penting)
{
"channels": {
"telegram": {
"botToken": "${TELEGRAM_BOT_TOKEN}",
"allowFrom": [<CHAT_ID_KAMU>]
}
}
}

Checkpoint: kirim "halo, kamu jalan di mesin apa?" ke bot-mu dari Telegram — dijawab; kirim pesan dari akun Telegram lain — diabaikan/ditolak.

Jalur B — Hermes Agent

Hermes Agent (Nous Research, MIT) adalah agent self-improving: menulis skill Markdown dari pengalaman dan menyimpannya di memory lintas sesi. Gateway bawaannya mendukung Telegram, Discord, Slack, WhatsApp, Signal, dan email; backend eksekusinya bisa local, Docker, SSH, atau cloud sandbox (Daytona/Modal).

# install (lihat https://hermes-agent.nousresearch.com/docs/ untuk metode terbaru)
pip install hermes-agent
hermes setup # wizard: provider model, backend terminal, messaging
hermes gateway # jalankan gateway, sambungkan Telegram dengan bot token-mu

Pola yang disarankan: jalankan Hermes dengan backend Docker (bukan local) supaya shell-nya terisolasi dari mesinmu, dan arahkan workspace-nya ke clone repomu.

Checkpoint: dari Telegram, minta Hermes menjalankan git log --oneline -5 di repomu dan hasilnya benar.

Jalur C — bridge custom minimal (bot + agent headless)

Untuk memahami cara kerja semua produk di atas: pada intinya mereka hanyalah loop yang meneruskan pesan Telegram ke agent CLI headless dan mengembalikan outputnya. Versi minimal yang bisa langsung kamu pakai:

npm init -y && npm install telegraf
bridge.js
const {Telegraf} = require('telegraf');
const {execFile} = require('node:child_process');

const ALLOWED_CHAT_ID = Number(process.env.ALLOWED_CHAT_ID); // chat ID kamu
const REPO = process.env.REPO_DIR; // path repo target
const bot = new Telegraf(process.env.TELEGRAM_BOT_TOKEN);

bot.use((ctx, next) => {
if (ctx.chat?.id !== ALLOWED_CHAT_ID) return; // tolak semua orang lain
return next();
});

bot.on('text', (ctx) => {
ctx.reply('⏳ dikerjakan...');
// -p = headless: jalankan satu task penuh lalu keluar
execFile('claude', ['-p', ctx.message.text, '--output-format', 'text'],
{cwd: REPO, timeout: 15 * 60 * 1000, maxBuffer: 10 * 1024 * 1024},
(err, stdout, stderr) => {
const out = (stdout || stderr || String(err)).slice(-3500);
ctx.reply(out || '(selesai tanpa output)');
});
});

bot.launch();
TELEGRAM_BOT_TOKEN=<TOKEN> ALLOWED_CHAT_ID=<CHAT_ID> REPO_DIR=$HOME/proyekku \
node bridge.js

claude -p "<task>" menjalankan agentic loop penuh secara headless. Permission mengikuti .claude/settings.json dari Langkah 2; tambahkan --permission-mode acceptEdits bila edit file ingin auto-approve di mode remote.

Jalankan di bawah tmux atau buat service systemd/launchd supaya tetap hidup. Untuk sesi interaktif penuh (bukan satu-tembakan), pola yang umum adalah bot yang menulis ke sesi tmux send-keys — tapi mulai dari versi headless dulu.

Checkpoint: dari HP, kirim "jalankan npm test dan laporkan hasilnya" — balasan berisi hasil test sungguhan dari repomu.

Keraskan keamanannya (wajib, jalur apa pun)

Kamu baru saja menghubungkan internet ke shell di mesinmu. Empat lapis minimum:

  1. Whitelist chat ID — sudah dilakukan di atas. Verifikasi ulang: akun lain harus benar-benar diabaikan.
  2. Secret di environment, bukan di file yang bisa dibaca agent; ingat aturan deny untuk .env dari Langkah 2.
  3. Isolasi eksekusi — jalankan runner sebagai user OS terpisah tanpa akses ke dokumen pribadimu, atau di dalam container/VM. Di VPS khusus, risiko ini otomatis lebih kecil.
  4. Batas blast radius git — agent hanya bisa push branch, tidak bisa merge ke main (branch protection dari Langkah 1 menahan ini).

:::warning Jangan pernah Jangan expose bot tanpa whitelist, jangan beri agent remote kredensial production (DB prod, cloud admin), dan jangan aktifkan mode bypass permission di mesin yang menyimpan data pribadimu. :::

Checkpoint: kamu bisa menuliskan, dalam satu kalimat per item, apa kerusakan maksimal jika (a) bot token bocor, (b) agent menjalankan perintah destruktif — dan kamu nyaman dengan kedua jawaban itu.

Selanjutnya: Langkah 4 — Paralel dengan Git Worktrees