Panduan

Menjaga sesi Claude Code tetap hidup dengan tmux

Agen terminal hidup di dalam terminal. Tutup jendelanya, agennya hilang. Koneksi SSH putus, agennya hilang. tmux menaruh agen di dalam sesi yang hanya ditampilkan oleh terminal. Sesi itu tetap berjalan saat Anda tidak melihatnya. Ini setup yang kami pakai di setiap Mac untuk agen, lengkap dengan perintahnya.

Pasang dan mulai

brew install tmux
tmux new -s agent

Sekarang Anda berada di dalam sesi bernama agent. Jalankan agen di sana seperti perintah lainnya.

claude

Untuk Codex, jalankan perintahnya sendiri. Semua yang ada di halaman ini berlaku sama untuk kedua tool.

Lepas lalu kembali

Tekan Ctrl-b, lepaskan, lalu tekan d. Terminal kembali ke shell Anda, dan agen tetap bekerja di latar belakang. Untuk kembali dari terminal mana pun di mesin itu, sambungkan dengan nama sesinya.

tmux attach -t agent

Jika lupa namanya, tampilkan daftar sesi yang berjalan.

tmux ls

Lanjutkan dari ponsel

Pasang SSH client di ponsel. Termius dan Blink Shell adalah yang umum dipakai. Hubungkan ke Mac, lalu sambungkan ke sesi yang sama. Anda melihat persis apa yang dikerjakan agen dan bisa mengetik kepadanya. Keyboard ponsel kurang nyaman untuk prompt panjang. Jadi kebanyakan orang memakai ponsel untuk mengecek progres dan menjawab pertanyaan. Pekerjaan utamanya tetap dari laptop.

Khusus untuk Claude Code, Remote Control lebih nyaman di ponsel daripada SSH. Fitur ini menyambungkan aplikasi Claude ke sesi yang sedang berjalan, tanpa terminal sama sekali. Panduan menjalankan Claude Code 24/7 membahas cara menyiapkannya. tmux tetap penting di baliknya, karena Remote Control tersambung ke sesi yang harus sudah ada.

Buat lebih nyaman

Dua pengaturan membuat tmux jauh lebih mudah untuk kerja dengan agen. Taruh keduanya di file bernama .tmux.conf di folder home Anda.

set -g mouse on
set -g history-limit 50000

Yang pertama membuat Anda bisa scroll dengan trackpad atau jari. Yang kedua menyimpan cukup banyak output untuk membaca apa yang dilakukan agen sejam lalu. Restart tmux setelah menyimpan file, atau muat ulang dari dalam sesi.

tmux source-file ~/.tmux.conf

Bertahan setelah reboot

Sesi tmux hidup di memori. Restart menghapusnya. Untuk mesin tanpa pengawasan, sesi sebaiknya muncul lagi dengan sendirinya. LaunchAgent yang berjalan saat login melakukan itu. Simpan ini sebagai file bernama dev.local.agent-session.plist di folder LaunchAgents di dalam Library di home Anda.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>dev.local.agent-session</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>/opt/homebrew/bin/tmux has-session -t agent 2>/dev/null || /opt/homebrew/bin/tmux new -d -s agent</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>StartInterval</key><integer>60</integer>
</dict>
</plist>

Muat sekali, lalu file ini berjalan di setiap login dan mengecek setiap menit setelahnya.

launchctl load ~/Library/LaunchAgents/dev.local.agent-session.plist

Ini membuat sesi kosong. Agen di dalamnya sengaja tidak dijalankan ulang. Agen yang menjalankan dirinya sendiri ke tugas setengah jadi, saat tidak ada orang yang bangun, adalah sumber kejutan. Aktifkan login otomatis untuk user itu agar LaunchAgent punya sesi untuk berjalan. Lalu mulai tugasnya sendiri saat Anda tersambung lagi.

Dua sesi, dua agen

Tidak ada yang melarang Anda menjalankan Claude Code di satu sesi dan Codex di sesi lain pada mesin yang sama. Dua sesi Claude Code di dua repository juga bisa. Beri nama sesuai pekerjaannya.

tmux new -s api-refactor
tmux new -s ios-tests

Simpan setiap agen di checkout repository sendiri agar tidak mengedit file yang sama. Git worktree membuat itu murah.

Pertanyaan yang sering diajukan

Apakah tmux menjaga agen tetap berjalan jika Mac tidur?

+

Tidak. tmux melindungi dari terminal yang tertutup dan koneksi yang putus. Tidur membekukan seluruh mesin, termasuk tmux. Atasi masalah tidur secara terpisah dengan pengaturan daya, lalu pakai tmux di atasnya.

Apa bedanya tmux dan screen?

+

Keduanya menyelesaikan masalah yang sama. tmux masih dikelola, tersedia di Homebrew, dan punya pengaturan mouse dan scrollback di atas. Pakai yang Anda kuasai. Perintahnya berbeda, tetapi idenya sama.

Bisakah saya melihat output agen dari sebelum saya tersambung?

+

Bisa. Scroll ke atas di dalam sesi. Pengaturan history-limit menentukan berapa baris yang disimpan. Dengan mode mouse aktif, scroll dengan trackpad. Tanpa itu, tekan Ctrl-b lalu tombol kurung siku kiri, scroll, dan tekan q untuk keluar.

Apakah ini berfungsi di Mac hosted?

+

Ya, dan begitulah Mac untuk agen kami disiapkan. Sesi bernama agent dibuat saat login, dengan agen pilihan Anda berjalan di dalamnya. Jendela Terminal tersambung ke sesi itu di desktop yang Anda buka di browser.

Panduan terkait