Cara Menjalankan Gemini CLI di VPS Tanpa Desktop
Jalankan Gemini CLI di VPS headless dengan Node terbaru, instalasi global tanpa sudo, autentikasi API key tanpa browser, dan tmux agar tugas tetap berjalan.
Yang Anda bangun
Gemini CLI yang selalu aktif pada server milik Anda, dapat diakses melalui SSH, dan menjalankan tugas agen yang panjang setelah laptop ditutup. Instalasinya terdiri dari tiga perintah. Bagian yang membutuhkan pekerjaan adalah semua hal yang mengasumsikan adanya desktop: CLI Google ingin membuka browser untuk melakukan login, sedangkan server Anda tidak memilikinya. Karena itu, sebagian besar panduan ini membahas metode headless, Node versi terbaru yang tidak disediakan oleh distro, instalasi npm global tanpa root, autentikasi tanpa browser menggunakan API key yang tidak tersimpan dalam riwayat shell, serta tmux agar sesi SSH yang terputus tidak menghentikan tugas yang sedang berjalan.
Gemini CLI adalah program Node open-source (Apache-2.0) (@google/gemini-cli) yang berkomunikasi dengan model Gemini milik Google dan dapat membaca serta menulis file, menjalankan perintah shell, dan menggunakan tools di direktori kerja. Pada VPS, program ini menjadi agen kecil yang selalu tersedia dan dapat dibiarkan bekerja. Karena itu, akun yang digunakan untuk menjalankannya serta kredensial yang tersimpan di server lebih penting daripada satu pengaturan tertentu di sini.
Prasyarat dan hal penting yang perlu diketahui
- VPS KVM Ubuntu 24.04 baru dengan akses root atau sudo. Paket KVM apa pun dapat digunakan; CLI ini ringan dan hanya menggunakan beberapa ratus MB RAM saat tidak aktif.
- Node.js 20 atau yang lebih baru. Ini adalah batas versi minimum yang wajib dipenuhi, sedangkan paket dari distro berada di bawah versi tersebut; lihat bagian berikutnya. Node 20 sendiri mencapai akhir masa dukungan pada April 30, 2026, jadi instal versi 24.
- Akses HTTPS keluar (port 443) ke API Google. Tidak diperlukan port masuk; ini adalah client, bukan server, sehingga Anda tidak perlu membuka celah firewall untuknya.
- Metode autentikasi yang tidak memerlukan browser di server: gunakan Gemini API key berbayar dari Google AI Studio, atau Google sign-in, yang pada server headless mengharuskan Anda menempelkan kode kembali ke terminal. Metode API key lebih sesuai untuk script dan eksekusi tanpa pengawasan.
- Docker atau Podman, hanya jika Anda menginginkan isolasi
--sandbox. Ini opsional dan dibahas menjelang akhir.
Hal yang sekarang sering terlewat adalah akun, bukan browser. Google mengumumkan pada May 19, 2026 bahwa mulai June 18, 2026 Gemini CLI akan berhenti melayani request untuk pelanggan Google AI Pro dan Ultra serta pengguna yang memakainya secara gratis. Google mengarahkan pengguna tersebut ke penggantinya, Antigravity CLI (agy). Gemini CLI tetap berfungsi dengan Gemini API key berbayar, Gemini Enterprise Agent Platform API key, serta lisensi Gemini Code Assist Standard atau Enterprise milik organisasi. Tentukan metode autentikasi sebelum memulai.
Node: paket distro terlalu lama
Ubuntu 24.04 menyediakan Node 18.19.1 di repositorinya sendiri, bersama npm 9.2.0. Gemini CLI package.json mendeklarasikan engines: { node: ">=20" }, dan npm secara default tidak menghentikan proses karena ketidakcocokan versi. npm tetap menginstal paket dan mencetak peringatan yang menunjukkan perbedaannya:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@google/gemini-cli@0.50.0',
npm WARN EBADENGINE required: { node: '>=20' },
npm WARN EBADENGINE current: { node: 'v18.19.1', npm: '9.2.0' }
npm WARN EBADENGINE }Jika Anda mengabaikan peringatan tersebut, CLI berjalan pada runtime yang tidak didukung. CLI dapat berperilaku tidak semestinya atau mengalami crash saat mencapai API Node 20+ yang diharapkan tersedia. Node 18 juga mencapai akhir masa dukungan pada April 2025, sehingga tetap bukan pilihan yang dapat digunakan. Instal LTS terbaru sebelum menginstal CLI. Ada dua pilihan yang tepat: NodeSource, yaitu repo apt bertanda tangan untuk seluruh sistem, atau nvm, yaitu version manager per pengguna. Pilih salah satu.
NodeSource, jika Node ingin tersedia bagi semua pengguna pada server:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs
node --versionnode --version harus menampilkan v20.x atau yang lebih tinggi agar memenuhi persyaratan CLI. Namun, Node 20 telah mencapai akhir masa dukungan sejak April 30, 2026, jadi gunakan v24.x, yaitu LTS aktif saat ini. Node 26 dijadwalkan menjadi LTS aktif pada October 28, 2026. Periksa halaman NodeSource untuk mendapatkan skrip penyiapan terbaru. setup_24.x dalam URL tersebut adalah bagian yang harus diubah ketika LTS yang lebih baru tersedia.
nvm, jika Anda ingin menyimpan Node di dalam home satu pengguna dan tidak pernah mengelolanya dengan sudo:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
node --versionv0.40.1 dalam URL tersebut adalah versi yang berlaku saat dokumentasi ini ditulis. Periksa README nvm untuk mengetahui rilis terbaru, lalu ganti versinya sebelum menjalankan perintah tersebut. nvm memiliki keunggulan nyata untuk kebutuhan ini: nvm menginstal Node dan paket globalnya di bawah ~/.nvm, sehingga masalah izin saat instalasi global pada bagian berikutnya tidak akan terjadi. Jika memilih nvm, Anda dapat melewati langkah npm-prefix.
Instal CLI tanpa sudo npm -g
Perintah yang terlihat mudah adalah sudo npm install -g @google/gemini-cli. Jangan gunakan perintah tersebut. Prefix global yang dimiliki root menyebabkan error izin pada setiap instalasi berikutnya dan meninggalkan file milik root di cache npm Anda. File tersebut dapat menimbulkan masalah berbulan-bulan kemudian. Jalankan npm install -g biasa (tanpa sudo) pada Node sistem, dan Anda akan mendapatkan kegagalan lain:
npm error code EACCES
npm error syscall mkdir
npm error path /usr/lib/node_modules/@google
npm error errno -13
npm error Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/@google'npm sedang mencoba menulis ke /usr/lib, yang tidak dapat diakses untuk ditulis oleh pengguna Anda. Solusinya bukan sudo. Arahkan prefix global npm ke direktori home Anda agar instalasi global ditempatkan di lokasi yang Anda miliki:
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
npm install -g @google/gemini-cli
gemini --version~/.bashrc, bukan ~/.profile, digunakan dengan sengaja. tmux, yang akan Anda gunakan untuk menjalankan CLI dua bagian setelah ini, memulai shell non-login yang membaca ~/.bashrc dan melewati ~/.profile. Karena itu, baris PATH di file yang salah membuat gemini tidak terlihat tepat di tempat yang Anda perlukan. gemini --version yang menampilkan nomor versi adalah satu-satunya pengujian yang diperlukan. Jika yang muncul adalah gemini: command not found, ekspor PATH Anda tidak diterapkan. Lihat bagian tentang mode kegagalan. Pada nvm, lewati seluruh baris prefix karena nvm sudah memasang paket global di bawah direktori home Anda.
Jika sebelumnya Anda pernah menjalankan sudo npm dan sekarang melihat Your cache folder contains root-owned files, perbaiki satu kali dengan sudo chown -R $(id -u):$(id -g) ~/.npm.
Masalah autentikasi tanpa antarmuka grafis dan cara mengatasinya
Jalankan gemini secara interaktif untuk pertama kalinya. Perintah ini akan menawarkan login dengan akun Google Anda. Pada desktop, perintah tersebut membuka tab browser. Pada VPS Linux tanpa antarmuka grafis, CLI terlebih dahulu memeriksa apakah ada display. Jika DISPLAY, WAYLAND_DISPLAY, dan MIR_SOCKET tidak ditetapkan, CLI tidak mencoba membuka browser. CLI menampilkan tautan login dan menunggu Anda menempelkan kode:
Please visit the following URL to authorize the application:
https://accounts.google.com/o/oauth2/v2/auth?...
Enter the authorization code:Alur ini berfungsi melalui SSH biasa, tetapi Anda harus menggunakan browser setiap kali. Selain itu, sejak June 18, 2026, alur ini hanya dapat digunakan jika akun Google Anda masih dilayani oleh Gemini CLI.
Ada dua cara yang dapat digunakan.
Cara pertama adalah menggunakan API key. Ini merupakan pilihan default yang tepat untuk server. Buat key di Google AI Studio (aistudio.google.com) pada project yang billing-nya telah diaktifkan, karena Gemini CLI tidak lagi menyediakan penggunaan gratis. Selanjutnya, berikan key tersebut kepada CLI sebagai environment variable. CLI akan membaca GEMINI_API_KEY dan sepenuhnya melewati alur browser. Berikutnya, pastikan key tidak masuk ke history atau file yang dapat dibaca semua pengguna. Jangan ketik export GEMINI_API_KEY=AIza... pada prompt karena key tersebut akan tersimpan dalam ~/.bash_history sebagai teks biasa. Jangan pula menyimpannya dalam file yang dapat dibaca pengguna lain. Tulis key ke file dengan mode-600 yang dibaca shell saat startup:
umask 077
printf 'export GEMINI_API_KEY=%s\n' 'AIzaSyYOUR_KEY_HERE' > ~/.gemini_env
chmod 600 ~/.gemini_env
echo '[ -f ~/.gemini_env ] && . ~/.gemini_env' >> ~/.bashrc
source ~/.bashrcchmod 600 berarti hanya user Anda yang dapat membaca file tersebut. Pastikan key telah masuk ke environment dengan printenv GEMINI_API_KEY. Jika perintah tersebut tidak menampilkan apa pun, CLI kembali ke pemilih autentikasi dan tidak menggunakan key. CLI juga membaca file .env di ~/.gemini/ jika Anda memilih tata letak tersebut. Aturannya tetap sama, yaitu chmod 600 ~/.gemini/.env.
Cara kedua adalah menggunakan login Google. Pada server tanpa antarmuka grafis, cara ini tidak memerlukan tunnel atau port terbuka. Sejak June 18, 2026, cara ini terutama berguna untuk lisensi Gemini Code Assist Standard atau Enterprise milik organisasi; tetapkan GOOGLE_CLOUD_PROJECT juga. Akun personal gratis serta langganan Google AI Pro atau Ultra tidak lagi dilayani. Jalankan CLI melalui sesi SSH biasa, lalu pilih Sign in with Google:
geminiSalin URL yang ditampilkan ke browser laptop Anda, lalu setujui aksesnya. Google mengarahkan Anda ke https://codeassist.google.com/authcode, yang menampilkan authorization code. Tempelkan kode tersebut pada prompt Enter the authorization code: di VPS. Login kemudian selesai. Tidak ada proses di server yang menunggu callback, sehingga tidak ada port yang perlu dipetakan dan tidak ada ssh -L yang perlu disiapkan. OAUTH_CALLBACK_PORT hanya diperlukan untuk alur loopback yang digunakan CLI ketika menemukan display. Jika Anda terhubung dengan X11 forwarding (ssh -X), DISPLAY akan ditetapkan dan CLI menggunakan alur loopback tersebut. CLI akan mengarahkan permintaan ke http://127.0.0.1:PORT/oauth2callback pada server. Jalankan NO_BROWSER=true gemini untuk memaksa penggunaan alur penempelan kode. Cara ini berfungsi, tetapi Anda harus berada di depan browser. Karena itu, cara ini tidak cocok untuk script. Untuk proses yang dibiarkan berjalan, gunakan API key.
Untuk menggunakan Vertex AI atau project Google Cloud, bukan AI Studio, tetapkan GOOGLE_API_KEY bersama GOOGLE_GENAI_USE_VERTEXAI=true, atau gunakan GOOGLE_CLOUD_PROJECT untuk lisensi Code Assist. Terapkan disiplin environment variable yang sama dan gunakan file dengan mode-600 yang sama.
Jalankan di dalam tmux agar sesi SSH yang terputus tidak menghentikannya
Proses gemini yang Anda jalankan langsung dari shell SSH merupakan child dari shell tersebut. Jika koneksi terputus, laptop ditutup, Wi-Fi terputus, atau terjadi timeout karena tidak ada aktivitas, sshd menghapus pseudo-terminal, shell menerima SIGHUP, lalu shell juga menghentikan CLI tersebut. Tugas yang sudah berjalan selama sepuluh menit untuk mengedit file ikut berhenti, dan saat tersambung kembali tidak ada proses yang dapat dilanjutkan.
tmux mengatasi masalah ini dengan mengambil alih shell, bukan sebaliknya seperti pada sshd. Polanya sama dengan menjalankan agen coding AI pada VPS remote di dalam tmux, dan cara kerjanya juga sama di sini:
sudo apt install -y tmux
tmux new -A -s gemini
# inside the session:
gemini
# detach with Ctrl-b then d, the task keeps running
# reconnect later from any machine:
tmux attach -t geminitmux new -A -s gemini terhubung ke sesi bernama gemini jika sesi tersebut ada, dan membuatnya jika belum ada. Karena itu, jalankan perintah ini setiap kali selesai login. Shell di dalamnya dimiliki oleh server tmux yang terlepas, bukan oleh sesi SSH Anda. Jadi, jika koneksi terputus, CLI tetap berjalan. Sambungkan kembali, attach ke sesi tersebut, dan Anda kembali ke scrollback yang sama. Jika Anda menjalankan beberapa sesi agen pada satu server, gunakan satu sesi tmux untuk setiap agen. Sesi-sesi tersebut tidak dapat saling berkomunikasi di sini. Ini berbeda dengan Claude Code, yang memungkinkan satu sesi mengirimkan teks ke sesi lain pada VPS yang sama. Karena itu, jalankan setiap job Gemini secara terpisah atau koordinasikan melalui file di disk.
Untuk proses non-interaktif berbasis skrip, Gemini CLI menyediakan mode headless: gemini -p "summarise the failing tests in this repo" mencetak jawaban lalu keluar, sedangkan --output-format json menghasilkan output yang dapat dibaca mesin untuk diteruskan ke proses lain. Mode headless dengan API key tepat digunakan di dalam sesi tmux yang menjalankan batch job panjang, atau dipanggil dari entri cron. Ada satu hal yang perlu diperhatikan: cron tidak membaca file login Anda. Karena itu, berikan GEMINI_API_KEY sendiri pada baris crontab tersebut, atau minta perintah memuat ~/.gemini_env. Jika tidak, proses gagal karena kredensial tidak tersedia.
Sandboxing dan izin akses pada server yang juga menjalankan production
Agent dengan akses shell memiliki kemampuan shell. Gemini CLI dapat menjalankan perintah. Secara default, Gemini CLI meminta konfirmasi sebelum menjalankan perintah berisiko. Namun, pengguna sering memilih --yolo (menyetujui setiap pemanggilan tool secara otomatis). Setelah itu, agent dapat menghapus file, melakukan push ke git, atau mengakses service internal dengan seluruh hak akses pengguna yang menjalankannya. Pada server yang juga menjalankan production, dampaknya nyata dan bukan sekadar kemungkinan teoretis.
Tiga kontrol berikut diurutkan berdasarkan besarnya manfaat:
- Jalankan sebagai pengguna khusus tanpa hak istimewa. Jangan gunakan root dan jangan masukkan pengguna tersebut ke dalam
sudo. Buat penggunaagentdengan home directory sendiri, lalu instal Node dan CLI untuk pengguna tersebut. Dengan demikian, instruksi yang disalahpahami tetap terbatas pada akun itu. Ini adalah keputusan dengan manfaat keamanan terbesar. - Jangan simpan kredensial production di server. Jangan simpan
~/.aws/credentialsproduction, jangan menyalin.envdari production ke server, dan jangan gunakan password database yang memiliki akses tulis ke data penting. Gunakan kredensial staging atau kredensial read-only. - Gunakan sandbox bawaan. Jika Docker atau Podman sudah terpasang,
gemini --sandbox(atauGEMINI_SANDBOX=docker) menjalankan pemanggilan tool oleh agent di dalam container yang hanya me-mount direktori project saat ini, bukan seluruh filesystem host. Fitur ini bukan pengganti pengguna tanpa hak istimewa, tetapi merupakan lapisan kedua yang kuat ketika VPS yang sama menjalankan pekerjaan production.
Jika Anda menjalankan Gemini CLI berdampingan dengan tooling self-hosted lain, misalnya MCP server yang menyediakan tool untuk agent pada VPS yang sama, perlakukan setiap kemampuan tambahan sebagai perluasan permukaan yang dapat dijangkau agent. Batasi token yang diberikan kepadanya agar hanya dapat digunakan untuk satu tugas.
Kuota, biaya, dan jalur autentikasi yang Anda pilih
Jalur autentikasi menentukan cara Anda ditagih dan, sejak June 18, 2026, menentukan apakah permintaan Anda masih dilayani. Sejak tanggal tersebut, menurut pengumuman Google, Gemini CLI berhenti melayani permintaan dari pelanggan Google AI Pro dan Ultra serta pengguna yang memakainya secara gratis. Ini mencakup free tier untuk akun pribadi dan API key yang tidak ditagih. Gemini CLI tetap tersedia melalui paid Gemini API keys dan Gemini Enterprise Agent Platform API keys, yang mengenakan biaya per token, serta bagi organisasi yang memiliki lisensi Gemini Code Assist Standard atau Enterprise atau akses Google Cloud lainnya, yang penagihannya dilakukan melalui Google Cloud. Setiap tier tetap memiliki batas per menit dan per hari. Jika batas tersebut terlampaui, permintaan akan menghasilkan rate-limit error sampai jendela batas direset.
Ada dua catatan praktis. Agent tanpa pengawasan yang berjalan dalam loop dapat menghabiskan kuota dengan cepat, jadi monitor agent tersebut beberapa kali pertama sebelum Anda mempercayakannya pada cron job. Jika alasan Anda menggunakan model di sisi server adalah privasi atau inference tanpa meteran, bukan model hosted milik Google, gunakan alat yang berbeda, yaitu self-hosting open LLM dengan Ollama pada VPS. Pendekatan ini menyimpan weights dan prompts pada server Anda sendiri, tetapi model yang dijalankan jauh lebih kecil daripada Gemini.
Menjaga agar tetap diperbarui
Gemini CLI sering merilis pembaruan. Karena Anda menginstalnya ke prefix milik pengguna, pembaruan tidak pernah memerlukan sudo:
npm install -g @google/gemini-cli@latest
gemini --versionTersedia beberapa channel rilis: @latest adalah versi stabil, @preview adalah pratinjau mingguan, dan @nightly adalah versi paling mutakhir. Tetapkan ke @latest untuk apa pun yang Anda andalkan. Di nvm, paket global disimpan di bawah versi Node yang aktif. Jadi, setelah nvm use untuk berganti versi Node, Anda mungkin perlu menginstal ulang CLI. Baca catatan rilis daripada mengejar setiap patch.
Mode kegagalan, dengan string yang persis
npm WARN EBADENGINE Unsupported engine ... required: { node: '>=20' }, kemudian CLI mengalami crash saat runtime. Versi Node terlalu lama; versi pada distro adalah 18.19.1, yang juga sudah melewati akhir masa dukungan. Instal versi LTS terbaru dari NodeSource atau nvm (Node 20 memenuhi versi minimum CLI, tetapi juga sudah mencapai akhir masa dukungan sejak April 2026), konfirmasi dengan node --version, dan jika Anda menginstal beberapa versi Node, periksa apakah which node mengarah ke versi baru, bukan /usr/bin/node.
npm error code EACCES / permission denied, mkdir '/usr/lib/node_modules/...'. Instalasi global dilakukan ke prefix yang dimiliki root. Jangan gunakan sudo, tetapkan npm config set prefix ~/.npm-global, tambahkan ~/.npm-global/bin ke PATH, lalu instal ulang sebagai pengguna biasa. Jika sudo npm sebelumnya membuat file cache yang dimiliki root (Your cache folder contains root-owned files), jalankan sudo chown -R $(id -u):$(id -g) ~/.npm.
Failed to open browser, atau redirect_uri yang mengarah ke http://127.0.0.1:PORT yang tidak dapat Anda jangkau. CLI menemukan variabel display, biasanya dari ssh -X, lalu menggunakan alur loopback yang callback-nya berakhir di server. Jalankan NO_BROWSER=true gemini untuk menggunakan alur tempel kode, atau gunakan jalur API key (GEMINI_API_KEY). Pada sesi SSH biasa, Anda seharusnya melihat Enter the authorization code:; buka URL tersebut di browser laptop Anda, lalu tempel kode yang ditampilkan Google.
Proses menghilang saat koneksi SSH terputus. Anda menjalankan gemini langsung dari shell SSH, sehingga proses tersebut menjadi child shell itu dan berhenti bersama pty saat koneksi terputus. Tidak ada yang dapat dipulihkan. Mulai setiap sesi dengan tmux new -A -s gemini dan jalankan CLI di dalamnya.
Autentikasi tetap gagal meskipun key sudah ditetapkan, CLI kembali ke pemilih autentikasi, atau sebuah request mengembalikan API key not valid dengan HTTP 400. Key tidak tersedia di environment yang dilihat CLI. Konfirmasi dengan printenv GEMINI_API_KEY; jika hasilnya kosong, ~/.gemini_env Anda belum pernah di-source. Periksa apakah baris tersebut ada di ~/.bashrc, yang dibaca oleh shell interaktif, termasuk tmux, tetapi tidak dibaca oleh cron dan shell non-interaktif lainnya. Spasi atau tanda kutip yang tidak semestinya di dalam nilai key juga menghasilkan API key not valid.
429 / RESOURCE_EXHAUSTED / pesan rate limit. Anda telah mencapai kuota untuk tier autentikasi yang digunakan. Tunggu hingga periode kuota direset, kurangi kecepatan agent, atau gunakan API key berbayar. Agent yang terjebak dalam loop retry akan terus mencapai batas ini; hentikan agent tersebut dan periksa aktivitasnya.
FAQ
Bagaimana cara mengautentikasi Gemini CLI pada server headless?
Gunakan API key berbayar, bukan login melalui browser. Buat key di Google AI Studio pada project yang memiliki penagihan, simpan dalam file mode-600 yang dibaca oleh shell Anda (export GEMINI_API_KEY=...), dan CLI akan melewati seluruh alur browser OAuth. Jika Anda login dengan Google, misalnya menggunakan lisensi Code Assist Standard atau Enterprise, CLI pada mesin headless akan menampilkan URL. Buka URL tersebut di laptop, setujui, lalu tempelkan kode yang ditampilkan Google pada prompt Enter the authorization code:. Tidak ada port yang perlu dibuka dan tidak memerlukan tunnel, tetapi Anda harus berada di depan browser. Karena itu, metode ini tidak cocok untuk skrip. Akun personal gratis tidak lagi dilayani oleh Gemini CLI sejak June 18, 2026.
Mengapa instalasi global npm meminta sudo, dan bagaimana cara menghindarinya?
Karena prefix global default npm adalah /usr/lib/node_modules, yang tidak dapat ditulisi oleh user Anda, sehingga npm install -g biasa gagal dengan EACCES. Solusi yang salah adalah sudo npm -g, karena cara ini meninggalkan file milik root yang menyebabkan instalasi berikutnya gagal. Solusi yang benar adalah mengarahkan prefix ke home Anda (npm config set prefix ~/.npm-global) dan menambahkan bin ke PATH, atau menggunakan nvm, yang secara otomatis menginstal package global di bawah home Anda.
Bagaimana cara menjaga Gemini CLI tetap berjalan setelah saya terputus?
Jalankan di dalam tmux. Proses yang dimulai dari shell SSH Anda akan berhenti ketika koneksi terputus karena proses tersebut merupakan child dari shell itu. tmux menjalankan shell di bawah server yang detached sehingga tetap bertahan setelah koneksi terputus. Gunakan tmux new -A -s gemini, jalankan gemini di dalamnya, detach dengan Ctrl-b d, lalu attach kembali dengan tmux attach -t gemini.
Apakah aman menjalankan Gemini CLI pada mesin production?
Hanya jika dilakukan dengan hati-hati, karena agent yang memiliki akses shell dapat melakukan apa pun yang dapat dilakukan oleh user yang menjalankannya. Jalankan sebagai user khusus tanpa hak istimewa dan tanpa sudo, jangan simpan kredensial production di mesin tersebut, hindari persetujuan otomatis --yolo, dan gunakan --sandbox (Docker atau Podman) untuk mengisolasi pemanggilan tool dari host. Account yang digunakan untuk menjalankannya lebih penting daripada flag tunggal apa pun yang Anda tetapkan.
Apakah saya perlu membuka port firewall untuk Gemini CLI?
Tidak. Gemini CLI adalah client yang membuat panggilan HTTPS keluar ke API Google, sehingga memerlukan port keluar 443, tetapi tidak memerlukan port masuk. Login Google pada mesin headless juga tidak memerlukan port: Anda menempelkan kode kembali ke terminal, bukan menerima callback pada server. Batasi akses masuk secara ketat.