SpyBara
Go Premium

desktop.md 2026-10-28 23:57 UTC to 2026-10-29 23:57 UTC

This page contains 18 additions and 0 deletions.

2026
Thu 1 23:59 Fri 2 22:59 Sat 3 23:57 Sun 4 23:58 Tue 6 23:59 Wed 7 23:59 Thu 8 22:58 Fri 9 23:02 Sat 10 23:01 Sun 11 23:57 Tue 13 23:57 Wed 14 22:58 Thu 15 23:58 Fri 16 22:59 Mon 19 23:58 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59 Sat 24 22:59 Sun 25 23:58 Mon 26 22:57 Tue 27 22:59 Wed 28 23:57 Thu 29 23:57 Fri 30 23:01

Aplikasi desktop

Dapatkan lebih banyak dari Claude Code Desktop: sesi paralel dengan isolasi Git, tata letak pane drag-and-drop, terminal terintegrasi dan editor file, side chats, computer use, Dispatch sessions dari ponsel Anda, tinjauan diff visual, pratinjau aplikasi, pemantauan PR, konektor, dan konfigurasi enterprise.

Di aplikasi Claude Desktop, Claude Code adalah tab Code. Aplikasi ini juga memiliki chat dan Cowork, yang menangani Dispatch dan pekerjaan agentic yang lebih panjang. Halaman ini adalah referensi untuk tab Code.

Unduh untuk macOS

Build universal untuk Intel dan Apple Silicon

Unduh untuk Windows

Untuk prosesor x64

Dapatkan Claude untuk Linux (beta)

apt atau .deb untuk Ubuntu dan Debian

Untuk Windows ARM64, unduh penginstal ARM64. Di Linux, instal dengan apt; lihat Claude Desktop di Linux.

Setelah menginstal, luncurkan Claude, masuk, dan klik tab Code. Untuk panduan sesi pertama Anda, lihat panduan Memulai.

Di tab Code, setiap percakapan adalah sebuah sesi: ia memiliki riwayat chat sendiri dan folder proyek, independen dari sesi lainnya. Bilah sisi mencantumkan sesi Anda dan memungkinkan Anda menjalankan beberapa secara paralel. Dalam sesi Anda dapat:

Untuk pekerjaan berulang terjadwal, pintasan keyboard, atau mengirim tugas dari ponsel Anda, lihat halaman dan bagian yang ditautkan. Jika Anda sudah menggunakan CLI berbasis terminal, lihat perbandingan CLI untuk apa yang berlanjut.

Mulai sesi

Sebelum Anda mengirim pesan pertama, pilih lingkungan, folder proyek, mode izin, dan model di baris di bawah kotak prompt:

  • Environment: gunakan pemilih lingkungan, kontrol pertama di baris tersebut, untuk memilih di mana Claude berjalan. Lihat konfigurasi lingkungan.
  • Project folder: klik kontrol folder proyek, di sebelah pemilih lingkungan, untuk memilih folder tempat Claude bekerja.
  • Permission mode: gunakan pemilih mode untuk memilih berapa banyak otonomi yang dimiliki Claude. Anda dapat mengubah mode izin selama sesi.
  • Model: pilih model dari pemilih model di dekat ujung kanan baris. Anda dapat mengubah model selama sesi.

Ketik tugas Anda dan tekan Enter untuk memulai. Setiap sesi melacak konteksnya sendiri dan perubahan secara independen.

Bekerja dengan kode

Berikan Claude konteks yang tepat, kontrol berapa banyak yang dilakukannya sendiri, dan tinjau apa yang diubahnya.

Gunakan kotak prompt

Ketik apa yang ingin Anda lakukan Claude dan tekan Enter untuk mengirim. Claude membaca file proyek Anda, membuat perubahan, dan menjalankan perintah berdasarkan permission mode Anda. Anda dapat mengarahkan ulang Claude kapan saja: klik tombol stop untuk menghentikan segera, atau ketik koreksi dan tekan Enter untuk mengirimnya tanpa menghentikan tindakan yang sedang berjalan. Claude membaca koreksi segera setelah tindakan saat ini selesai dan menyesuaikan sebelum langkah berikutnya.

Klik tombol + di sebelah kotak prompt untuk lampiran file, skills, connectors, dan plugins.

Terima prompt yang disarankan

Setelah Claude membalas, tab Code dapat menampilkan prompt berikutnya yang disarankan sebagai teks abu-abu di kotak prompt yang kosong. Claude Code menghasilkan setiap saran dari percakapan Anda dengan permintaan latar belakang singkat yang dihitung terhadap batas penggunaan paket Anda atau biaya API Anda.

  • Gunakan saran: tekan Tab atau Right arrow untuk menempatkannya di kotak prompt, edit jika Anda mau, lalu tekan Enter untuk mengirimnya. Menekan Enter sebelum Anda menerima saran tidak akan mengirimnya.
  • Tulis prompt Anda sendiri: mulai mengetik. Saran hanya ditampilkan selama kotak prompt kosong dan tidak memiliki file terlampir.

Matikan Prompt suggestions di Settings > Code atau Settings > Claude Code untuk menghentikan saran. Setiap sesi berhenti menampilkannya saat sesi tersebut dimulai atau dilanjutkan berikutnya.

Tambahkan file dan konteks ke prompt

Untuk memberikan file kepada Claude, @mention file tersebut atau lampirkan di kotak prompt:

  • @mention files: ketik @ diikuti dengan nama file untuk menambahkan file ke konteks percakapan.
    • Di sesi cloud: @ hanya dapat menampilkan daftar file setelah Anda mengirim pesan pertama. Jika @ tidak menampilkan file apa pun, kirim pesan pertama Anda tanpa file tersebut, lalu @mention file itu di pesan berikutnya.
  • Attach files: lampirkan gambar, PDF, dan file lainnya ke prompt Anda dari tombol + di sebelah kotak prompt, atau seret dan lepas file langsung ke prompt. Ini berguna untuk berbagi tangkapan layar bug, mockup desain, atau dokumen referensi.
    • Di sesi WSL: jika menu + menampilkan Add image alih-alih Add files or photos, Anda hanya dapat melampirkan gambar. Untuk memberikan file lain dari folder sesi kepada Claude, @mention file tersebut.

Pilih permission mode

Permission modes mengontrol berapa banyak otonomi yang dimiliki Claude selama sesi: apakah itu meminta izin sebelum mengedit file, menjalankan perintah, atau keduanya. Anda dapat beralih permission modes kapan saja menggunakan pemilih mode di baris di bawah kotak prompt. Untuk menyetujui setiap perubahan sendiri, beralih ke Manual.

Untuk menetapkan mode default untuk sesi lokal baru, tambahkan permissions.defaultMode ke file pengaturan Anda. Aplikasi desktop membaca file pengaturan yang sama dengan CLI. Mode yang Anda pilih di pemilih diingat per folder dan diutamakan daripada defaultMode untuk folder itu, kecuali Plan, yang berlaku hanya untuk sesi saat ini.

Mode Settings key Behavior
Manual default Claude meminta izin sebelum mengedit file atau menjalankan perintah. Anda melihat diff dan dapat menerima atau menolak setiap perubahan.
Accept edits acceptEdits Claude secara otomatis menerima edit file dan perintah filesystem umum seperti mkdir, touch, dan mv, tetapi masih meminta izin sebelum menjalankan perintah terminal lainnya. Gunakan ini ketika Anda mempercayai perubahan file dan menginginkan iterasi yang lebih cepat.
Plan plan Claude membaca file dan menjalankan perintah untuk menjelajahi, kemudian mengusulkan rencana tanpa mengedit kode sumber Anda. Bagus untuk tugas kompleks di mana Anda ingin meninjau pendekatan terlebih dahulu.
Auto auto Claude berjalan tanpa permintaan izin reguler; sebelum tindakan seperti perintah shell dan permintaan jaringan berjalan, pengklasifikasi latar belakang memeriksa bahwa mereka selaras dengan permintaan Anda. Muncul ketika auto mode tersedia; tidak ada toggle Settings terpisah untuk itu.
Bypass permissions bypassPermissions Claude berjalan tanpa permintaan izin, kecuali untuk tindakan yang tidak disetujui otomatis oleh mode mana pun, pengklasifikasi keamanan ketika Claude bertindak di situs eksternal, atau tindakan desktop seperti menghapus sesi, meskipun tidak termasuk mengarsipkan sesi. Setara dengan --dangerously-skip-permissions di CLI. Di paket Pro dan Max, aktifkan "Allow bypass permissions mode" di Settings > Code atau Settings > Claude Code. Di paket Team dan Enterprise tidak ada toggle Settings, dan kebijakan organisasi mengontrolnya sebagai gantinya. Hanya gunakan ini di kontainer atau VM yang disandbox.

Versi sebelumnya dari tab Code memberi label pada mode ini sebagai Ask permissions, Auto accept edits, dan Plan mode.

Permission mode dontAsk hanya tersedia di CLI.

[!TIP]

Mulai tugas kompleks di Plan sehingga Claude memetakan pendekatan sebelum membuat perubahan. Setelah Anda menyetujui rencana, beralih ke Accept edits atau Manual untuk menjalankannya. Lihat plan mode untuk informasi lebih lanjut tentang alur kerja ini.

Sesi cloud mendukung Accept edits, Plan, dan Auto. Accept edits sesuai dengan mode default: sesi cloud secara otomatis menyetujui edit file, jadi pemilih menampilkan Accept edits alih-alih Manual. Bypass permissions tidak tersedia di sesi cloud, termasuk sesi di lingkungan self-hosted.

Admin enterprise dapat membatasi permission modes mana yang tersedia. Lihat enterprise configuration untuk detail.

Ketersediaan auto mode

Auto mode tersedia untuk semua pengguna di Anthropic API dan memerlukan Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, Haiku 5.5, atau model Fable. Administrator organisasi dapat menonaktifkan auto mode dengan kunci disableAutoMode di pengaturan terkelola.

Dalam deployment Enterprise yang merutekan Desktop ke Google Cloud's Agent Platform, auto mode juga tersedia secara default; lihat Auto mode on Bedrock, Agent Platform, or Foundry untuk model yang didukung.

Pratinjau aplikasi Anda

Claude dapat memulai dev server dan membukanya di pane Browser untuk memverifikasi perubahannya. Ini berfungsi untuk aplikasi web frontend serta server backend: Claude dapat menguji endpoint API, melihat log server, dan mengulangi masalah yang ditemukannya. Dalam kebanyakan kasus, Claude memulai server secara otomatis setelah mengedit file proyek. Anda juga dapat meminta Claude untuk pratinjau kapan saja. Secara default, Claude auto-verifies perubahan setelah setiap edit.

Di sesi lokal, klik path HTML, PDF, atau video di chat untuk membukanya di pane Browser.

[!NOTE]

Dalam sesi SSH, Claude tidak dapat membuka aplikasi Anda di pane Browser, karena Claude tidak memiliki tool pane tersebut di sana. Untuk melihat aplikasi sendiri, teruskan port-nya ke komputer Anda.

Jika pane Browser tidak terbuka setelah Claude memulai server di sesi lokal, klik Open pada kartu server di chat.

Dari pane Browser, Anda dapat:

  • Berinteraksi dengan aplikasi yang sedang berjalan langsung di pane Browser
  • Tonton Claude memverifikasi perubahannya sendiri secara otomatis: mengambil tangkapan layar, memeriksa DOM, mengklik elemen, mengisi formulir, dan memperbaiki masalah yang ditemukannya
  • Mulai atau hentikan server, atau hentikan semuanya sekaligus, dari menu Dev servers di header pane Browser
  • Pilih apakah Browser menyimpan cookie setelah Anda keluar dari aplikasi dengan Keep cookies di menu ⋮ pane Browser, sehingga Anda tidak perlu masuk kembali selama pengembangan

Claude membuat konfigurasi server awal berdasarkan proyek Anda. Jika aplikasi Anda menggunakan perintah dev kustom, edit .claude/launch.json agar sesuai dengan setup Anda. Lihat Configure preview servers untuk referensi lengkap.

Untuk menghapus data yang disimpan Browser, pilih Clear browsing data di menu ⋮ pane Browser. Untuk menonaktifkan Browser sepenuhnya, matikan Browser tools di Settings > Code atau Settings > Claude Code.

Jelajahi situs eksternal

Pane Browser adalah browser bertab, jadi Anda dapat membuka dokumentasi, pelacak masalah, atau situs lainnya di sebelah aplikasi yang sedang berjalan. Untuk membuka Browser, tekan Cmd+Shift+B di macOS atau Ctrl+Shift+B di Windows, atau klik Browser di bilah judul sesi. Anda dapat masuk ke situs di pane, termasuk alur sign-in popup seperti Google OAuth.

Pertama kali Anda mengklik tautan eksternal di chat, sebuah dialog menanyakan apakah tautan dibuka di pane Browser atau di browser default Anda. Untuk mengubah pilihan Anda nanti, gunakan Open links in built-in browser di menu ⋮ pane Browser. Cmd-klik di macOS atau Ctrl-klik di Windows membuka tautan di browser default Anda secara langsung.

Claude dapat membaca dan berinteraksi dengan halaman eksternal menggunakan tool yang sama yang digunakan untuk memverifikasi aplikasi Anda, dengan dua pemeriksaan keamanan tambahan:

  • Pengklasifikasi keamanan meninjau tindakan penulisan Claude di halaman eksternal, seperti mengklik dan mengetik, di setiap permission mode. Ini adalah pengklasifikasi yang sama yang digunakan auto mode, dan ketika mereka menandai tindakan, Anda mendapatkan permintaan izin terlepas dari mode.
  • Di permission modes selain Auto dan Bypass permissions, pemeriksaan domain allowlist juga berlaku sebelum Claude menavigasi ke situs baru.

Setujui tindakan Claude di situs

Pertama kali Claude bertindak di situs eksternal, kartu izin muncul dan Claude menunggu pilihan Anda: Allow once, Always allow, atau Deny. Allow once menyetujui tindakan tanpa menyimpan apa pun. Always allow menyimpan persetujuan untuk situs itu di perangkat Anda, dan Anda dapat mencabut di Settings. Setiap situs memerlukan persetujuannya sendiri, termasuk subdomain. Server dev lokal Anda dan file proyek tidak memerlukan persetujuan, jadi auto-verify terus bekerja tanpa permintaan izin.

Bahkan di situs yang disetujui, Claude tidak akan membeli item, membuat akun, atau melewati CAPTCHA tanpa input Anda. Browsing di pane Browser menggunakan model keamanan yang sama dengan Claude in Chrome extension. Lihat Using Claude in Chrome safely untuk cara Claude menangani situs sensitif dan tindakan berisiko.

Pilih antara Browser dan Chrome extension

Pane Browser menggunakan profil browser yang bersih, terpisah dari browser pribadi Anda, tanpa login atau riwayat yang disimpan. Gunakan untuk membangun dan menguji aplikasi Anda dan untuk situs yang tidak memerlukan identitas Anda. Ketika Anda ingin Claude bertindak sebagai Anda dalam sesi login Anda, gunakan Claude in Chrome extension sebagai gantinya, yang berbagi status login browser Anda.

Batasi browsing eksternal untuk organisasi Anda

Browser mengikuti site allowlist dan blocklist controls yang sama dengan Claude in Chrome extension. Jika organisasi Anda sudah mengonfigurasi daftar tersebut untuk extension, Browser menghormatinya secara otomatis. Administrator juga dapat menonaktifkan tool Claude di halaman eksternal dengan pengaturan terkelola browserExternalPageTools. Dengan tool dinonaktifkan, pengguna masih dapat mengunjungi situs eksternal; tool Claude tidak dapat membaca atau bertindak pada mereka.

Untuk menonaktifkan browsing eksternal sepenuhnya, atur pengaturan terkelola disableBrowserExternalNavigation ke true. Ini memblokir semua navigasi eksternal di Browser, termasuk situs di allowlist organisasi Anda; server dev localhost dan pratinjau file tetap berfungsi. Gunakan browserExternalPageTools untuk membiarkan pengguna terus menjelajahi situs eksternal tanpa tool Claude, dan disableBrowserExternalNavigation untuk memblokir situs eksternal untuk pengguna dan Claude.

Tinjau perubahan dengan diff view

Setelah Claude membuat perubahan pada kode Anda, diff view memungkinkan Anda meninjau modifikasi file demi file sebelum membuat pull request. Untuk membuka diff view, klik jumlah baris, seperti +12 -1, di kartu Changes pada panel detail sesi. Anda juga dapat mengklik Changes di bilah judul sesi. Diff sesi cloud terhadap branch dasar dapat tidak menyertakan perubahan yang belum di-push.

Untuk mengomentari baris tertentu, arahkan kursor ke sebuah baris dan klik + yang muncul di samping nomor barisnya untuk membuka kotak komentar. Ketik umpan balik Anda dan tekan Enter untuk menambahkan komentar. Setelah menambahkan komentar ke beberapa baris, kirimkan semua komentar sekaligus:

  • macOS: tekan Cmd+Enter
  • Windows: tekan Ctrl+Enter

Claude membaca komentar Anda dan membuat perubahan yang diminta, yang muncul sebagai diff baru yang dapat Anda tinjau.

Tinjau kode Anda

Agar Claude meninjau perubahan Anda sebelum Anda melakukan commit, masukkan /code-review di kotak prompt. Temuan akan muncul di percakapan saat peninjauan selesai.

Di sesi lokal, SSH, dan WSL, temuan muncul sebagai kartu Code review, dikelompokkan berdasarkan file. Gunakan kartu tersebut untuk menindaklanjutinya:

  • Klik Walk through in diff untuk membuka diff view dan menelusuri temuan satu per satu. Temuan di diff saat ini muncul pada barisnya, tempat Anda dapat mengklik Fix this one atau mengabaikannya.
  • Klik Apply fixes untuk meminta Claude memperbaiki temuan yang masih terbuka.

Di sesi apa pun, Anda juga dapat meminta Claude di kotak prompt untuk memperbaiki apa yang ditemukan oleh peninjauan. Untuk apa yang dicari /code-review dan argumen yang diterimanya, lihat Review locally with /code-review.

Pantau status pull request

Agar Claude memperbaiki pemeriksaan yang gagal, atau agar GitHub melakukan merge pull request, aktifkan Auto-fix atau Merge when ready. Setelah Anda membuka pull request, pull request tersebut muncul di kartu Changes pada panel detail sesi beserta status pemeriksaan CI-nya. Buka menu ⋮ di samping judulnya:

  • Auto-fix: di sesi lokal, Claude juga menanggapi komentar review baru yang ditinggalkan oleh orang selain Anda. Penulis komentar harus merupakan pemilik repositori, anggota organisasi, kolaborator, atau GitHub App.
  • Merge when ready: mengaktifkan auto-merge GitHub untuk PR. Di sesi lokal, Desktop meminta squash merge kecuali branch dasar menggunakan merge queue.
    • Di sesi SSH dan WSL: Merge when ready dinonaktifkan, jadi aktifkan auto-merge untuk pull request di GitHub
    • Jika repositori tidak mengizinkan auto-merge: Merge when ready tidak akan aktif, jadi aktifkan auto-merge di pengaturan repositori GitHub Anda terlebih dahulu
  • Tata letak sebelumnya: setelah sesi memiliki pull request, klik CI di bilah statusnya.

Untuk mengarsipkan sesi secara otomatis setelah PR di-merge atau ditutup, aktifkan auto-archive di Settings > Code atau Settings > Claude Code.

[!NOTE]

Pemantauan PR memerlukan GitHub CLI (gh) untuk diinstal dan diautentikasi di mesin Anda. Jika gh tidak diinstal, Desktop akan meminta Anda untuk memasangnya saat pertama kali Anda mencoba membuat PR.

Dalam sesi SSH, siapkan git dan gh di mesin jarak jauh sebelum Anda mengklik Create PR, karena Claude melakukan push branch dan menjalankan gh pr create di sana. Instal gh di sana sendiri, karena Desktop tidak meminta Anda melakukannya dalam sesi SSH. Kemudian periksa di sana bahwa git push berfungsi dan bahwa gh auth status melaporkan bahwa Anda sudah masuk.

Atur workspace Anda

Tab Code dibangun di sekitar pane yang dapat Anda atur dalam tata letak apa pun: chat, diff, browser, terminal, file, plan, tasks, dan subagent, bersama dengan iOS Simulator di macOS. Seret pane dengan headernya untuk memposisikan ulang, atau seret tepi pane untuk mengubah ukurannya. Tekan Cmd+\ di macOS atau Ctrl+\ di Windows untuk menutup pane yang fokus.

Untuk membuka pane lain, klik tombol ikonnya di bilah judul sesi. Arahkan kursor untuk melihat nama setiap tombol, seperti Terminal, Changes untuk tampilan diff, Browser, dan Files. Jika pane yang Anda inginkan tidak memiliki tombol di bilah judul, pilih dari menu ⋮ di sebelah tombol-tombol tersebut:

  • Ketika jendela sempit: tombol yang tidak muat dipindahkan ke dalam menu
  • Untuk pane tanpa tombol: pane seperti Background tasks dan Plan dicantumkan setelah sesi memiliki sesuatu untuk ditampilkan di pane tersebut

Untuk bekerja di seluruh layar, keluarkan pane seperti diff atau terminal ke jendela tersendiri, dan doknya kembali ketika Anda selesai. Claude terus bekerja di jendela utama.

[!NOTE]

Tata letak pane, terminal, editor file, dan view modes di bagian ini memerlukan Claude Desktop v1.2581.0 atau lebih baru. Buka Claude > Check for Updates… di macOS atau Help > Check for Updates… di Windows untuk memperbarui.

Lihat detail sesi

Panel detail sesi adalah sekumpulan kartu di sebelah chat yang menampilkan di mana sesi berjalan, apa yang diubahnya, apa yang sedang dijalankannya, dan penggunaan konteksnya. Panel muncul setelah Anda memulai sesi, selama chat cukup lebar untuk menampungnya.

Sembunyikan atau tampilkan panel detail sesi

Untuk menyembunyikan atau menampilkan panel, klik Hide session rail atau Show session rail di bilah judul sesi, atau di menu ⋮ pada bilah tersebut. Jika Anda masih tidak melihat panel, periksa tata letak tab Code mana yang Anda miliki.

Jalankan perintah di terminal

Terminal terintegrasi memungkinkan Anda menjalankan perintah bersama sesi Anda tanpa beralih ke aplikasi lain. Klik Terminal di bilah judul sesi atau tekan Ctrl+` di macOS atau Windows. Terminal terbuka di direktori kerja sesi Anda dan berbagi lingkungan yang sama dengan Claude, jadi perintah seperti npm test atau git status melihat file yang sama yang sedang diedit Claude. Untuk membuka tab terminal kedua, klik + di header pane terminal atau klik kanan folder di chat untuk memilih Open in terminal.

Jika sesi WSL tidak memiliki terminal, lihat Jika terminal atau konektor tidak tersedia. Terminal tersedia di sesi lokal dan SSH, dengan batasan pada mesin jarak jauh Windows.

Buka dan edit file

Untuk membuka file yang disebutkan Claude, klik path-nya di chat.

Untuk mengedit file sendiri, gunakan pane file:

  • Sesi lokal: Anda dapat mengedit file di dalam direktori kerja sesi, kecuali beberapa file yang hanya dapat dilihat seperti .mcp.json dan .claude/settings.json. Untuk mengubah salah satunya, buka di aplikasi lain.
  • Sesi cloud, SSH, dan WSL: pane file hanya dapat dilihat, jadi minta Claude untuk melakukan edit.

Simpan edit di pane file

Secara default, edit Anda di pane file tersimpan dengan sendirinya, sehingga pane tidak menampilkan tombol Save. Untuk menyimpan edit Anda sendiri, hapus centang Auto save di menu ⋮ pane. Dengan Auto save nonaktif, klik Save setelah Anda mengubah file untuk menulis edit Anda, atau Cancel untuk mengembalikannya.

Jika pane memperingatkan bahwa file berubah di disk, klik Override untuk menimpa versi di disk dengan edit Anda, atau Discard untuk membuang edit Anda.

Buka file di aplikasi lain

Klik kanan path file apa pun di chat, diff viewer, atau pane file untuk membuka menu konteks:

  • Attach as context: tambahkan file ke prompt berikutnya Anda
  • Open in: buka file di editor yang diinstal seperti VS Code, Cursor, atau Zed
  • Show in Finder di macOS, Show in Explorer di Windows: buka folder yang berisi
  • Copy: submenu yang menyalin Absolute path, Relative path, atau Filename file

Alihkan view modes

View modes mengontrol berapa banyak detail yang muncul di transkrip chat. Untuk mengalihkan view modes, buka menu sesi dari tanda caret di sebelah judul sesi dan pilih Transcript view, atau tekan Ctrl+O di macOS atau Windows untuk bersiklus melaluinya. Mode Thinking muncul di menu hanya setelah Claude telah menghasilkan thinking di sesi yang Anda lihat.

Mode Apa yang ditampilkan
Normal Panggilan tool yang diciutkan menjadi ringkasan, dengan respons teks penuh
Thinking Panggilan tool yang diciutkan menjadi ringkasan, ditambah thinking Claude
Verbose Setiap panggilan tool, pembacaan file, dan langkah perantara yang diambil Claude, ditambah thinking Claude

Gunakan Thinking untuk mengikuti penalaran Claude dengan panggilan tool masih diciutkan. Gunakan Verbose saat men-debug mengapa Claude mengambil tindakan tertentu. Versi Claude Desktop sebelum 1.46388.1 juga mencantumkan mode Summary, dan sesi yang masih diatur ke Summary terbuka di Normal setelah Anda memperbarui.

Pintasan keyboard

Tekan Cmd+/ di macOS atau Ctrl+/ di Windows untuk melihat semua pintasan yang tersedia di tab Code. Tabel di bagian ini menampilkan tombol macOS. Di Windows dan Linux, ganti tombol berikut:

  • Cmd+Option: tekan Alt
  • Cmd+Ctrl: tekan Ctrl+Alt
  • Cmd: tekan Ctrl

Pintasan yang diawali dengan Ctrl tetap sama di setiap platform.

Shortcut Action
Cmd / Tampilkan pintasan keyboard
Cmd N Sesi baru
Cmd Option 1–9 Di layar sesi baru pada tata letak saat ini, pilih lingkungan
Cmd Option 0 Di layar sesi baru pada tata letak saat ini, buka dialog New environment
Cmd W Tutup sesi
Ctrl Tab / Ctrl Shift Tab Beralih antar sesi
Cmd Shift ] / Cmd Shift [ Sesi berikutnya atau sebelumnya
Esc Hentikan respons Claude
Tab / Right arrow Terima prompt yang disarankan di kotak prompt yang kosong
Cmd Shift D Alihkan pane diff
Cmd Shift B Alihkan pane Browser
Cmd Shift S Pilih elemen di Browser
Ctrl ` Alihkan pane terminal
Cmd \ Tutup pane yang fokus
Cmd Ctrl W Keluarkan sesi yang fokus dari split view
Cmd ; Buka side chat
Ctrl O Siklus view modes
Cmd Shift M Buka menu mode izin
Cmd Shift I Buka menu model
Cmd Shift E Buka menu effort
1–9 Pilih item di menu terbuka

Pintasan ini berlaku untuk tab Code. Di Desktop, Shift+Tab tidak bersiklus melalui mode izin seperti yang dilakukannya di interactive mode terminal.

Periksa penggunaan

Untuk melihat seberapa penuh context window sesi ini, temukan tata letak tab Code Anda:

  • Tata letak saat ini: header kartu Context di panel detail sesi menampilkannya sebagai persentase. Buka kartu tersebut untuk melihat apa yang menggunakan window berdasarkan kategori.
  • Tata letak sebelumnya: klik cincin penggunaan di sebelah pemilih model. Popover-nya menampilkan penggunaan context window Anda.

Di tata letak mana pun, ketik /context di kotak prompt untuk mencetak rincian per kategori dari context window sesi ini di chat.

Kedua tata letak memiliki cincin penggunaan di sebelah pemilih model. Klik cincin tersebut untuk melihat penggunaan paket Anda, yang dibagikan di semua surface Claude Code Anda.

Biarkan Claude menggunakan komputer Anda

Computer use memungkinkan Claude membuka aplikasi Anda, mengontrol layar Anda, dan bekerja langsung di mesin Anda seperti yang Anda lakukan. Minta Claude untuk berinteraksi dengan alat desktop yang tidak memiliki CLI, atau mengotomatisasi sesuatu yang hanya berfungsi melalui GUI. Untuk menjalankan dan menguji aplikasi iOS, Desktop membuka pane iOS Simulator khusus sebagai gantinya mengontrol layar Anda; pane berfungsi tanpa mengaktifkan computer use.

[!NOTE]

Computer use adalah research preview di macOS dan Windows yang memerlukan rencana Pro atau Max. Ini tidak tersedia di rencana Team atau Enterprise. Aplikasi Claude Desktop harus berjalan. Di macOS, computer use memerlukan macOS 14 atau yang lebih baru.

Computer use dimatikan secara default. Aktifkan di Settings sebelum Claude dapat mengontrol layar Anda. Di macOS, Anda juga perlu memberikan izin Accessibility dan Screen Recording.

Pada macOS, computer use juga dapat berjalan di latar belakang: Claude bekerja di aplikasi yang telah Anda setujui sementara Anda terus bekerja.

[!WARNING]

Tidak seperti alat Bash yang disandbox, computer use berjalan di desktop aktual Anda dengan akses ke apa pun yang Anda setujui. Claude memeriksa setiap tindakan dan menandai potensi prompt injection dari konten di layar, tetapi batas kepercayaan berbeda. Lihat panduan keamanan computer use untuk praktik terbaik.

Kapan computer use berlaku

Claude memiliki beberapa cara untuk berinteraksi dengan aplikasi atau layanan, dan computer use adalah yang paling luas dan paling lambat. Ini mencoba alat yang paling presisi terlebih dahulu:

  • Jika Anda memiliki konektor untuk layanan, Claude menggunakan konektor.
  • Jika tugas adalah perintah shell, Claude menggunakan Bash.
  • Jika tugas adalah pekerjaan browser dan Anda memiliki Claude di Chrome yang disiapkan, Claude menggunakan itu.
  • Jika tugas adalah menjalankan atau menguji aplikasi iOS, Claude menggunakan pane iOS Simulator, yang tidak menggunakan kontrol layar.
  • Jika tidak ada yang berlaku, Claude menggunakan computer use.

Per-app access tiers memperkuat ini: browser dibatasi hanya tampilan, dan terminal serta IDE dibatasi hanya klik, mengarahkan Claude ke alat khusus bahkan ketika computer use aktif. Kontrol layar dicadangkan untuk hal-hal yang tidak dapat dijangkau oleh yang lain, seperti aplikasi native, panel kontrol perangkat keras, atau alat proprietary tanpa API.

Aktifkan computer use

Computer use dimatikan secara default. Jika Anda meminta Claude melakukan sesuatu yang membutuhkannya saat dimatikan, Claude memberi tahu Anda bahwa itu dapat melakukan tugas jika Anda mengaktifkan computer use di Settings.

1. Perbarui aplikasi desktop

Pastikan Anda memiliki versi terbaru Claude Desktop. Pada macOS dan Windows, unduh atau perbarui di claude.com/download; di Linux, perbarui melalui manajer paket Anda (instruksi). Kemudian mulai ulang aplikasi.

2. Aktifkan toggle

Di aplikasi desktop, buka Settings, lalu:

  • Jika menu Settings mencantumkan This computer: buka This computer > System
  • Jika tidak: buka Capabilities

Di bawah Computer use, aktifkan Enable computer use:

  • Windows: toggle berlaku segera dan setup selesai
  • macOS: lanjutkan ke langkah berikutnya

Jika Anda tidak melihat toggle, konfirmasi Anda menggunakan macOS atau Windows dengan rencana Pro atau Max, kemudian perbarui dan mulai ulang aplikasi.

3. Berikan izin macOS

Di macOS, berikan dua izin sistem sebelum toggle berlaku:

  • Accessibility: memungkinkan Claude mengklik, mengetik, dan menggulir
  • Screen Recording: memungkinkan Claude melihat apa yang ada di layar Anda

Halaman Settings menunjukkan status saat ini dari setiap izin. Jika salah satu ditolak, klik badge untuk membuka pane System Settings yang relevan.

App permissions

Pertama kali Claude perlu menggunakan aplikasi, prompt muncul di sesi Anda. Klik Allow for this session atau Deny. Persetujuan berlaku untuk sesi saat ini, atau 30 menit di sesi yang dispawn Dispatch.

Prompt juga menunjukkan tingkat kontrol apa yang diperoleh Claude untuk aplikasi itu. Tingkat ini diperbaiki berdasarkan kategori aplikasi dan tidak dapat diubah:

Tier Apa yang dapat dilakukan Claude Berlaku untuk
View only Lihat aplikasi di tangkapan layar Browser, platform perdagangan
Click only Klik dan gulir, tetapi tidak mengetik atau menggunakan pintasan keyboard Terminal, IDE
Full control Klik, ketik, seret, dan gunakan pintasan keyboard Semuanya yang lain

Aplikasi dengan jangkauan luas, seperti terminal, Finder atau File Explorer, dan System Settings atau Settings, menampilkan peringatan tambahan di prompt sehingga Anda tahu apa yang disetujui.

Di Settings, bagian Computer use tempat Anda mengaktifkan computer use mencakup opsi-opsi berikut:

  • Denied apps: tambahkan aplikasi di sini untuk menolaknya tanpa meminta. Claude mungkin masih mempengaruhi aplikasi yang ditolak secara tidak langsung melalui tindakan di aplikasi yang diizinkan, tetapi tidak dapat berinteraksi dengan aplikasi yang ditolak secara langsung.
  • Unhide apps when Claude finishes: saat computer use tidak berjalan di latar belakang, Claude menyembunyikan jendela lain Anda saat bekerja sehingga hanya berinteraksi dengan aplikasi yang disetujui. Ketika Claude selesai, jendela yang disembunyikan dipulihkan kecuali Anda mematikan pengaturan ini.

Kelola sesi

Setiap sesi adalah percakapan independen dengan konteks dan perubahannya sendiri. Anda dapat menjalankan beberapa sesi secara paralel, membuat side chat, membiarkan Claude memeriksa dan mengirim pesan ke sesi Anda yang lain, mengirim pekerjaan ke cloud, atau membiarkan Dispatch memulai sesi untuk Anda dari ponsel Anda.

Bekerja secara paralel dengan sesi

Klik + New di sidebar, atau tekan Cmd+N di macOS atau Ctrl+N di Windows, untuk bekerja pada beberapa tugas secara paralel. Tekan Ctrl+Tab dan Ctrl+Shift+Tab untuk beralih antar sesi.

Anda juga dapat membuka sesi kedua di samping sesi saat ini atau di jendelanya sendiri:

  • Berdampingan: tahan Option di macOS atau Alt di Windows dan klik sesi di sidebar, atau klik kanan sesi tersebut dan pilih Open in, lalu Split view
  • Di jendelanya sendiri: tahan Cmd di macOS atau Ctrl di Windows dan klik sesi, atau klik kanan sesi tersebut dan pilih Open in, lalu New window

Dalam tampilan split, pane yang terakhir Anda buka atau klik memiliki fokus, dan pane lainnya diredupkan. Untuk mengubah sesi yang ditampilkan sebuah pane, klik di pane tersebut untuk memberinya fokus, lalu klik sesi di sidebar. Untuk mengeluarkan sesi yang difokuskan dari tampilan split, tekan Cmd+Ctrl+W di macOS atau Ctrl+Alt+W di Windows.

Jalankan sesi di worktree-nya sendiri

Dalam proyek yang merupakan repositori Git, aktifkan Worktree sebelum Anda memulai sesi untuk menjalankannya di Git worktree-nya sendiri, yaitu salinan proyek yang terisolasi. Secara default, Worktree nonaktif dan Claude bekerja langsung di folder proyek. Pada tata letak saat ini, aktifkan tombol Worktree di baris di bawah kotak prompt.

  • Dengan penyedia pihak ketiga: jika baris di bawah kotak prompt menampilkan kontrol folder proyek tetapi tidak ada tombol Worktree, klik kontrol tersebut dan aktifkan Worktree
  • Sebagai default untuk lingkungan lokal atau SSH tersimpan: atur Worktree saat Anda membuat atau mengedit lingkungan tersebut
  • Tata letak sebelumnya: pilih kotak centang worktree di sebelah nama branch, di atas kotak prompt

Worktree disimpan di <project-root>/.claude/worktrees/ secara default. Untuk menyimpannya di direktori kustom:

  • Sesi lokal: atur Worktree location di Settings > Code atau Settings > Claude Code
  • Sesi SSH: atur Worktree folder pada koneksi SSH

Anda juga dapat mengatur Branch prefix di Settings > Code atau Settings > Claude Code. Desktop menambahkannya di depan setiap nama branch worktree, yang berguna untuk menjaga branch yang dibuat Claude tetap terorganisir.

Untuk menyertakan file yang diabaikan git seperti .env di worktree baru, buat file .worktreeinclude di root proyek Anda. Lihat Apa yang dibagikan worktree dengan checkout utama untuk mengetahui dari mana sesi worktree membaca pengaturan proyek, hook, dan skill.

[!NOTE]

Isolasi sesi memerlukan Git. Sebagian besar Mac menyertakan Git secara default. Jalankan git --version di Terminal untuk memeriksa; jika menampilkan nomor versi, Git sudah terinstal. Jika Anda mengalami kesalahan Git, tanyakan Claude di Cowork untuk membantu memecahkan masalah setup Anda.

Tambahkan folder ke sesi

Tambahkan folder sebelum sesi dimulai atau saat sesi berjalan:

Arsipkan sesi

Sebelum Anda mengarsipkan sesi yang worktree-nya memiliki perubahan yang belum di-commit, lihat Simpan perubahan yang belum di-commit saat sesi diarsipkan. Untuk mengarsipkan sesi, arahkan kursor ke sesi tersebut di sidebar, buka menunya, dan pilih Archive. Sesi berpindah ke sesi yang diarsipkan Anda.

Agar sesi mengarsipkan dirinya sendiri ketika pull request-nya di-merge atau ditutup, aktifkan Auto-archive after PR merge or close di Settings > Code atau Settings > Claude Code. Sesi cloud dan sesi yang masih berjalan tidak mengarsipkan dirinya sendiri.

Simpan perubahan yang belum di-commit saat sesi diarsipkan

Anda dapat kehilangan perubahan yang belum di-commit di worktree sesi saat sesi tersebut diarsipkan, jadi lakukan commit terlebih dahulu untuk apa yang ingin Anda simpan:

  • Jika Desktop menanyakan tentang perubahan tersebut: pilih Archive anyway untuk membuangnya, atau batalkan dan lakukan commit
  • Jika satu-satunya perubahan adalah file yang tidak terlacak: commit file yang ingin Anda simpan sebelum pull request yang dibuka Claude di sesi tersebut di-merge, karena Desktop kemudian dapat menghapusnya tanpa bertanya
  • Dalam kasus lainnya: worktree tetap berada di disk beserta perubahannya. Untuk sesi lokal, Desktop menghapus keduanya sekitar 30 hari setelah sesi diarsipkan atau terakhir kali Anda membukanya, mana yang lebih akhir. Untuk menyimpan perubahan, buka sesi dari tab Archived dan pilih Unarchive

Atur dan temukan sesi

Anda mengelompokkan, mengurutkan, dan menemukan sesi dari sebuah ikon di daftar sesi sidebar:

  • Tata letak saat ini: arahkan kursor ke judul di daftar sesi untuk menampilkan ikon Group and sort, lalu klik ikon tersebut. Untuk menemukan sesi yang diarsipkan, pilih View all, baris terakhir menu, lalu buka tab Archived.
  • Tata letak sebelumnya: ikon Filter ditampilkan tanpa perlu mengarahkan kursor. Klik ikon tersebut untuk mengatur daftar dengan Group by atau Sort by. Untuk menampilkan sesi yang diarsipkan, pilih Status, lalu Archived.

Untuk mengganti nama sesi, buka sesi tersebut dan klik judul sesi di bilah judul.

Periksa dan bebaskan konteks

Untuk memeriksa penggunaan konteks, lihat Check usage. Ketika konteks penuh, Claude secara otomatis merangkum percakapan dan terus bekerja. Anda juga dapat mengetik /compact untuk memicu perangkuman lebih awal dan membebaskan ruang konteks. Lihat context window untuk detail tentang cara compaction bekerja.

Dapatkan notifikasi saat sesi selesai

Aplikasi desktop mengirimkan notifikasi OS ketika sesi Code menyelesaikan tugas dan Anda tidak sedang melihat sesi tersebut. Untuk sesi yang termasuk dalam proyek, Anda mendapatkan notifikasi proyek sebagai gantinya.

Tanyakan pertanyaan sampingan tanpa menggoyahkan sesi

Side chat memungkinkan Anda mengajukan pertanyaan kepada Claude yang menggunakan konteks sesi Anda tetapi tidak menambahkan apa pun kembali ke percakapan utama. Gunakan ketika Anda ingin memahami sepotong kode, memeriksa asumsi, atau menjelajahi ide tanpa mengarahkan sesi ke arah yang berbeda.

Tekan Cmd+; di macOS atau Ctrl+; di Windows untuk membuka side chat, atau ketik /btw di kotak prompt. Side chat dapat membaca semuanya di thread utama hingga titik itu. Ketika selesai, tutup side chat dan lanjutkan sesi utama di mana Anda tinggalkan.

Side chats tersedia di sesi lokal, SSH, dan WSL. Aplikasi desktop tidak menyimpan side chats ke disk, jadi Anda tidak dapat kembali ke satu setelah menutup aplikasi.

Tonton background tasks

Pane tasks menunjukkan pekerjaan latar belakang yang berjalan di dalam sesi saat ini: subagent, perintah shell latar belakang, dan dynamic workflows. Setelah sesi memiliki pekerjaan latar belakang, buka pane tersebut melalui Background tasks di menu ⋮ pada bilah judul.

Klik entri apa pun untuk melihat outputnya di pane subagent atau hentikan. Untuk melihat apa yang dilakukan sesi lain, gunakan sidebar, atau tanyakan Claude untuk memeriksa mereka untuk Anda.

Bekerja lintas sesi

Claude dapat membuat daftar sesi tab Code Anda yang lain, membaca apa yang telah dilakukan masing-masing, dan mengirim pesan di antara mereka. Tanyakan dalam bahasa biasa: "sesi mana yang menyentuh refactor auth?", "apa yang disimpulkan sesi API?", atau "beritahu sesi pembayaran bahwa skema berubah".

Anda juga dapat meminta Claude untuk mengganti nama atau mengarsipkan sesi. Misalnya, minta Claude untuk mengarsipkan sesi yang PR-nya telah di-merge.

Melalui surface ini, Claude hanya melihat sesi yang dijalankan aplikasi desktop itu sendiri: lokal, SSH, dan sesi WSL di tab Code. Claude tidak melihat sesi cloud, atau sesi yang Anda mulai dari CLI terminal atau ekstensi VS Code, bahkan di worktrees dari proyek yang sama, jadi dengan sembilan worktrees terminal terbuka dan dua sesi desktop, Claude yang menjawab di salah satunya melaporkan satu sesi desktop lainnya. Claude tidak pernah membuat daftar sesi tempat Anda bertanya. Secara default, Claude melihat 20 sesi yang paling aktif baru-baru ini dan melewati sesi yang diarsipkan kecuali Anda memintanya. Cross-session messaging secara terpisah memungkinkan Claude mengirim pesan ke sesi Claude Code Anda yang lain, termasuk sesi terminal.

Ketika Claude mengirim pesan ke sesi lain melalui surface ini, Claude Code menampilkannya di sana sebagai kartu berlabel dengan judul sesi pengirim dan tautan kembali, sehingga Anda selalu dapat mengetahui dari mana pesan berasal. Jika sesi penerima sedang menjalankan tugas, Claude Code menahan pesan dan Claude membacanya setelah pekerjaan saat ini selesai. Claude penerima dapat membalas, dan Claude Code mengirimkan balasan kembali melalui surface ini. Claude tidak dapat mengirimkan ke sesi yang diarsipkan, dan memberi tahu Anda ketika pesan tidak tersampaikan.

Claude Code menerapkan tiga perilaku keamanan lintas sesi:

  • Anda mendapatkan kartu persetujuan sebelum Claude mengarsipkan sesi, kecuali dalam Auto mode dan Bypass permissions mode, di mana Claude dapat mengarsipkan sesi tanpa kartu tersebut. Agar ditanya terlebih dahulu, beralihlah ke Manual.
  • Claude Code memeriksa setiap pesan dari surface ini terhadap kontrol inbound sesi penerima, bahkan ketika sesi penerima tidak memiliki cross-session messaging itu sendiri. Jika Anda mengatur crossSessionInbound ke refuse di sesi penerima, Claude Code menghapus pesan dari surface ini. Claude Code melaporkan penolakan ke aplikasi desktop Claude. Sebelum v2.1.234, Claude Code menghapus setiap pesan dari surface ini ke sesi penerima tanpa cross-session messaging.
  • Claude Code mengutip setiap pesan masuk dan mengatribusikannya ke sesi yang mengirimnya, dan Claude masih mengikuti pengaturan izin sesi penerima sendiri saat bertindak atas satu.

Mulai tugas yang disarankan Claude

Ketika Claude memperhatikan sesuatu yang layak diperbaiki di luar tugas Anda saat ini, Claude menyarankan pekerjaan tersebut sebagai tugas. Di sesi lokal dan SSH pada tata letak saat ini, saran tersebut berupa kartu di chat, dan tombol-tombolnya memulai tugas tersebut atau mempertahankannya di sesi ini:

  • Start: memulai tugas di sesi lain. Secara default, tugas berjalan di lingkungan sesi saat ini. Kartu kemudian menampilkan status sesi yang dimulai, dan sidebar mencantumkan sesi yang dimulai di bawah sesi saat ini.
  • Do it here: mengirim tugas ke sesi saat ini sebagai pesan
  • Options: tinjau atau ubah pengaturan seperti lingkungan, model, worktree, dan izin sebelum Anda mengklik Start
  • Start all: ketika kartu mencantumkan beberapa tugas, memulai setiap tugas di sesinya sendiri tanpa menunggu satu tugas selesai sebelum memulai tugas berikutnya

Di sesi cloud, serta di sesi lokal dan SSH pada tata letak sebelumnya, saran tersebut berupa kartu Suggested task. Untuk memulai tugas sesuai yang tertulis pada tombol utama kartu, misalnya Send to cloud atau Start with worktree, klik tombol tersebut. Klik tanda caret di samping tombol utama untuk cara lain memulai tugas, termasuk Do it here.

Jalankan tugas jangka panjang di cloud

Untuk refaktor besar, suite pengujian, migrasi, atau tugas jangka panjang lainnya, pilih lingkungan di bawah Cloud di pemilih lingkungan saat memulai sesi. Sesi cloud berjalan pada infrastruktur yang dikelola Anthropic secara default dan terus berjalan bahkan jika Anda menutup aplikasi atau mematikan komputer. Periksa kembali kapan saja untuk melihat kemajuan atau mengarahkan Claude ke arah yang berbeda. Anda juga dapat memantau sesi cloud dari claude.ai/code atau aplikasi Claude mobile.

Sesi cloud juga mendukung beberapa repositori. Pilih repositori:

  • Tata letak saat ini: di baris di bawah kotak prompt, setelah Anda memilih lingkungan cloud.
  • Tata letak sebelumnya: di atas kotak prompt. Untuk menambahkan repositori lain, klik + di sebelah repositori yang dipilih.

Lihat Gunakan Claude Code di cloud untuk informasi lebih lanjut tentang cara kerja sesi cloud. Ketika satu badan pekerjaan memerlukan banyak sesi cloud, gunakan proyek: Claude memulai dan melacak sesi untuk Anda dari satu percakapan. Buat proyek berisi langkah-langkahnya.

[!NOTE]

Tugas di sesi SSH juga dapat terus berjalan saat Desktop terputus, tetapi dengan akun Claude, tugas tersebut dapat berhenti ketika sesi masuknya kedaluwarsa.

Lanjutkan di surface lain

Untuk melanjutkan sesi di tempat lain, buka menu sesi dari tanda caret di samping judul sesi atau dari baris sesi di sidebar, lalu pilih Open in:

  • Pilih Cloud untuk melanjutkan sesi sebagai sesi cloud, dengan percakapan Anda dibawa sebagai ringkasan. Sebelum Anda mengonfirmasi, dialog menyatakan apakah file Anda juga ikut dipindahkan dan apakah sesi ini diarsipkan setelah sesi cloud siap. Anda tidak dapat memindahkan sesi yang berjalan melalui SSH atau di WSL dengan cara ini.
  • Pilih editor yang terinstal atau file manager Anda untuk membuka folder sesi di disk di sana.

Kontrol sesi mana yang muncul di perangkat Anda yang lain

Sesi lokal muncul di perangkat Anda yang lain setelah Remote Control menghubungkannya. Sesi yang terhubung muncul di daftar sesi di claude.ai/code dan di aplikasi Claude pada perangkat yang masuk ke akun claude.ai Anda.

Sesi lokal terhubung ketika Anda mengaktifkan Remote Control untuknya, atau ketika sesi tersebut terhubung secara otomatis saat dimulai:

  • Anda mengaktifkannya untuk sesi tersebut: dengan sakelar Remote Control milik sesi tersebut, atau dengan mengetik /remote-control di kotak prompt-nya.
  • Sesi terhubung saat dimulai: sesi baru terhubung secara otomatis selama Connect new sessions to Remote Control aktif di Settings > Code atau Settings > Claude Code. Jika Anda belum pernah mengubah pengaturan tersebut, Desktop mengikuti remoteControlAtStartup di pengaturan pengguna atau pengaturan terkelola Anda, lalu default organisasi Anda.

Untuk melihat apakah sesi terhubung, periksa sakelar Remote Control di kartu Environment pada panel detail sesi-nya.

Untuk menjaga agar sesi tidak muncul di perangkat Anda yang lain, matikan Remote Control pada tingkat yang Anda perlukan:

  • Satu sesi: matikan sakelar Remote Control-nya. Di sesi yang terhubung saat dimulai, mengetik /remote-control membiarkan Remote Control tetap aktif dan menampilkan Remote Control is already on. This session connected automatically when it started. Klik Turn off pada baris tersebut untuk memutuskan koneksi.
  • Sesi Desktop baru di komputer ini: matikan Connect new sessions to Remote Control di Settings > Code atau Settings > Claude Code. Jika sudah menunjukkan nonaktif, aktifkan lalu matikan agar Desktop menyimpan pilihan Anda. Setelah disimpan, pengaturan ini diutamakan daripada remoteControlAtStartup dan default.
  • Sesi apa pun di komputer ini, termasuk CLI: atur disableRemoteControl ke true di ~/.claude/settings.json untuk mencegah sesi terhubung. Sesi yang sudah terhubung saat Anda menyimpan file tetap terhubung sampai Anda mematikan Remote Control untuknya.

Untuk menyembunyikan sesi yang sudah muncul di perangkat Anda yang lain, arsipkan sesi tersebut di Desktop. Desktop juga mengarsipkan salinan Remote Control dari sesi tersebut, sehingga sesi tersebut keluar dari daftar sesi default di perangkat tersebut. Untuk melihat atau menghapusnya di sana, lihat Archive sessions.

Sesi dari Dispatch

Dispatch adalah percakapan persisten dengan Claude yang berada di Cowork. Anda mengirim pesan Dispatch dengan tugas, dan itu memutuskan cara menanganinya.

Tugas dapat berakhir sebagai sesi Code dengan dua cara: Anda meminta satu secara langsung, seperti "buka sesi Claude Code dan perbaiki bug login", atau Dispatch memutuskan tugas adalah pekerjaan pengembangan dan menspawn satu sendiri. Tugas yang biasanya diarahkan ke Code termasuk memperbaiki bug, memperbarui dependensi, menjalankan tes, atau membuka pull request. Penelitian, pengeditan dokumen, dan pekerjaan spreadsheet tetap di Cowork.

Ikuti sesi yang dimulai Dispatch

Sesi yang dimulai Dispatch muncul di sidebar tab Code bersama sesi Anda yang lain. Dengan pengelompokan dan pengurutan default sidebar, cari sesi terbaru di grup untuk folder tempat sesi tersebut berjalan. Anda mendapatkan notifikasi push di ponsel Anda ketika sesi selesai atau memerlukan persetujuan Anda.

Jika Anda memiliki computer use diaktifkan, sesi Code yang dispawn Dispatch juga dapat menggunakannya. Persetujuan aplikasi di sesi tersebut kedaluwarsa setelah 30 menit dan meminta kembali, daripada berlangsung untuk sesi penuh seperti sesi Code biasa.

Siapkan Dispatch

Untuk setup, pairing, dan pengaturan Dispatch, lihat artikel bantuan Dispatch. Dispatch memerlukan rencana Pro atau Max dan tidak tersedia di rencana Team atau Enterprise.

Dispatch adalah salah satu dari beberapa cara untuk bekerja dengan Claude ketika Anda jauh dari terminal Anda. Untuk perbandingan dengan opsi lain, lihat Platforms and integrations.

Perluas Claude Code

Hubungkan layanan eksternal, tambahkan alur kerja yang dapat digunakan kembali, sesuaikan perilaku Claude, dan konfigurasikan server pratinjau. Untuk mengelola connectors, skills, dan plugins di satu tempat, klik Customize di sidebar. Cowork di aplikasi Desktop mengambil skills, plugins, dan connectors dari konfigurasi Customize ini, yang disinkronkan melalui akun claude.ai Anda, bukan dari direktori ~/.claude CLI.

Claude Code juga memuat skills dan plugins yang diaktifkan untuk akun claude.ai Anda dalam sesi terminal di mana Anda masuk dengan akun yang sama. Lihat Skills synced from claude.ai dan Plugins synced from claude.ai.

Hubungkan alat eksternal

Connectors adalah MCP servers dengan alur pengaturan grafis.

Klik + di sebelah kotak prompt, sebelum atau selama sesi, untuk menambahkan konektor dalam sesi lokal atau SSH dengan akun Claude. Pilih Add connectors untuk membuka direktori konektor. Jika menu menampilkan Connectors, pilih itu, lalu Browse connectors.

[!NOTE]

Kasus-kasus berikut dibahas di halaman lain:

Setelah terhubung, Claude dapat membaca kalender Anda, mengirim pesan, membuat masalah, dan berinteraksi dengan alat Anda secara langsung. Anda dapat meminta Claude konektor apa yang dikonfigurasi di sesi Anda. Untuk mengelola atau memutuskan konektor, klik Customize di sidebar dan buka Connectors.

Untuk integrasi yang tidak tercantum di Connectors, tambahkan MCP servers secara manual melalui file pengaturan. Anda juga dapat membuat custom connectors.

Gunakan skills

Skills memperluas apa yang dapat dilakukan Claude. Claude memuatnya secara otomatis ketika relevan, atau Anda dapat menginvokan satu secara langsung: ketik / di kotak prompt atau klik tombol + dan pilih Slash commands untuk melihat apa yang tersedia. Ini mencakup built-in commands, custom skills Anda, project skills dari basis kode Anda, dan skills dari installed plugins apa pun. Pilih satu dan itu muncul disorot di bidang input. Ketik tugas Anda setelahnya dan kirim seperti biasa.

Anda dapat mengirim perintah saat Claude sedang bekerja, sama seperti pesan lainnya, dan sesi kembali ke idle setelah giliran selesai.

Sesi lokal memuat personal skills Anda dari ~/.claude/skills/. Sesi SSH membaca ~/.claude/skills/ dari direktori home host jarak jauh, bukan dari mesin Anda.

Sesi lokal dan cloud juga memuat skills yang diaktifkan untuk akun claude.ai Anda, kecuali sesi lokal ketika organisasi Anda menetapkan disableSideloadFlags. Sesi cloud memuatnya alih-alih ~/.claude/skills/, seperti yang dijelaskan dalam Skills in Cowork and cloud sessions.

Instal plugins

Plugins adalah paket yang dapat digunakan kembali yang menambahkan skills, agents, hooks, MCP servers, dan konfigurasi LSP ke Claude Code. Anda dapat memasang plugins dari aplikasi desktop tanpa menggunakan terminal.

Dalam sesi lokal atau sesi SSH, klik + di sebelah kotak prompt dan pilih Add plugins untuk membuka plugin browser. Jika menu menampilkan Plugins, pilih itu, lalu Browse plugins, atau Manage plugins untuk mengaktifkan, menonaktifkan, atau mencopot plugins.

Anda dapat membatasi plugins ke akun pengguna Anda, proyek tertentu, atau lokal saja. Jika organisasi Anda mengelola plugins secara terpusat, plugins tersebut tersedia di sesi desktop dengan cara yang sama seperti di CLI, kecuali yang ditahan aplikasi desktop di bawah disableSideloadFlags.

Plugin browser tidak tersedia di sesi cloud, dan plugins yang Anda instal dari aplikasi desktop tidak tersedia untuk sesi cloud. Sesi cloud juga tidak memasang plugins yang dideklarasikan oleh .claude/settings.json repository, seperti yang dijelaskan dalam What carries over from your setup. Plugins tidak tersedia di sesi WSL. Untuk referensi plugin lengkap termasuk membuat plugins Anda sendiri, lihat plugins.

Konfigurasikan server pratinjau

Claude secara otomatis mendeteksi setup dev server Anda dan menyimpan konfigurasi di .claude/launch.json di root folder yang Anda pilih saat memulai sesi. Preview menggunakan folder ini sebagai direktori kerjanya, jadi jika Anda memilih folder induk, subfolder dengan server dev mereka sendiri tidak akan terdeteksi secara otomatis. Untuk bekerja dengan server subfolder, mulai sesi di folder itu secara langsung atau tambahkan konfigurasi secara manual.

Untuk menyesuaikan cara server Anda dimulai, misalnya menggunakan yarn dev alih-alih npm run dev atau mengubah port, edit .claude/launch.json. File mendukung JSON dengan komentar.

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 3000
    }
  ]
}

Anda dapat menentukan beberapa konfigurasi untuk menjalankan server berbeda dari proyek yang sama, seperti frontend dan API. Lihat examples di bawah.

Auto-verify changes

Ketika autoVerify diaktifkan, Claude secara otomatis memverifikasi perubahan kode setelah mengedit file. Mengambil tangkapan layar, memeriksa kesalahan, dan mengkonfirmasi perubahan berfungsi sebelum menyelesaikan responsnya.

Auto-verify aktif secara default. Nonaktifkan per-proyek dengan menambahkan "autoVerify": false ke .claude/launch.json, atau matikan Auto-verify changes di menu ⋮ pada panel Browser.

{
  "version": "0.0.1",
  "autoVerify": false,
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 3000
    }
  ]
}

Ketika dinonaktifkan, alat pratinjau masih tersedia dan Anda dapat meminta Claude untuk memverifikasi kapan saja. Auto-verify membuatnya otomatis setelah setiap edit.

Configuration fields

Setiap entri dalam array configurations menerima bidang berikut:

Field Type Description
name string Pengidentifikasi unik untuk server ini
runtimeExecutable string Perintah untuk dijalankan, seperti npm, yarn, atau node
runtimeArgs string[] Argumen yang dilewatkan ke runtimeExecutable, seperti ["run", "dev"]
port number Port yang didengarkan server Anda. Default ke 3000
cwd string Direktori kerja relatif terhadap root proyek Anda. Default ke root proyek. Gunakan ${workspaceFolder} untuk mereferensikan root proyek secara eksplisit
env object Environment variable tambahan sebagai pasangan kunci-nilai, seperti { "NODE_ENV": "development" }. Jangan letakkan rahasia di sini karena file ini di-commit ke repo Anda. Untuk rahasia, lihat Set environment variables for dev servers.
autoPort boolean Cara menangani konflik port. Lihat Port conflicts
program string Skrip untuk dijalankan dengan node. Lihat when to use program vs runtimeExecutable
args string[] Argumen yang dilewatkan ke program. Hanya digunakan ketika program diatur
url string Alamat yang dibuka pratinjau alih-alih http://localhost:<port>. Lihat open the preview at a specific URL
When to use program vs runtimeExecutable

Gunakan runtimeExecutable dengan runtimeArgs untuk memulai dev server melalui package manager. Misalnya, "runtimeExecutable": "npm" dengan "runtimeArgs": ["run", "dev"] menjalankan npm run dev.

Gunakan program ketika Anda memiliki skrip mandiri yang ingin Anda jalankan dengan node secara langsung. Misalnya, "program": "server.js" menjalankan node server.js. Lewatkan flag tambahan dengan args.

Open the preview at a specific URL

Secara default, pratinjau membuka http://localhost:<port>. Atur url ketika server Anda memerlukan alamat yang berbeda. Kasus umum adalah server yang memerlukan HTTPS lokal, aplikasi yang menggunakan subdomain *.localhost, dan aplikasi yang menandatangani Anda melalui pengalihan.

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 8443,
      "url": "https://localhost:8443"
    }
  ]
}

Alamat localhost membuka secara langsung, persis seperti alamat port default. Ini mencakup localhost, subdomain *.localhost apa pun, 127.0.0.1, dan ::1. Untuk keamanan, url localhost harus hanya asal server Anda — tanpa path atau query, dan port harus cocok dengan port entri. Untuk menampilkan halaman tertentu, minta Claude untuk menavigasi ke sana setelah pratinjau dibuka. url localhost dengan path, query, atau port yang tidak cocok dilaporkan sebagai kesalahan konfigurasi yang menamai url dan menunjukkan perbaikannya.

Untuk alamat lain apa pun, Desktop meminta izin Anda pertama kali pratinjau membukanya, sama seperti ketika Anda menjelajahi ke situs baru di pratinjau. Alamat eksternal dapat mencakup path. Pilih Always allow untuk melewati prompt untuk situs itu di masa depan. Kebijakan organisasi yang membatasi situs eksternal di pratinjau masih berlaku.

Untuk mempratinjau server yang sudah Anda jalankan sendiri, atur url tanpa perintah. Claude melampirkan pratinjau ke server yang berjalan Anda alih-alih memulai satu:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "url": "https://app.localhost:3000"
    }
  ]
}

url harus http atau https, dan tidak boleh berisi nama pengguna atau kata sandi.

Port conflicts

Bidang autoPort mengontrol apa yang terjadi ketika port pilihan Anda sudah digunakan:

  • true: Claude menemukan dan menggunakan port gratis secara otomatis. Cocok untuk sebagian besar dev server.
  • false: Claude gagal dengan kesalahan. Gunakan ini ketika server Anda harus menggunakan port tertentu, seperti untuk callback OAuth atau allowlist CORS.
  • Not set (default): server Anda mendapatkan port bebas berikutnya, seperti dengan true, kecuali dalam satu kasus di bawah. Sebelum Claude Desktop v2.37337.0, Claude menanyakan apakah server memerlukan port yang persis itu, lalu menyimpan jawaban Anda di launch.json.

Jika port pilihan Anda sedang digunakan dan autoPort tidak diatur, server Anda tetap berhenti ketika semua kondisi berikut terpenuhi:

  • Anda memulai server melalui skrip npm, yarn, pnpm, atau bun.
  • Port pilihan Anda di-hardcode dalam skrip tersebut, atau Claude tidak dapat memeriksa skrip tersebut.
  • Anda tidak meneruskan port di runtimeArgs.

Dalam kasus tersebut, bebaskan port, hapus nilai yang di-hardcode, atau ubah port agar cocok dengan skrip. Mengatur "autoPort": true sebagai gantinya hanya berfungsi untuk skrip yang membaca PORT.

Buat server Anda membaca port-nya dari environment variable PORT, yang membawa port yang ditetapkan. Ketika Claude memindahkan server Anda ke port yang berbeda, Claude juga menulis ulang nilai --port atau -p di runtimeArgs agar sesuai.

Examples

Konfigurasi ini menunjukkan setup umum untuk tipe proyek berbeda:

Next.js

Konfigurasi ini menjalankan aplikasi Next.js menggunakan Yarn di port 3000:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "web",
      "runtimeExecutable": "yarn",
      "runtimeArgs": ["dev"],
      "port": 3000
    }
  ]
}

Multiple servers

Untuk monorepo dengan server frontend dan API, tentukan beberapa konfigurasi. Frontend menggunakan autoPort: true sehingga memilih port gratis jika 3000 diambil, sementara server API memerlukan port 8080 dengan tepat:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "frontend",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "cwd": "apps/web",
      "port": 3000,
      "autoPort": true
    },
    {
      "name": "api",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "start"],
      "cwd": "server",
      "port": 8080,
      "env": { "NODE_ENV": "development" },
      "autoPort": false
    }
  ]
}

Node.js script

Untuk menjalankan skrip Node.js secara langsung alih-alih menggunakan perintah package manager, gunakan bidang program:

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "server",
      "program": "server.js",
      "args": ["--verbose"],
      "port": 4000
    }
  ]
}

Konfigurasi lingkungan

Lingkungan yang Anda pilih saat memulai sesi menentukan di mana Claude mengeksekusi dan cara Anda terhubung:

  • Local: berjalan di mesin Anda dengan akses langsung ke file Anda
  • Cloud: berjalan pada infrastruktur yang dikelola Anthropic secara default. Sesi terus berlanjut bahkan jika Anda menutup aplikasi.
  • SSH: berjalan di mesin jarak jauh yang Anda hubungkan melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Tugas yang sedang berjalan dapat terus berlanjut saat Desktop terputus, tetapi dengan akun Claude, tugas tersebut dapat berhenti saat masa berlaku proses masuknya habis.
  • WSL (Windows): berjalan di dalam distribusi WSL 2 di mesin Anda, menggunakan toolchain Linux dan path aslinya

Membuat lingkungan tersimpan

Environment tersimpan adalah entri di pemilih environment yang mencatat di mana Claude berjalan, sehingga Anda dapat memulai sesi berikutnya di sana. Environment lokal atau SSH juga menyimpan folder tempat Claude bekerja. Environment lokal dan SSH tersimpan merupakan bagian dari tata letak saat ini, jadi jika Anda tidak melihatnya, periksa tata letak mana yang Anda miliki dan cara mendapatkan tata letak saat ini.

1. Buka dialog New environment

Buka pemilih lingkungan di bawah kotak prompt dan pilih New environment di bagian bawah menunya.

2. Pilih tempat Claude berjalan

Pilih tab Local, SSH, atau Cloud dan isi formulir di tab tersebut. Di tab SSH, pilih koneksi dan folder di mesin jarak jauh.

3. Simpan lingkungan

Pilih Create environment, atau Add environment di tab Cloud.

Lingkungan yang dibuat Desktop untuk Anda

Jika pemilih lingkungan mencantumkan lingkungan lokal atau SSH yang tidak Anda buat, Desktop yang membuatnya untuk Anda. Saat pertama kali Anda membuka tab Code dalam tata letak saat ini, Desktop membuat hingga delapan lingkungan. Lingkungan tersebut berasal dari folder lokal dan SSH yang paling sering Anda gunakan dalam sebulan terakhir. Anda dapat mengedit atau menghapusnya.

Menggunakan, mengedit, atau menghapus lingkungan tersimpan

Temukan entri lingkungan tersebut di pemilih lingkungan:

  • Memulai sesi: pilih entri tersebut.
  • Mengedit atau menghapus: arahkan kursor ke entri dan klik ikon roda gigi. Untuk menghapus lingkungan lokal atau SSH, klik Delete environment di Edit environment.
  • Mengarsipkan lingkungan cloud: lihat Mengarsipkan lingkungan.

Environment variable dalam sesi lokal

Untuk menetapkan environment variable bagi sesi lokal, tambahkan ke environment lokal tersimpan, lalu mulai sesi baru dari environment tersebut.

Variabel seperti PATH dan CLAUDE_CONFIG_DIR memiliki instruksinya sendiri:

Variabel Yang harus dilakukan sebagai gantinya
PATH, folder yang dicari sistem Anda untuk program seperti npm Lihat Sesi tidak menemukan tool yang terinstal. Di Windows, Desktop tidak membaca profil PowerShell, jadi tetapkan PATH di environment variable pengguna atau sistem Anda, lalu keluar dan buka kembali Desktop.
Variabel untuk server MCP dari claude_desktop_config.json Keluar dari Desktop, tetapkan variabel tersebut di blok env server itu, lalu buka kembali Desktop
CLAUDE_CONFIG_DIR atau CLAUDE_CODE_TMPDIR Tetapkan di salah satu tempat Anda menetapkan variabel untuk dev server, lalu keluar dan buka kembali Desktop
API_TIMEOUT_MS, ANTHROPIC_BASE_URL, atau variabel lain yang ditetapkan Desktop sendiri Lihat Environment variable yang ditetapkan Desktop sendiri

Di macOS atau Linux, jika variabel yang Anda tetapkan dengan export hilang atau salah dalam perintah yang dijalankan Claude, lihat Variabel yang diekspor hilang atau salah dalam perintah yang dijalankan Claude.

Mengatur environment variable untuk sesi lokal

Tambahkan variabel ke lingkungan lokal tersimpan dan mulai sesi Anda dari lingkungan tersebut. Desktop mengatur beberapa variabel sendiri, seperti API_TIMEOUT_MS, dan sesi Anda mendapatkan nilai dari Desktop untuk variabel tersebut, bukan nilai Anda.

[!NOTE]

Jika sesi baru tidak menampilkan lingkungan di bawah kotak prompt, Anda memiliki tata letak sebelumnya, yang tidak memiliki lingkungan lokal tersimpan. Gunakan editor lingkungan lokal sebagai gantinya.

1. Buka formulir environment lokal

  • Untuk membuat environment lokal tersimpan: pilih New environment di bagian bawah menu pemilih environment, lalu tab Local
  • Untuk mengubah yang sudah Anda miliki: di pemilih environment, arahkan kursor ke environment tersimpan di bawah Local dan klik ikon roda gigi untuk membuka Edit environment

2. Masukkan variabel

Pilih Environment variables, masukkan satu KEY=value per baris, lalu pilih Done.

3. Simpan environment

Pilih Create environment atau Save.

Hanya sesi yang Anda mulai dari lingkungan tersebut yang mendapatkan variabel itu.

Untuk mengatur variabel bagi setiap sesi lokal, tambahkan ke kunci env di file ~/.claude/settings.json Anda. Claude Code mengabaikan nilai tersebut jika variabel itu sudah ada di lingkungan tempat Desktop memulai sesi. Lihat environment variable untuk daftar lengkap variabel yang didukung.

Mengatur environment variable untuk server dev

Untuk memberikan secret kepada server dev tanpa melakukan commit ke launch.json, atur secret tersebut di salah satu tempat berikut, lalu mulai ulang Desktop:

  • macOS dan Linux: ekspor di profil shell Anda
  • Windows: tambahkan ke environment variable pengguna atau sistem Anda
  • Platform apa pun: simpan di editor lingkungan lokal, jika Anda dapat membukanya

Server dev tidak mendapatkan variabel yang Anda tambahkan ke lingkungan tersimpan atau ke ~/.claude/settings.json.

Menggunakan editor lingkungan lokal

Untuk membuka editor lingkungan lokal, klik ikon roda gigi pada entri untuk komputer Anda sendiri, bukan pada lingkungan tersimpan:

  • Pemilih di bawah kotak prompt: arahkan kursor ke entri untuk komputer Anda, yang pertama di bawah Local. Jika ikon roda gigi muncul, klik ikon tersebut. Jika tidak, editor tidak tersedia, jadi atur variabel untuk sesi lokal atau server dev dengan cara lain.
  • Pemilih di atas kotak prompt: arahkan kursor ke Local dan klik ikon roda gigi

Masukkan satu KEY=value per baris dan pilih Save changes. Variabel yang Anda simpan di sini disimpan dalam bentuk terenkripsi di mesin Anda. Sesi lokal mendapatkannya, kecuali variabel apa pun yang diatur Desktop sendiri, seperti API_TIMEOUT_MS. Mulai ulang Desktop untuk memberikan variabel Anda kepada server dev.

Variabel yang diekspor hilang atau salah dalam perintah yang dijalankan Claude

Jika perintah yang dijalankan Claude di macOS atau Linux tidak mendapatkan variabel yang Anda tetapkan dengan export di ~/.zshrc atau ~/.bashrc, atau mendapatkan nilai yang salah, coba langkah-langkah berikut secara berurutan:

1. Mulai sesi baru

Minta Claude untuk menjalankan perintah itu lagi.

2. Keluar dan buka kembali Desktop

Lalu mulai sesi baru.

3. Periksa variabel tersimpan Anda

Jika sebuah perintah mendapatkan nilai yang salah, periksa apakah Anda juga menetapkan variabel tersebut di lingkungan tersimpan atau di editor lingkungan lokal. Jika ya, ubah nilainya di sana dan mulai sesi baru.

4. Gunakan lingkungan tersimpan

Tambahkan variabel ke lingkungan lokal tersimpan, lalu mulai sesi baru dari lingkungan tersebut. Untuk variabel seperti PATH, CLAUDE_CONFIG_DIR, atau API_TIMEOUT_MS, ikuti instruksinya sendiri sebagai gantinya.

Sebelum v2.1.304, Claude Code tidak meneruskan variabel yang diekspor ke perintah, jadi periksa versi mana yang dijalankan sesi.

Environment variable yang diatur Desktop sendiri

Jika Anda mengatur API_TIMEOUT_MS atau ANTHROPIC_BASE_URL dan tidak ada yang berubah di sesi lokal Anda, itu karena Desktop mengatur variabel tersebut, di antara yang lain, sendiri. Sesi lokal mendapatkan nilai dari Desktop baik Anda mengaturnya di profil shell, variabel pengguna atau sistem Windows, editor lingkungan lokal, maupun lingkungan tersimpan. Memindahkan nilai Anda ke file pengaturan tidak membantu, karena Claude Code mengabaikan nilai tersebut dalam sesi lokal.

  • API_TIMEOUT_MS: sesi lokal mendapatkan 900000, yaitu 15 menit. Untuk timeout yang lebih lama, instal Claude Code CLI dan gunakan sebagai pengganti Desktop. Atur variabel di shell Anda dan jalankan claude di terminal Anda.
  • ANTHROPIC_BASE_URL: sesi lokal mendapatkan host API Anthropic saat Anda masuk dengan akun Claude. Untuk menggunakan gateway, siapkan konfigurasi inferensi pihak ketiga Desktop sebagai gantinya.

Mematikan extended thinking

Extended thinking diaktifkan secara default, yang meningkatkan performa pada tugas penalaran kompleks tetapi menggunakan token tambahan. Untuk mematikannya, atur MAX_THINKING_TOKENS ke 0 di lingkungan lokal tersimpan atau editor lingkungan lokal. Thinking kemudian mati di Anthropic API, kecuali pada Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, yang selalu menggunakan extended thinking.

Pada Opus 5, pilih juga effort high atau lebih rendah sebelum Anda memulai sesi. Dalam tata letak saat ini, buka pemilih model dan pilih level di bawah Effort. Jika Anda memulai sesi pada level yang lebih tinggi, mulai sesi baru pada high atau lebih rendah.

Thinking budget tetap

Pada model dengan adaptive reasoning, Claude Code mengabaikan angka itu sendiri dalam nilai MAX_THINKING_TOKENS yang positif karena adaptive reasoning mengontrol kedalaman pemikiran sebagai gantinya. Pada Opus 4.6 dan Sonnet 4.6, atur CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING ke 1 untuk menggunakan thinking budget tetap; model Fable, Sonnet 5 dan yang lebih baru, Haiku 5.5, serta Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.

Sesi lokal di perangkat terkelola

Jika entri untuk komputer Anda berwarna abu-abu di pemilih lingkungan, dengan tooltip Disabled by your organization, administrator Anda telah mematikan sesi lokal. Di Windows, entri WSL, yang ketersediaannya di perangkat terkelola diatur secara terpisah, juga berwarna abu-abu dengan cara yang sama.

Sesi baru secara default menggunakan koneksi SSH pertama jika ada yang dikonfigurasi. Jika Anda mencoba melanjutkan sesi lokal yang sudah ada, Desktop menampilkan pesan bahwa sesi lokal tidak tersedia di perangkat ini. Lingkungan lokal tersimpan menampilkan error ini saat Anda memilih salah satunya: Couldn’t switch environments: the Local environment isn’t available anymore. Pilih lingkungan SSH atau cloud sebagai gantinya, atau hubungi tim IT Anda.

Cloud sessions

Sesi cloud terus berlanjut di latar belakang bahkan jika Anda menutup aplikasi. Penggunaan dihitung terhadap batas rencana langganan Anda tanpa biaya komputasi terpisah.

Untuk menambahkan, mengedit, atau mengarsipkan lingkungan cloud, buka pemilih lingkungan:

  • Menambahkan lingkungan: pilih New environment di bagian bawah menu pemilih, lalu tab Cloud pada dialog New environment
  • Edit or archive one of your own environments: arahkan ke atasnya dan klik ikon gear

Lihat Configure cloud environments untuk detail tentang mengonfigurasi akses jaringan dan variabel lingkungan.

Sesi SSH

Sesi SSH memungkinkan Anda menjalankan Claude Code di mesin jarak jauh sambil menggunakan aplikasi desktop sebagai antarmuka Anda. Ini berguna untuk bekerja dengan basis kode yang tinggal di cloud VM, dev container, atau server dengan perangkat keras atau dependensi tertentu.

[!NOTE]

Jika Anda menggunakan Desktop dengan penyedia pihak ketiga, sesi SSH memerlukan penyiapan tersendiri. Lihat SSH remote sessions in Claude Desktop on 3P.

Tambahkan koneksi SSH di dialog New environment, lalu mulai sesi pada koneksi tersebut. Jika sesi baru tidak menampilkan lingkungan di bawah kotak prompt, Anda memiliki tata letak sebelumnya. Lihat Memeriksa tata letak yang Anda miliki.

1. Buka dialog New environment

Sebelum Anda memulai sesi, buka pemilih lingkungan di bawah kotak prompt dan pilih New environment di bagian bawah menunya.

2. Tambahkan koneksi

Di tab SSH pada dialog New environment, buka daftar Host, pilih Add SSH connection…, dan isi detail koneksi:

  • Name: label yang mudah dikenali untuk koneksi ini.
  • SSH host: user@hostname atau host yang didefinisikan di ~/.ssh/config.
  • SSH port: default ke 22 jika dibiarkan kosong, atau menggunakan port dari konfigurasi SSH Anda.
  • SSH key (optional): path ke private key Anda, seperti ~/.ssh/id_ed25519. Biarkan kosong untuk menggunakan konfigurasi SSH atau SSH agent Anda.
  • Worktree folder: folder di mesin jarak jauh, seperti ~/worktrees, tempat sesi baru membuat worktree-nya. Biarkan kosong untuk menggunakan default mesin jarak jauh.

Lalu pilih Add SSH connection.

3. Mulai sesi pada koneksi tersebut

Pilih folder di mesin jarak jauh dan klik Create environment. Anda menyimpan mesin dan folder tersebut bersama-sama sebagai lingkungan tersimpan untuk sesi berikutnya. Desktop memilihnya untuk sesi baru, jadi ketikkan tugas Anda dan tekan Enter.

Mesin jarak jauh dapat menjalankan Linux, macOS, atau Windows. Desktop menginstal Claude Code di mesin jarak jauh secara otomatis saat pertama kali Anda terhubung. Setelah terhubung, sesi SSH mendukung permission modes, connectors, plugins, dan MCP servers.

Persyaratan mesin jarak jauh untuk sesi SSH

Mesin jarak jauh Linux atau macOS memerlukan prosesor yang didukung, server SSH dengan SFTP, folder instalasi yang tidak di-mount dengan noexec, shell yang berfungsi, dan akses jaringan. Periksa setiap persyaratan sebelum Anda terhubung, atau ketika koneksi gagal setelah Anda masuk:

  • Sistem: prosesor x86_64 atau arm64. Mesin juga harus memenuhi persyaratan sistem Claude Code. Di Linux, Claude Code memerlukan glibc 2.17 atau yang lebih baru, atau musl. Untuk melihat mana yang dimiliki mesin tersebut, jalankan ldd --version di sana. Pada distribusi berbasis musl seperti Alpine Linux, instal juga paket yang dibutuhkan Claude Code.
  • SFTP: server SSH harus menyediakan subsistem SFTP, yang diaktifkan oleh baris Subsystem sftp di sshd_config-nya. Untuk memeriksanya, hubungkan ke host dan port yang sama dengan sftp di terminal pada komputer Anda. Server yang berfungsi menampilkan prompt sftp>.
  • MaxSessions 1 di server: untuk terhubung ke server yang sshd_config-nya menetapkan MaxSessions 1, lakukan salah satu dari berikut:
    • Komputer Anda menjalankan macOS atau Linux: perbarui ke Claude Desktop v3.1623.0 atau yang lebih baru
    • Komputer Anda menjalankan Windows: pastikan Desktop terhubung melalui klien OpenSSH, karena klien SSH bawaan Desktop tidak dapat terhubung ke server tersebut
    • Anda dapat mengubah server: naikkan MaxSessions, misalnya ke nilai default OpenSSH yaitu 10
  • Login dengan MaxSessions 1: gunakan login yang berfungsi tanpa prompt, seperti kunci yang disimpan SSH agent Anda. Desktop masuk setidaknya dua kali setiap kali terhubung atau terhubung kembali. Perkirakan setidaknya satu login lagi untuk setiap tab terminal, dan untuk setiap sesi Desktop tempat Anda menjalankan perintah yang diawali !. Tidak ada login tambahan untuk perintah yang dijalankan Claude.
  • Kode sekali pakai dengan MaxSessions 1: jika setiap login meminta input dari Anda, seperti dengan kode sekali pakai, perintah ! gagal. Jalankan perintah tersebut di tab terminal sebagai gantinya, yang menampilkan prompt di panelnya sendiri.
  • Folder instalasi: Desktop menginstal program pembantu dan Claude Code di bawah ~/.claude/remote/ di direktori home Anda. Desktop menjalankannya dari sana, sehingga folder tersebut tidak boleh berada di sistem file yang di-mount dengan noexec. Sediakan sekitar 1 GB ruang disk di direktori home setiap pengguna yang terhubung. Untuk isi folder tersebut, lihat File dan proses di mesin jarak jauh.
  • Shell: shell yang diatur untuk akun Anda di mesin jarak jauh harus dapat menjalankan perintah yang dikirim melalui SSH, seperti yang dilakukan Bash, Zsh, dan sh
  • Jaringan: Claude Code berjalan di mesin jarak jauh dan membuat permintaan jaringannya dari sana, sehingga mesin tersebut memerlukan akses jaringan yang dibutuhkan Claude Code. Jika mesin tidak dapat mengunduh Claude Code, Desktop mengunduhnya di komputer Anda dan mengunggahnya. Permintaan Claude Code lainnya tetap dikirim dari mesin jarak jauh. Di mesin jarak jauh Linux, jika permintaan tersebut memerlukan proxy, atur proxy tersebut untuk sesi SSH.

Memeriksa host key mesin jarak jauh

Host key adalah kunci yang ditunjukkan mesin jarak jauh untuk membuktikan identitasnya, dan fingerprint adalah bentuk singkat dari kunci tersebut. Saat Anda memercayai sebuah kunci, komputer Anda menyimpannya dan terhubung ke apa pun yang menunjukkannya, tanpa bertanya lagi. Periksa kunci sebelum Anda memercayainya, karena mungkin ada sesuatu yang mencegat koneksi.

Pertama, cari tahu mesin mana pemilik kunci tersebut, berdasarkan tempat Anda melihat fingerprint:

  • Desktop bertanya Connect to <host> for the first time?, atau Anda memilih Review new key: mesin yang disebutkan Desktop, <host>
  • Desktop bertanya Connect through <jump host> for the first time?: jump host, yaitu mesin yang dilalui koneksi Anda, bukan mesin yang ingin Anda jangkau
  • ssh bertanya atau memperingatkan di terminal: mesin yang disebutkan dalam pesannya, yang mungkin bukan mesin yang Anda ketik

Dapatkan fingerprint mesin tersebut dari mesin itu sendiri, bukan melalui koneksi yang sedang Anda periksa:

  • Orang lain mengelola mesin tersebut: minta fingerprint host key-nya kepada mereka
  • Anda mengelolanya, dan mesin menjalankan Linux atau macOS: jalankan ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub di mesin tersebut, di konsolnya atau melalui koneksi yang sudah Anda percayai. Untuk <type>, gunakan jenis kunci yang ditampilkan Desktop atau ssh di samping fingerprint, dalam huruf kecil: ed25519 untuk ED25519 atau ssh-ed25519.

Kemudian bandingkan fingerprint mesin itu sendiri dengan yang ditunjukkan kepada Anda:

  • Keduanya cocok: percayai kunci tersebut. Pilih Trust and connect atau Trust new key di Desktop, atau jawab yes di terminal.
  • Keduanya berbeda, atau Anda tidak dapat memeriksanya: jangan terhubung. Pilih Cancel di Desktop, atau jawab no di terminal. Jika orang lain mengelola mesin tersebut, beri tahu mereka fingerprint yang ditunjukkan kepada Anda.

Jika langkah pemecahan masalah mengarahkan Anda ke sini, kembali ke langkah tersebut setelah hasil mana pun.

Mengatur proxy atau sertifikat CA untuk sesi SSH

Jika mesin jarak jauh Linux menjangkau internet melalui proxy atau memerlukan sertifikat CA, tambahkan variabel proxy dan CA di bawah env di ~/.claude/settings.json pada mesin tersebut. Tambahkan variabel tersebut meskipun Anda sudah mengekspornya di ~/.profile, ~/.bash_profile, ~/.zprofile, atau ~/.zshrc di mesin tersebut.

Dalam sesi SSH, Claude Code tidak mendapatkan variabel dari file-file tersebut, meskipun claude di terminal di mesin itu mendapatkannya. Sesi kemudian dapat macet, atau menampilkan The connection from … to the API failed atau Authentication failed, dan masuk kembali tidak membantu.

1. Tambahkan variabel

Untuk file CA, gunakan NODE_EXTRA_CA_CERTS, karena Claude Code tidak memercayai CA dari SSL_CERT_FILE di ~/.claude/settings.json. Contoh ini mengatur proxy dan file CA:

{
  "env": {
    "HTTPS_PROXY": "http://proxy.example.com:8080",
    "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
  }
}

2. Kirim pesan Anda lagi

Kirim pesan Anda lagi, karena variabel yang Anda tambahkan atau ubah di file tersebut berlaku dalam hitungan detik. Mulai sesi baru jika masih gagal.

Menemukan variabel proxy atau CA yang diatur di tempat lain pada mesin jarak jauh

Periksa apakah mesin jarak jauh Linux mengatur variabel proxy atau CA di tempat lain, karena sesi menggunakan nilai tersebut dan mengabaikan nilai di file pengaturan mana pun:

1. Cantumkan variabel yang diatur mesin jarak jauh

Di terminal pada komputer Anda, jalankan ssh devbox env, dengan host Anda sendiri.

2. Ubah variabel di tempat variabel tersebut diatur

Jika daftar tersebut memuat variabel itu, ubah variabel tersebut di file yang mengaturnya, seperti ~/.zshenv, /etc/environment, atau ~/.bashrc di mesin jarak jauh.

3. Berikan nilai baru ke sesi

Mulai ulang mesin jarak jauh, atau keluar dari Desktop dan akhiri proses program pembantu, seperti pada dua langkah pertama untuk menghapus program pembantu. Lakukan ini saat tidak ada tugas yang berjalan, karena cara mana pun akan menginterupsi pekerjaan Claude.

Menggunakan konfigurasi SSH Anda

Anda dapat menggunakan konfigurasi SSH Anda di macOS, Linux, dan Windows ketika Desktop terhubung melalui klien OpenSSH di komputer Anda:

  • macOS dan Linux: Desktop terhubung dengan menjalankan klien OpenSSH di komputer Anda, sehingga menggunakan ~/.ssh/config Anda. Terhubung melalui klien OpenSSH memerlukan Claude Desktop v1.37937.0 atau yang lebih baru.

  • Windows: ketika Desktop terhubung melalui klien OpenSSH, Desktop menggunakan %USERPROFILE%\.ssh\config Anda. Jika Anda menggunakan akun Claude, bukan penyedia pihak ketiga, terhubung melalui klien OpenSSH memerlukan semua hal berikut:

    • Claude Desktop v2.2553.0 atau yang lebih baru. Untuk menemukan versi Anda, lihat Memeriksa versi Anda.
    • OpenSSH 9.4 dari Microsoft atau yang lebih baru
    • Desktop yang diinstal dengan tombol unduh di bagian atas halaman ini, karena Desktop dari Microsoft Store tidak terhubung melalui klien OpenSSH

    Jika Anda tidak dapat memenuhi persyaratan ini, atau Anda menggunakan penyedia pihak ketiga, lihat Terhubung di Windows tanpa klien OpenSSH.

Dengan klien OpenSSH, masukkan nama Host dari file konfigurasi Anda di kolom SSH host. Desktop kemudian menggunakan pengaturan dari entri Host tersebut, seperti HostName, User, IdentityFile, CertificateFile, ProxyJump, dan ProxyCommand.

Sebelum Anda menambahkan koneksi, periksa klien dan entri tersebut di terminal pada komputer Anda:

  • Versi klien di macOS dan Linux: jalankan ssh -V. Klien harus OpenSSH 7.6 atau yang lebih baru.
  • Versi klien di Windows: Desktop mencoba ssh di PATH Anda terlebih dahulu, jadi jalankan ssh -V. Klien lolos jika output menampilkan OpenSSH_for_Windows_ dan 9.4 atau yang lebih baru. Jika tidak lolos, periksa dua folder yang dicoba Desktop berikutnya: jalankan .\ssh.exe -V di C:\Windows\System32\OpenSSH, lalu di C:\Program Files\OpenSSH.
  • Tidak ada klien yang lolos di Windows: tambahkan fitur opsional OpenSSH Client di Windows dan instal pembaruan Windows yang tertunda, atau instal build yang lebih baru dari Microsoft. Lalu keluar dan buka kembali Desktop. Untuk melihat apakah Desktop menemukan klien OpenSSH yang dapat digunakan, cari di ssh.log untuk Windows OpenSSH client: beserta versinya, atau untuk no usable Windows OpenSSH client.
  • Entri: di Windows, gunakan klien yang lolos pemeriksaan versi. Jalankan ssh dengan nama Host, seperti ssh devbox. Jika gagal, perbaiki entri terlebih dahulu.

Anda dapat membiarkan bidang SSH port dan SSH key (optional) kosong. Jika Anda mengisi salah satunya, Desktop menggunakannya bersama entri tersebut:

  • SSH port: nilai di sini menimpa Port milik entri
  • SSH key (optional): dengan klien OpenSSH, Desktop menawarkan file kunci yang Anda pilih selain IdentityFile entri dan kunci di SSH agent Anda. Di Windows, pilih kunci dalam format OpenSSH, karena ssh tidak membaca file PuTTY .ppk.
Terhubung di Windows tanpa klien OpenSSH

Di Windows, Anda terhubung melalui klien SSH bawaan Desktop jika komputer Anda tidak memenuhi persyaratan untuk klien OpenSSH. Dengan penyedia pihak ketiga, Anda terhubung melalui klien bawaan secara default, dan administrator Anda dapat mengubahnya. Untuk pengaturannya, lihat SSH remote sessions in Claude Desktop on 3P.

Dengan klien bawaan, Anda tetap dapat memasukkan nama Host dari konfigurasi SSH Anda di kolom SSH host jika PATH Anda memiliki perintah ssh, dengan batasan berikut:

  • Pengaturan dari entri: Desktop mengambil HostName, User, Port, dan IdentityFile. Desktop juga mengambil ProxyCommand jika shell sh ada di PATH Anda.
  • SSH key (optional): kosongkan kolom ini untuk mempertahankan IdentityFile entri, karena file kunci yang Anda pilih di sini menggantikan IdentityFile
  • CertificateFile dan ProxyJump: Desktop mengabaikan CertificateFile, dan koneksi gagal jika entri menetapkan ProxyJump. Untuk menggunakan salah satu pengaturan tersebut, terhubunglah melalui klien OpenSSH.
Menjangkau mesin di balik jump host

Untuk menjangkau mesin di balik jump host, yang juga disebut bastion, atur ProxyJump atau ProxyCommand di entri tersebut. Entri berikut menjangkau devbox.internal.example.com melalui bastion.example.com:

Host devbox
  HostName devbox.internal.example.com
  User alice
  ProxyJump bastion.example.com

Masukkan devbox di bidang SSH host.

Jika administrator Anda membatasi host SSH, jump host juga harus ada di daftar. Jalankan ssh -G bastion.example.com di terminal pada komputer Anda, dan minta mereka mengizinkan hostname yang dicetaknya.

Menjangkau container di mesin jarak jauh

Untuk menjalankan sesi di dalam container yang tidak memublikasikan port SSH, jangkau container tersebut dengan ProxyCommand, karena Desktop tidak menjalankan RemoteCommand dari entri yang Anda hubungkan. Jika entri Anda menggunakan RemoteCommand untuk masuk ke dalam container, sesi berjalan di mesin tempat entri tersebut login, bukan di dalam container.

1. Tambahkan entri

Tambahkan entri berikut di akhir ~/.ssh/config Anda, atau tepat di atas entri Host * pertama Anda jika ada. Ganti container Docker devbox, penggunanya dev, dan mesin build.example.com dengan milik Anda sendiri. Perintah entri tersebut memulai server SSH di dalam container untuk setiap koneksi:

Host devbox-container
  User dev
  ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

2. Siapkan container

  • Instal server OpenSSH, dengan host key yang tetap sama saat Anda mem-build ulang image atau membuat ulang container
  • Berikan akun yang disebutkan di User cara untuk masuk, seperti file authorized_keys
  • Periksa bahwa container memenuhi persyaratan mesin jarak jauh

3. Periksa allowlist

Jika administrator Anda membatasi host SSH, jalankan ssh -G devbox-container di terminal pada komputer Anda. Minta mereka untuk mengizinkan hostname yang dicetaknya, di sini devbox-container, di sshHostAllowlist. Saat mereka mengizinkan nama tersebut, mereka mengizinkan apa pun yang dihubungkan oleh ProxyCommand entri Anda.

4. Uji entri, lalu hubungkan

Jalankan ssh devbox-container di terminal pada komputer Anda. Perbaiki apa yang dilaporkannya, dan jalankan lagi hingga perintah tersebut membuka shell di dalam container tanpa menanyakan apa pun kepada Anda:

  • Jika ssh meminta kata sandi, passphrase, atau kode: beralihlah ke metode login yang berfungsi tanpa prompt, seperti kunci yang disimpan oleh SSH agent Anda
  • Jika ssh melaporkan Cannot execute command-line and remote command. atau Bad packet length: hapus RemoteCommand dan RequestTTY dari entri Anda untuk build.example.com. Setelah itu, ssh build.example.com di terminal pada komputer Anda membuka shell di mesin tersebut, bukan di dalam container.
  • Jika ssh melaporkan Connection closed by UNKNOWN port 65535: jalankan ssh build.example.com docker exec devbox /usr/sbin/sshd -t di terminal yang sama.
    • Jika perintah tersebut mencetak Missing privilege separation directory: /run/sshd, buat folder tersebut di dalam container.
    • Jika perintah tersebut mencetak no hostkeys available dan container memiliki host key, tambahkan -u root setelah exec dalam perintah ini dan di entri.

Lalu masukkan devbox-container di bidang SSH host.

Menggunakan variabel dari shell Anda dalam ProxyCommand

Di macOS dan Linux, untuk menggunakan environment variable Anda sendiri di perintah ProxyCommand atau Match exec, ekspor variabel tersebut di file startup shell, seperti ~/.zshrc. Lalu keluar dan buka kembali Desktop. Saat Desktop dimulai, Desktop membaca apa yang diekspor login shell Anda, dan menyimpan nilai tersebut hingga Anda keluar.

Hal ini memerlukan Claude Desktop v2.37337.0 atau yang lebih baru dan perintah env yang menerima -0, yang dapat Anda periksa dengan menjalankan env -0 di terminal pada komputer Anda.

[!NOTE]

Jika shell Anda mengatur kredensial AWS sementara, berikan profil kepada AWS CLI alih-alih mengekspor variabel AWS_*.

Menggunakan kredensial AWS di ProxyCommand di macOS dan Linux

Jika Anda mengatur kredensial AWS sementara di file startup shell, ProxyCommand yang menjalankan AWS CLI dapat terhubung di terminal tetapi gagal di Desktop. Saat shell Anda mengekspor AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN, atau AWS_CREDENTIAL_EXPIRATION, ssh dan ProxyCommand Anda di Desktop tidak mendapatkan kredensial AWS, AWS_REGION, atau AWS_PROFILE dari shell.

Jika AWS CLI tidak memiliki sumber lain untuk region atau kredensial, AWS CLI gagal dengan You must specify a region atau Unable to locate credentials. Untuk terhubung dari Desktop, berikan AWS CLI sebuah profil yang dibacanya dari ~/.aws/config:

1. Tambahkan profil dengan region dan sumber kredensial

Contoh ini menambahkan profil bernama corp yang mendapatkan kredensialnya dari program pembantu:

[profile corp]
region = us-east-1
credential_process = /full/path/to/your-credential-helper
  • region: berikan AWS Region dari mesin yang Anda hubungkan
  • credential_process: berikan path lengkap program yang mencetak kredensial dalam format JSON yang didokumentasikan AWS. Pilih program yang tidak memerlukan input dari Anda, karena AWS CLI menjalankannya pada setiap koneksi, termasuk saat terhubung kembali ketika Anda tidak ada.
  • IAM Identity Center: tambahkan pengaturan IAM Identity Center profil tersebut sebagai pengganti credential_process. Jalankan aws sso login --profile corp di terminal sebelum Anda terhubung, dan lagi saat proses masuk tersebut kedaluwarsa.

2. Sebutkan profil di ProxyCommand

Contoh ini menambahkan --profile ke perintah yang didokumentasikan AWS untuk Session Manager:

Host i-*
  ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

3. Hubungkan lagi

Jalankan ssh dengan host tersebut di terminal untuk memastikan bahwa entri masih terhubung di sana, lalu hubungkan dari Desktop.

Menaikkan timeout koneksi SSH

Jika konfigurasi SSH Anda tidak mengatur ConnectTimeout untuk host tersebut, Desktop memberi ssh waktu 30 detik untuk terhubung. Melalui jump host atau ProxyCommand, waktu tersebut mencakup waktu yang dibutuhkan rute untuk terhubung. Jika rute Anda membutuhkan waktu lebih lama, tambahkan nilai yang lebih tinggi ke entri tersebut:

Host devbox
  HostName devbox.internal.example.com
  User alice
  ProxyJump bastion.example.com
  ConnectTimeout 120

ssh menggunakan nilai pertama yang ditemukannya untuk sebuah host, jadi letakkan entri tersebut di atas entri Host * mana pun yang mengatur ConnectTimeout. Untuk memastikannya, jalankan ssh -G devbox di terminal pada komputer Anda. Output-nya mencakup connecttimeout 120. Setelah Anda mengubah nilainya, keluar dari Desktop dan buka kembali.

Jika mesin jarak jauh itu sendiri menunggu persetujuan di ponsel Anda, setujui dalam 45 detik, berapa pun ConnectTimeout yang Anda atur. Anda tidak dapat menaikkan batas ini, karena Desktop mengatur ServerAliveInterval dan ServerAliveCountMax sendiri, dan ssh kemudian menutup login yang di dalamnya mesin jarak jauh tidak mengirim apa pun selama itu. Jika yang menunggu Anda adalah jump host atau ProxyCommand, naikkan ConnectTimeout di entri mesin jarak jauh untuk mencakup waktu tersebut.

Memperbaiki blok Match host yang hanya diterapkan oleh Desktop

Jika Desktop menggunakan pengaturan yang tidak digunakan oleh ssh devbox di terminal, cari blok Match host di atas baris HostName entri. Di terminal, ssh membaca blok di sana sebelum baris HostName, sehingga membandingkan blok tersebut dengan devbox. Desktop memberikan nilai HostName kepada ssh di baris perintah, sehingga ssh membandingkan blok tersebut dengan nilai itu.

Untuk memeriksanya, jalankan ssh -G di terminal pada komputer Anda dengan nilai HostName dan User milik entri di baris perintah, seperti yang dilakukan Desktop:

ssh -G -o HostName=devbox.internal.example.com -l alice devbox

Bandingkan output-nya dengan output ssh -G devbox. Jika pengaturan blok tersebut, seperti proxycommand, hanya muncul di output pertama, blok tersebut hanya berlaku di Desktop. Agar Desktop juga melewatinya, tambahkan !originalhost devbox ke baris Match-nya:

Match host *.internal.example.com !originalhost devbox

Untuk memastikannya, jalankan perintah pertama lagi. Pengaturan blok tersebut tidak lagi muncul di output-nya.

Pengaturan forwarding yang dibiarkan mati oleh Desktop

Pada koneksinya ke mesin jarak jauh, Desktop membiarkan ForwardAgent, ForwardX11, LocalForward, RemoteForward, DynamicForward, dan Tunnel dalam keadaan mati, bahkan jika konfigurasi SSH Anda mengaktifkannya. Di terminal atau perintah !, perkirakan bahwa pengaturan forwarding Anda hanya terkadang berlaku, karena Desktop dapat memulai ssh terpisah di sana yang mengikuti pengaturan tersebut.

  • Untuk menjangkau port di mesin jarak jauh: teruskan port tersebut sendiri
  • Untuk menggunakan kunci Anda sendiri dari mesin jarak jauh: siapkan kredensial di mesin jarak jauh itu sendiri, misalnya untuk git push

Agar Desktop tidak meneruskan SSH agent atau port Anda, jalankan ssh -G devbox di terminal pada komputer Anda. Lalu jalankan lagi seperti Desktop dapat menjalankannya, dengan nilai hostname dan user yang dicetaknya, seperti pada ssh -G -o HostName=devbox.internal.example.com -l alice devbox. Output kedua dapat menampilkan pengaturan dari blok Match yang dilewati oleh output pertama.

Cari di kedua output baris forwardagent yang bernilai selain no, dan baris yang diawali dengan localforward, remoteforward, atau dynamicforward. Jika Anda menemukannya, hapus pengaturan tersebut dari konfigurasi SSH Anda. Lakukan hal yang sama untuk host yang dijangkau oleh ProxyCommand Anda dengan ssh.

Menjangkau port di mesin jarak jauh

Untuk membuka server yang berjalan di mesin jarak jauh, seperti dev server di port 3000, teruskan port tersebut sendiri. Di terminal pada komputer Anda, jalankan ssh dengan -L dan host yang Anda hubungkan, seperti devbox:

ssh -N -L 3000:localhost:3000 devbox

Jika Anda mengisi SSH port atau SSH key (optional) pada koneksi, tambahkan -p atau -i dengan nilai yang sama. Biarkan perintah tersebut berjalan, dan buka http://localhost:3000 di browser pada komputer Anda untuk menjangkau port 3000 di mesin jarak jauh. Jika ssh mencetak open failed: administratively prohibited, minta administrator mesin tersebut untuk mengizinkan TCP forwarding, yang dikontrol oleh AllowTcpForwarding di sshd_config server SSH.

Mesin jarak jauh Windows

Mesin jarak jauh Windows memerlukan Claude Desktop v2.31226.0 atau yang lebih baru.

Gunakan OpenSSH Server dari Microsoft. Mesin dapat berupa x64 atau ARM64. Shell yang dijalankan oleh server SSH dapat berupa cmd.exe, Windows PowerShell 5.1, atau Git Bash.

Mesin jarak jauh Windows lebih sedikit diuji dibandingkan mesin Linux. Cobalah pekerjaan Anda sendiri di sana sebelum Anda mengandalkannya.

Perkirakan batasan berikut, di antara yang lainnya, pada mesin jarak jauh Windows:

  • Terminal: terminal tidak terbuka dalam sesi yang foldernya berupa path Windows, seperti C:/projects/app
  • Sandbox: Claude Code berjalan di sana pada Windows native, tempat Claude Code menjalankan perintah tanpa sandbox. Lihat tempat sandbox berjalan.
  • Plugin: Desktop tidak menyalin plugin yang memuat nama file atau folder yang tidak dapat disimpan oleh Windows, seperti nama yang mengandung :. Sesi mencantumkan plugin yang tidak disertakan oleh Desktop.
  • Server MCP: pada beberapa mesin jarak jauh Windows, panggilan Claude ke server MCP dari claude_desktop_config.json melewati Desktop, sehingga Claude tidak dapat memanggil tool-nya saat Desktop terputus. Sebelum Claude Desktop v2.37337.0, hal ini berlaku pada setiap mesin jarak jauh Windows.
  • Worktree: worktree ditempatkan di <project-root>/.claude/worktrees/. Jika Anda memilih folder lain, Desktop mengabaikannya.
  • Pesan sebelumnya: jika shell server SSH adalah cmd.exe atau Windows PowerShell, Anda mungkin harus terhubung terlebih dahulu sebelum dapat melihat pesan-pesan sebelumnya dari sebuah sesi
  • Fork: jika shell server SSH adalah cmd.exe atau Windows PowerShell, Anda hanya dapat melakukan fork sesi pada pesan pertamanya
  • Berjalan saat terputus: tugas tetap berjalan saat Desktop terputus hanya jika server SSH mengizinkan program untuk tetap hidup setelah koneksi yang memulainya berakhir. Untuk mengetahuinya, uji mesin jarak jauh.
  • Proses yang tersisa: setelah sesi berakhir, periksa mesin untuk program-program yang dimulai oleh Claude Code, karena program tersebut dapat terus berjalan. Program pembantu latar belakang yang diinstal Desktop tidak berhenti dengan sendirinya di sana.

Menjaga tugas tetap berjalan saat Desktop terputus

Jika komputer Anda tertidur (sleep), Anda kehilangan jaringan, atau Anda keluar dari Desktop, tugas terus berjalan hingga selesai, membutuhkan Anda, atau mencapai salah satu batasan. Menutup lid laptop dihitung sebagai sleep. Memulai ulang Desktop atau komputer Anda, termasuk untuk pembaruan, dihitung sebagai keluar.

Claude Code berjalan sebagai proses di mesin jarak jauh, di bawah program pembantu latar belakang yang diinstal Desktop di sana, sehingga tidak memerlukan koneksi SSH Anda untuk tetap berjalan. Perilaku di bagian ini memerlukan Claude Desktop v2.31226.0 atau yang lebih baru.

[!WARNING]

Jika Anda masuk ke Desktop dengan akun Claude, jangan mengandalkan tugas untuk berjalan semalaman. Desktop memperbarui proses masuk tersebut untuk tugas hanya selama Desktop berjalan dan terhubung, sehingga masa berlaku proses masuk tugas dapat habis setelah Anda terputus, lalu tugas berhenti. Sisa waktu saat Anda terputus bervariasi, dan bisa hanya beberapa menit.

Pekerjaan yang telah dilakukan sejauh ini tetap berada di mesin jarak jauh, dan Anda dapat melanjutkannya dengan mengirim pesan saat Anda kembali.

Jika tugas harus berjalan sepanjang malam:

  • Jaga komputer Anda tetap menyala dan online, dengan lid terbuka dan Desktop berjalan
  • Gunakan metode login yang berfungsi tanpa prompt, seperti kunci yang disimpan oleh SSH agent Anda, untuk mesin jarak jauh dan untuk jump host mana pun di sepanjang jalur. Dengan begitu, Desktop dapat terhubung kembali dengan sendirinya setelah koneksi terputus.

Untuk tugas yang harus berjalan saat komputer Anda sleep atau mati, mulai sesi cloud sebagai gantinya.

  • Setelah sleep atau kehilangan jaringan: Anda mendapatkan kembali tugas yang sedang berjalan jika prosesnya masih berjalan dan Desktop dapat masuk tanpa prompt. Jika tidak bisa, kirim pesan.
  • Setelah keluar: tugas tetap berjalan, tetapi Anda kehilangannya saat sesi dibuka lagi kecuali Desktop dapat bergabung kembali ke prosesnya. Periksa kapan Desktop dapat bergabung kembali sebelum Anda keluar. Jika Anda kehilangan tugas, kirim pesan untuk melanjutkan.

Saat Anda kembali dan tugas belum selesai, periksa apakah ada pemberitahuan bahwa Desktop tidak dapat terhubung kembali, error autentikasi, atau permintaan yang menunggu:

Mempersiapkan tugas yang panjang
  • Perbarui terlebih dahulu: perbarui Desktop sebelum Anda memulai tugas panjang. Di macOS dan Windows, Desktop dapat memulai ulang sendiri untuk menginstal pembaruan yang telah diunduhnya. Mulai ulang tersebut menunggu saat Claude sedang mengerjakan tugas SSH. Secara default, setelah pembaruan menunggu 72 jam, mulai ulang dapat dilanjutkan selama tugas berjalan jika Desktop dapat bergabung kembali ke tugas sesudahnya.
  • Periksa sebelum Anda keluar: Anda tidak selalu mendapatkan kembali tugas yang berjalan setelah keluar atau memulai ulang, misalnya setelah beberapa pembaruan Desktop. Untuk kasus-kasusnya, lihat Membuka kembali sesi setelah Anda keluar dari Desktop.
  • Pada versi lama, biarkan Desktop tetap terbuka: di Windows dengan Claude Desktop sebelum v3.1623.0, Anda tidak mendapatkan kembali tugas yang berjalan setelah Desktop keluar atau dimulai ulang. Hal yang sama berlaku dengan penyedia pihak ketiga di macOS atau Linux sebelum v2.42304.0. Dalam kedua kasus, biarkan Desktop tetap terbuka selama tugas berjalan. Untuk menemukan versi Anda, lihat Memeriksa versi Anda.
  • Kurangi permintaan: pilih mode izin, aturan, atau hook yang membuat tugas lebih jarang menunggu Anda
  • Periksa jump host: jika jump host Anda meminta proses masuk, misalnya push ke ponsel, beralihlah ke metode login yang berfungsi tanpa prompt. Jika tidak, Desktop dapat mengirim push lain setiap kali mencoba terhubung kembali.
  • Uji mesin jarak jauh: mulai tugas singkat, keluar dari Desktop saat tugas masih berjalan, lalu buka sesi lagi jauh setelah tugas seharusnya selesai. Jika tugas belum selesai dan sesi tidak menampilkan error autentikasi, periksa mesin jarak jauh untuk hal-hal yang dapat mengakhiri tugas.
  • Jauhkan perintah dari terminal Desktop: jika mesin jarak jauh mengeluarkan terminal yang idle, jalankan perintah Anda sendiri dari login SSH di luar Desktop
Batasan saat Desktop terputus

Tugas yang Anda biarkan berjalan dapat berakhir saat masa berlaku proses masuknya habis, saat mesin jarak jauh mengakhirinya, atau saat program pembantu berhenti atau diganti:

  • Token atau kredensial masuk: dengan akun Claude, tugas berhenti dengan error autentikasi saat token kedaluwarsa. Dengan penyedia pihak ketiga, hal yang sama berlaku untuk kredensial yang kedaluwarsa, seperti kredensial dari single sign-on atau credential helper. Lihat SSH remote sessions in Claude Desktop on 3P. Dengan akun Claude, biarkan Desktop tetap berjalan dan terhubung agar dapat memperbarui proses masuk.
  • Mesin jarak jauh: jika mesin jarak jauh dimulai ulang, atau mengakhiri proses Anda saat koneksi SSH Anda ditutup, tugas yang sedang berjalan berakhir. Tidak ada yang memulainya lagi selama Desktop terputus. Mesin Linux yang KillUserProcesses milik systemd-logind bernilai yes dan berlaku untuk pengguna Anda mengakhiri proses Anda dengan cara ini. Agar tugas tetap berjalan di sana, minta administrator untuk mengecualikan pengguna Anda, misalnya dengan KillExcludeUsers.
  • Terminal idle: beberapa mesin jarak jauh Linux mengeluarkan terminal yang tidak diketik siapa pun selama waktu tertentu (StopIdleSessionSec milik systemd-logind). Dengan Desktop di macOS atau Linux, terminal sebuah sesi dan perintah ! berbagi koneksi SSH Desktop secara default. Logout tersebut kemudian mengakhiri koneksi saat Desktop terhubung, dan tugas yang sedang berjalan dapat ikut berakhir. Menutup panel terminal tidak mencegahnya, jadi jauhkan perintah dari terminal tersebut.
  • Pembaruan Desktop: jika pembaruan membawa program pembantu baru, Desktop mengganti program pembantu di mesin jarak jauh pada koneksi berikutnya, yang dapat mengakhiri tugas yang masih berjalan
  • Ketidakhadiran yang lama: pada mesin jarak jauh Linux atau macOS, jika Desktop tidak terhubung selama 30 hari, program pembantu berhenti dan mengakhiri setiap proses Claude Code yang berjalan di bawahnya. Hubungkan sebelum waktu tersebut.

Pengeditan file dan beberapa tool dapat gagal saat Desktop terputus. Jika tugas memerlukannya, biarkan Desktop tetap terhubung:

  • Worktree: dalam sesi yang menggunakan worktree, Desktop memeriksa setiap pengeditan file sebelum Claude melakukannya. Saat Desktop terputus, setiap pengeditan menunggu sekitar 30 detik lalu gagal. Perintah shell tetap berjalan. Pada mesin jarak jauh Linux atau macOS, pengeditan dapat tetap berfungsi. Jika Anda tidak yakin, mulai sesi tanpa worktree.
  • Pembatasan folder: jika organisasi Anda membatasi folder mana yang boleh digunakan sesi, Desktop memeriksa setiap pembacaan, pencarian, dan pengeditan file, dengan atau tanpa worktree. Saat Desktop terputus, masing-masing menunggu hingga 10 menit lalu gagal.
  • Konektor: konektor dan tool lain yang disediakan Desktop berjalan melalui Desktop, sehingga saat Desktop terputus setiap panggilan gagal setelah sekitar 30 detik
  • Workflow: Desktop memeriksa setiap workflow baru sebelum dimulai, sehingga saat Desktop terputus, workflow baru menunggu hingga 10 menit lalu gagal
  • Server MCP: server MCP yang dimulai Claude Code di mesin jarak jauh tidak berjalan melalui Desktop, sehingga Claude tetap dapat memanggil tool-nya. Server dari claude_desktop_config.json termasuk di antaranya hanya jika Desktop tidak menggunakan klien SSH bawaannya. Jika tidak demikian, dan pada beberapa mesin jarak jauh Windows, Claude tidak dapat memanggil tool-nya saat Desktop terputus.

Kapan pengeditan di worktree tetap berfungsi

Pada mesin jarak jauh Linux atau macOS, pemeriksaan tidak melewati Desktop, sehingga pengeditan di dalam worktree tetap berfungsi saat Desktop terputus. Sebelum Claude Desktop v2.37337.0, hal ini hanya berlaku pada mesin jarak jauh Linux.

Pengeditan tetap gagal dalam beberapa kasus, termasuk kasus-kasus berikut:

  • Klien SSH bawaan: Desktop menggunakannya, misalnya pada instalasi dari Microsoft Store, pada komputer Windows tanpa OpenSSH 9.4 atau yang lebih baru dari Microsoft, atau secara default di Windows dengan penyedia pihak ketiga
  • Lokasi repositori: repositori adalah direktori home Anda, folder di atasnya, atau ~/.claude
  • Path macOS: pada mesin jarak jauh macOS, repositori berada di bawah /Volumes, atau nama folder dalam path repositori atau worktree mengandung ~ atau karakter non-ASCII
  • Pembatasan folder: organisasi Anda membatasi folder mana yang boleh digunakan sesi
  • Corporate launcher: sebelum Claude Desktop v2.37337.0, Anda masuk dengan akun Claude, dan organisasi Anda memulai Claude Code di mesin jarak jauh melalui corporate launcher

Sesi tanpa worktree tidak memiliki pemeriksaan seperti itu, kecuali organisasi Anda membatasi folder mana yang boleh digunakan sesi.

Menangani permintaan yang datang saat Anda tidak ada

Jika Claude memerlukan persetujuan Anda atau mengajukan pertanyaan saat Desktop terputus, Claude menunggu di mesin jarak jauh. Penantian tersebut tidak memiliki batas waktu tersendiri. Saat Desktop bergabung kembali ke proses, Desktop menampilkan permintaan tersebut kepada Anda. Jika Desktop memulai proses baru sebagai gantinya, Anda kehilangan permintaan tersebut.

Jika permintaan yang menunggu Anda hilang saat Anda kembali, salah satu penyebabnya adalah Desktop restart dengan sendirinya, misalnya untuk menginstal pembaruan. Anda mempertahankan permintaan melalui restart hanya jika Desktop dapat bergabung kembali ke proses, jadi periksa kapan Desktop dapat bergabung kembali sebelum Anda membiarkan tugas berjalan.

Jika Anda kehilangan permintaan, kirim pesan untuk melanjutkan.

Untuk mengurangi seberapa sering tugas berhenti untuk menunggu Anda, dan untuk mendapatkan kabar darinya saat Anda tidak ada, siapkan salah satu dari berikut ini sebelum Anda pergi:

  • Auto mode: pilih auto mode jika tersedia untuk Anda. Setelah pemblokiran berulang, Anda akan ditanya lagi.
  • Aturan allow: di file pengaturan pengguna Anda di mesin jarak jauh, ~/.claude/settings.json, tambahkan aturan allow untuk perintah yang dibutuhkan tugas. Jika organisasi Anda hanya menerima aturan izin dari pengaturan terkelola, minta administrator Anda untuk menambahkannya ke pengaturan terkelola yang mencapai mesin jarak jauh. Untuk aturan allow di .claude/settings.json sebuah proyek, lihat Project allow rules and workspace trust.
  • Hook yang menjawab: konfigurasikan hook PermissionRequest di ~/.claude/settings.json pada mesin jarak jauh untuk mengizinkan atau menolak permintaan atas nama Anda
  • Hook yang memberi tahu Anda: konfigurasikan hook Notification dengan matcher permission_prompt di file yang sama untuk mengirimi diri Anda pesan saat ada permintaan yang menunggu
  • Hook yang memberi tahu Anda saat Claude selesai: konfigurasikan hook Stop di file yang sama untuk mengirimi diri Anda pesan saat Claude selesai merespons. Hook ini tidak berjalan saat error API mengakhiri giliran. Untuk kasus tersebut, konfigurasikan hook StopFailure.

Jika organisasi Anda hanya menjalankan hook terkelola, minta administrator Anda untuk menambahkan hook tersebut ke pengaturan terkelola yang mencapai mesin jarak jauh.

Claude Code tidak menyetujui secara otomatis beberapa tindakan dalam mode izin apa pun, termasuk Bypass permissions. Bergantung pada mode izin, Claude Code menolak tindakan tersebut atau menanyakannya kepada Anda, dan tugas kemudian menunggu jawaban Anda.

Terhubung kembali setelah sleep atau kehilangan jaringan

Jika Desktop belum terhubung kembali saat Anda kembali, kirim pesan di sesi tersebut. Desktop terhubung kembali dengan sendirinya hanya jika dapat masuk tanpa prompt, misalnya dengan kunci yang disimpan oleh SSH agent Anda.

  • Kata sandi yang diingat: kata sandi yang Anda izinkan untuk diingat oleh Desktop juga berfungsi tanpa prompt, tetapi untuk ketidakhadiran yang lama, lebih baik gunakan kunci yang disimpan oleh SSH agent Anda. Jika proses masuk dengan kata sandi tersebut terputus atau macet, Desktop dapat berhenti mencoba terhubung kembali dan menunggu Anda.
  • Prompt lainnya: jika mesin jarak jauh meminta hal lain, seperti kode sekali pakai, Anda dapat menerima notifikasi di komputer Anda. Klik notifikasi tersebut, atau kirim pesan di sesi, dan Desktop akan menampilkan prompt-nya.

Jika jump host meminta proses masuk, gangguan berlangsung lama, output hilang, atau proses sudah tidak ada

  • Jump host, push berhenti saat Anda tidak ada: hal ini dapat terjadi dengan Desktop di macOS atau Linux ketika tidak ada yang menjawab permintaan masuk dari jump host, misalnya push ke ponsel. Desktop kemudian berhenti mencoba terhubung kembali selama tidak ada orang di komputer Anda. Saat Anda membuka kunci atau menggunakan komputer, Anda dapat menerima push lain, karena Desktop dapat mencoba lagi. Setelah tiga upaya yang tidak dijawab, Desktop menunggu hingga Anda melakukan retry atau mengirim pesan.
  • Jump host, push terus berdatangan: jika Desktop tidak dapat mengetahui bahwa tidak ada yang menjawab, seperti pada Desktop di Windows, Desktop terus mencoba selama masih ada proses untuk digabungi kembali, baik proses tersebut masih berjalan maupun tidak. Anda dapat menerima push lain pada setiap upaya. Untuk menghentikan upaya tersebut, keluar dari Desktop, yang dapat membuat Anda kehilangan tugas yang sedang berjalan.
  • Gangguan yang lama: Desktop melambat menjadi sekitar satu upaya setiap lima menit. Untuk terhubung kembali lebih cepat, coba lagi di sesi atau kirim pesan, yang akan dikirimkan Desktop setelah terhubung.
  • Output yang hilang: saat Desktop terputus, program pembantu menyimpan output Claude Code terbaru dari setiap sesi dalam buffer 16 MiB dan membuang output yang lebih lama. Setelah Desktop terhubung kembali, sesi dapat menampilkan Loading recent output from <host>…. Jika Desktop tidak dapat memuat seluruh output, Anda akan melihat baris Some output produced while you were disconnected may be missing here. Baris tersebut tidak berarti bahwa tugas berhenti.
  • Proses sudah tidak ada: proses berakhir saat Desktop terputus, seperti ketika mesin jarak jauh restart. Desktop kemudian dapat memulai proses baru dari riwayat percakapan yang tersimpan dan memberi tahu Claude untuk melanjutkan tugas. Jika tugas tetap berhenti, kirim pesan. Dengan penyedia pihak ketiga, perbarui ke Claude Desktop v2.42304.0 atau yang lebih baru, karena versi sebelumnya tidak pernah melanjutkan tugas dengan sendirinya.
Membuka kembali sesi setelah Anda keluar dari Desktop

Setelah Anda keluar dari Desktop, tugas tetap berjalan di mesin jarak jauh, tetapi berhenti ketika sesi dibuka lagi kecuali Desktop dapat bergabung kembali ke prosesnya. Selama Desktop ditutup, tugas berjalan hingga selesai, membutuhkan Anda, atau mencapai salah satu batasan.

  • Desktop di Windows, tugas dimulai pada versi sebelum v3.1623.0: Anda tidak mendapatkan kembali tugas tersebut, meskipun Desktop telah diperbarui sejak itu. Mulai Desktop lagi hanya ketika Anda memperkirakan tugas sudah selesai, karena sesi dapat terbuka saat Desktop dimulai, dan tugas berhenti ketika sesi terbuka. Jika Anda tidak tahu di versi mana Anda memulai tugas, tunggu juga hingga Anda memperkirakan tugas sudah selesai.
  • Penyedia pihak ketiga di macOS atau Linux, tugas dimulai pada versi sebelum v2.42304.0: Anda tidak mendapatkan kembali tugas tersebut. Mulai Desktop lagi hanya ketika Anda memperkirakan tugas sudah selesai.
  • Tugas lainnya: mulai Desktop dan buka sesi, dan tugas berlanjut jika Desktop bergabung kembali. Desktop tidak selalu dapat bergabung kembali, misalnya setelah beberapa pembaruan Desktop, jadi perbarui sebelum tugas panjang.

Ketika tugas berhenti, sesi dapat menampilkan Restarting Claude Code on <host>… saat Desktop memulai proses baru. Anda juga kehilangan persetujuan atau pertanyaan apa pun yang sedang menunggu Anda. Jika Claude tidak melanjutkan sendiri, kirim pesan, dan Claude melanjutkan dari riwayat percakapan yang tersimpan.

Untuk deployment pihak ketiga, lihat SSH remote sessions in Claude Desktop on 3P.

[!WARNING]

Selama proses Claude Code sebuah percakapan masih berjalan, jangan jalankan claude --resume untuk percakapan tersebut di mesin jarak jauh. Claude Code tidak mencegah Anda, dan kedua proses kemudian menulis ke percakapan yang sama. Jika Anda tidak yakin, tambahkan --fork-session, yang melanjutkan di salinan percakapan, tetapi kedua proses tetap bekerja pada file yang sama.

Memilih lokasi worktree sesi SSH

Kecuali organisasi Anda membatasi folder yang boleh digunakan sesi, sesi SSH baru membuat worktree-nya di lokasi pertama dari berikut ini yang diatur:

  1. Worktree folder pada koneksi SSH
  2. worktree.location di ~/.claude/settings.json pada mesin jarak jauh
  3. <project-root>/.claude/worktrees/, default-nya

Setiap proyek mendapatkan subfoldernya sendiri di folder yang Anda atur, sehingga dengan ~/worktrees, path sebuah worktree adalah ~/worktrees/<project>-<id>/<worktree-name>. Jika folder yang Anda atur berada di dalam proyek, Desktop mengabaikannya untuk proyek tersebut dan menggunakan default. Pada mesin jarak jauh Windows, Desktop selalu menggunakan default.

Mengatur folder worktree pada koneksi yang sudah ada

Atur Worktree folder di pengaturan koneksi yang Anda tambahkan sebelumnya atau koneksi yang dikelola organisasi Anda. Kolom ini memerlukan Claude Desktop v1.44121.0 atau yang lebih baru. Jika organisasi Anda membatasi folder yang boleh digunakan sesi, Desktop menyembunyikan kolom ini dan menyimpan worktree di dalam proyek.

1. Temukan koneksi

Buka pemilih lingkungan dan temukan koneksi di bawah SSH.

2. Buka pengaturan koneksi

Arahkan kursor ke koneksi dan klik ikon roda gigi. Jika dialog yang terbuka menampilkan Edit connection… di sebelah Host, pilih Edit connection….

3. Atur folder

Di Worktree folder, masukkan folder di mesin jarak jauh, seperti ~/worktrees, lalu pilih Save changes.

File dan proses di mesin jarak jauh

Desktop menginstal program pembantu dan Claude Code di bawah ~/.claude/remote/ di direktori home setiap pengguna yang terhubung ke mesin jarak jauh Linux atau macOS. Program pembantu tidak mendengarkan pada port jaringan apa pun, tetapi Claude Code dan program yang dimulainya, seperti server MCP dan server pengembangan, dapat melakukannya.

Folder Isi
~/.claude/remote/srv/ Program pembantu, dalam satu folder per versi
~/.claude/remote/ccd-cli/ Claude Code, dalam satu file per versi
~/.claude/remote/run/ File runtime program pembantu, seperti socket dan log-nya, dalam satu folder per komputer yang terhubung
~/.claude/remote/plugins/ Plugin yang disalin Desktop dari komputer pengguna
~/.claude/uploads/ File yang dilampirkan pengguna ke pesan, dalam satu folder per sesi

Untuk mencantumkan proses milik satu pengguna, jalankan pgrep -fl "$HOME/.claude/remote/" di mesin jarak jauh sebagai pengguna tersebut, atau dengan direktori home pengguna tersebut sebagai pengganti $HOME:

  • Program pembantu: satu atau beberapa proses server untuk setiap komputer yang terhubung
  • Claude Code: proses yang dimulai program pembantu untuk sesi pengguna, masing-masing dari file yang dinamai sesuai versinya, seperti 2.1.295-…

Desktop menjangkau program pembantu melalui koneksi SSH pengguna, melalui Unix socket rpc.sock di folder program pembantu di bawah ~/.claude/remote/run/. Selain root, pengguna lain di mesin tersebut tidak dapat terhubung ke socket itu, karena socket tersebut memiliki mode 600 dan foldernya memiliki mode 700.

Untuk mengetahui kapan program pembantu berhenti dengan sendirinya, lihat Batasan saat Desktop terputus.

Untuk menghapus program pembantu dan Claude Code bagi satu pengguna:

1. Keluar dari Desktop

Keluar dari Desktop di setiap komputer tempat pengguna tersebut terhubung. Desktop menginstal kedua program tersebut lagi saat berikutnya terhubung, dan dapat terhubung kembali dengan sendirinya.

2. Akhiri proses

Dengan masuk sebagai pengguna tersebut di mesin jarak jauh, jalankan kill dengan ID setiap proses Claude Code yang dicantumkan oleh pgrep. Setelah proses-proses tersebut hilang dari daftar, jalankan kill dengan ID setiap proses server. Jika Anda mengakhiri proses server terlebih dahulu, perintah yang sedang dijalankan Claude Code dapat terus berjalan.

Lalu cantumkan proses pengguna yang tersisa, misalnya dengan ps -u "$(id -un)" -f, dan akhiri proses apa pun yang Anda kenali sebagai dimulai oleh Claude Code. Program yang ditinggalkannya di latar belakang dapat terus berjalan setelah Claude Code berakhir, tanpa muncul di daftar pgrep.

3. Hapus folder

Hapus ~/.claude/remote/. Untuk menghapus file milik Claude Code sendiri di ~/.claude/ dan ~/.claude.json, lihat Menghapus file konfigurasi.

Mengakhiri proses satu sesi

Untuk mengakhiri proses Claude Code satu sesi, arsipkan sesi di Desktop saat Desktop terhubung ke mesin jarak jauh. Proses tetap berjalan setelah tugasnya selesai dan setelah Anda keluar dari Desktop.

Sebelum Anda mengarsipkan sesi yang worktree-nya memiliki perubahan yang belum di-commit, lihat Mempertahankan perubahan yang belum di-commit saat sesi diarsipkan.

Melihat pengguna yang menjalankan proses

Program pembantu dan Claude Code berjalan sebagai pengguna yang digunakan Desktop untuk masuk melalui SSH. Menginstal dan memulainya tidak memerlukan sudo. Untuk memeriksa pengguna tersebut, jalankan ps -o user= -p di mesin jarak jauh dengan ID proses yang dicantumkan oleh pgrep.

Program yang dimulai Claude Code, seperti perintah shell dan server MCP, juga dimulai sebagai pengguna tersebut. Tinjau hak pengguna tersebut di mesin jarak jauh, termasuk aturan sudo-nya, seperti yang Anda lakukan untuk orang yang menjalankan perintah di sana.

Melihat siapa yang terhubung ke mesin jarak jauh

Untuk mengetahui siapa yang terhubung ke mesin jarak jauh, baca log server SSH di mesin tersebut, tempat login dari Desktop terlihat seperti login dari terminal. Dengan Desktop di macOS atau Linux, perkirakan satu entri setiap kali Desktop terhubung, bukan satu entri untuk setiap sesi.

Jika server menetapkan MaxSessions 1, akan ada setidaknya dua entri setiap kali Desktop terhubung atau terhubung kembali. Akan ada setidaknya satu entri tambahan untuk setiap tab terminal, dan untuk setiap sesi Desktop tempat Anda menjalankan perintah yang diawali dengan !.

Anda tidak akan menemukan koneksi SSH Desktop di metrik dan event Claude Code. Untuk mengetahui dari metrik dan event tersebut di mesin jarak jauh mana sebuah sesi SSH berjalan, lihat Mengatribusikan telemetri ke sesi SSH Desktop. Untuk riwayat koneksi yang direkam Desktop sendiri, lihat Mendapatkan log Desktop untuk masalah SSH.

Koneksi yang ditutup sebelum login

Jika log server SSH menampilkan koneksi yang ditutup sebelum ada login, koneksi tersebut dapat berupa pengujian port SSH oleh Desktop. Desktop menguji apakah sebuah mesin merespons, misalnya setelah koneksi ke mesin tersebut gagal. Desktop membuka koneksi ke port tersebut dan langsung menutupnya, tanpa mengirim apa pun. Perkirakan satu pengujian atau beberapa berturut-turut, misalnya delapan dalam sekitar dua menit.

Jika tidak ada yang memblokir atau menolak alamat karena koneksi seperti itu, Anda tidak perlu melakukan apa pun terkait pengujian Desktop. Jika alamat yang digunakan Desktop untuk terhubung ditolak atau diblokir, periksa apakah server SSH itu sendiri menolak alamat tersebut dan apakah fail2ban menghitung pengujian Desktop.

Mengenali pengujian di log server SSH

Bandingkan baris-baris di log Anda dengan baris yang ditulis server OpenSSH di Linux untuk sebuah pengujian pada LogLevel default, di baris tabel untuk versi server Anda. Anda dapat melihat baris di kolom terakhir sebagai gantinya jika greeting server tiba sebelum Desktop menutup koneksi:

Versi OpenSSH Baris untuk pengujian Baris jika greeting tiba lebih dulu
6.6 hingga 7.9 Baris dengan Did not receive identification string from 203.0.113.7 Baris yang sama
8.0 hingga 8.2 error: kex_exchange_identification: Connection closed by remote host error: kex_exchange_identification: read: Connection reset by peer
8.3 hingga 9.4 error: kex_exchange_identification: Connection closed by remote host, lalu Connection closed by 203.0.113.7 port 51234 error: kex_exchange_identification: read: Connection reset by peer, lalu Connection reset by 203.0.113.7 port 51234
9.5 hingga 10.2 Connection closed by 203.0.113.7 port 51234 error: kex_exchange_identification: read: Connection reset by peer, lalu Connection reset by 203.0.113.7 port 51234
10.3 hingga 10.5 Connection closed by 203.0.113.7 port 51234 [preauth] error: kex_exchange_identification: read: Connection reset by peer [preauth], lalu Connection reset by 203.0.113.7 port 51234 [preauth]

Program lain yang membuka port dan menutupnya dapat meninggalkan baris yang sama. Jika sebuah baris memiliki alamat, periksa bahwa alamat tersebut adalah alamat yang digunakan komputer dengan Desktop untuk terhubung.

Baris untuk 8.0 hingga 8.2 tidak memiliki alamat. Untuk mendapatkannya, atur LogLevel VERBOSE di sshd_config dan jalankan sshd -T | grep -i loglevel sebagai root. Jika perintah tersebut mencetak loglevel VERBOSE, muat ulang server SSH. Lalu cari baris dengan Connection from 203.0.113.7 port 51234 sebelum baris pengujian.

Memeriksa apakah server SSH itu sendiri menolak alamat tersebut

Jika koneksi ditolak dari alamat yang digunakan bersama oleh banyak komputer dengan Desktop, cari di log server SSH baris yang berakhir seperti ini:

drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

Dengan LogLevel default, OpenSSH 9.8 dan yang lebih baru dapat menulis baris seperti itu saat menolak alamat karena koneksi yang ditutup tanpa mencoba masuk, seperti yang dilakukan pengujian Desktop. Dengan pengaturan default, Anda tidak akan melihat baris seperti itu hanya setelah beberapa pengujian saja.

Untuk mencegah penolakan, atur PerSourcePenaltyExemptList di sshd_config ke alamat yang digunakan orang untuk terhubung, misalnya PerSourcePenaltyExemptList 203.0.113.7. Server kemudian tidak menerapkan penalti apa pun ke alamat tersebut, termasuk penalti untuk login yang gagal. Untuk memeriksa file, jalankan sshd -T | grep -i persourcepenalt sebagai root. Jika perintah tersebut mencetak daftar Anda, muat ulang server SSH.

Memeriksa apakah fail2ban menghitung pengujian Desktop

Jika fail2ban 0.10.5 atau yang lebih baru memblokir alamat yang digunakan Desktop untuk terhubung, temukan mode jail Anda di jail.conf, jail.local atau di bawah jail.d/:

  • Baris filter yang menyebutkan mode dalam tanda kurung siku, seperti filter = sshd[mode=aggressive]: gunakan mode tersebut.
  • Hanya baris filter bawaan, dengan [mode=%(mode)s]: gunakan baris mode, atau normal jika tidak ada.

Jika modenya normal, fail2ban tidak menghitung baris-baris pengujian Desktop, jadi cari penyebab lain pemblokiran tersebut.

Untuk mode lain, salin baris-baris dari log Anda sendiri ke sebuah file di mesin jarak jauh. Salin setiap baris secara utuh, dari tanggalnya hingga akhirnya, dan kedua baris jika sebuah pengujian meninggalkan dua baris. Jalankan fail2ban-regex di sana dengan file tersebut dan mode jail Anda, misalnya aggressive:

fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

Untuk setiap kegagalan yang dihitung fail2ban, perintah tersebut mencetak alamat pada barisnya sendiri, seperti 203.0.113.7. Dalam hal tersebut, cegah pemblokiran. Jika perintah tersebut tidak mencetak apa pun, fail2ban tidak menghitung satu pun baris tersebut dalam mode itu, jadi cari penyebab lain pemblokiran tersebut.

Mencegah pemblokiran oleh fail2ban

Untuk mencegah fail2ban memblokir alamat karena pengujian Desktop, ubah salah satu dari dua pengaturan jail, masing-masing dengan konsekuensinya:

  • mode: atur ke normal di mana pun jail Anda mengaturnya, di baris mode atau di tanda kurung siku baris seperti filter = sshd[mode=aggressive]. Anda kehilangan setiap penghitungan yang hanya dilakukan oleh mode lain, misalnya penghitungan klien yang terhubung lalu pergi tanpa mencoba masuk.
  • ignoreip: atur ke alamat yang digunakan orang untuk terhubung, misalnya ignoreip = 203.0.113.7. fail2ban kemudian tidak menghitung apa pun dari alamat tersebut, termasuk login yang gagal.

Menggunakan server MCP yang disiapkan di mesin jarak jauh

Untuk menggunakan server MCP dari ~/.claude.json atau .mcp.json sebuah proyek dalam sesi SSH, siapkan server tersebut di file-file itu pada mesin jarak jauh. Claude Code memulai server stdio-nya di sana, jadi instal perintah yang dijalankan server tersebut di mesin jarak jauh. Untuk server dari claude_desktop_config.json, lihat Batasan saat Desktop terputus.

Membuka sesi SSH dari tautan

Tautan claude://code/new membuka halaman sesi baru Desktop, dan tautan tersebut dapat menyebutkan koneksi SSH. Letakkan tautan seperti itu di runbook, dasbor, atau halaman wiki untuk membuka Desktop yang sudah disiapkan untuk mesin dan folder yang tepat. Untuk platform yang menghapus tautan seperti itu, lihat Tautan ditampilkan sebagai teks biasa alih-alih dapat diklik.

Tautan SSH memerlukan Claude Desktop v2.110.0 atau yang lebih baru.

Tautan berikut menyebutkan pengguna dev di build.example.com, port 2222, dan folder /srv/payments, serta mengisi prompt:

claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy

Tautan SSH menerima parameter berikut, dan hanya ssh_host yang wajib:

Parameter Nilai
ssh_host host atau user@host, ditulis seperti di bidang SSH host. Nilainya tidak boleh diawali dengan -, dan bagian host hanya menerima huruf, angka, ., _, :, dan -
ssh_port Nomor port dari 1 hingga 65535
ssh_folder Folder di mesin jarak jauh. Awali dengan / atau ~/, atau gunakan ~
q Teks yang di-encode URL untuk kotak prompt

Alias dari ~/.ssh/config berfungsi sebagai ssh_host hanya bagi orang yang memiliki entri tersebut. Untuk mencocokkan koneksi yang sudah dimiliki orang, berikan tautan pengguna, host, dan port yang sama dengan koneksi tersebut.

Saat Anda membuka tautan, Desktop meminta Anda untuk mengonfirmasi sebelum memilih koneksi:

  • Koneksi yang sudah Anda miliki: jika host, pengguna, dan port cocok dengan salah satu koneksi Anda, Desktop menanyakan apakah akan menggunakannya, dan menampilkan nama serta host koneksi tersebut, dan foldernya jika tautan menyebutkannya.
  • Koneksi baru: jika tidak, Desktop membuka dialog untuk menambahkan koneksi SSH. Saat Anda menambahkan koneksi, Desktop menanyakan apakah akan terhubung sebelum menyimpan apa pun, dan menampilkan host dari tautan, serta port dan folder jika tautan menyebutkannya.

Sampai Anda mengonfirmasi, Desktop tidak menyimpan host, port, atau folder dari tautan, dan tidak memilih atau membuka koneksi dengan nilai-nilai tersebut. Jika koneksi SSH sudah dipilih, halaman sesi baru tetap dapat terhubung ke koneksi itu dengan sendirinya, seperti yang dilakukannya tanpa tautan, bahkan ketika tautan menyebutkan host yang sama. Tautan tidak dapat membawa file kunci, kata sandi, atau perintah.

Siapa pun dapat menulis tautan, jadi periksa apa yang diisinya:

  • Sebelum Anda mengonfirmasi: periksa host dan folder.
  • Sebelum Anda mengirim: periksa prompt dan lingkungan yang dipilih.

Desktop mengisi prompt saat tautan dibuka, menggantikan teks apa pun yang belum Anda kirim, dan tidak pernah mengirimkannya untuk Anda. Desktop memperlakukan prompt sebagai teks biasa, sehingga / atau ! di awal dan penyebutan file @ tidak berfungsi sebagai perintah atau penyebutan. Jika Anda membatalkan, prompt tetap berada di kotak dan lingkungan yang telah Anda pilih tidak berubah.

Tautan tidak melewati sshHostAllowlist. Desktop memeriksa allowlist saat terhubung.

Jika tautan membuka Desktop tanpa dialog tentang koneksi, periksa salah satu penyebab berikut:

  • Anda sudah keluar: masuk, lalu buka tautan lagi.
  • Dialog lain sedang terbuka: tutup dialog tersebut, lalu buka tautan lagi.
  • Tautan tidak valid: Desktop menampilkan pesan yang menjelaskan apa yang perlu diperbaiki, dan tidak mengisi prompt.
  • Desktop lebih lama dari v2.110.0: versi sebelumnya mengabaikan parameter SSH dan membuka halaman sesi baru hanya dengan prompt.
  • Sesi SSH dimatikan: jika administrator Anda mengatur allowlist ke array kosong, Desktop menolak tautan SSH.

Buat koneksi SSH dari perintah

Jika ada alat baris perintah yang membuat mesin jarak jauh Anda sesuai permintaan, tambahkan perintahnya ke sshHostCommands di ~/.claude/settings.json. Pemilih lingkungan kemudian mencantumkan item yang dinamai sesuai entri Anda, seperti Create Dev box. Saat Anda memilihnya, Desktop menjalankan perintah di komputer Anda, menyimpan host yang dicetak perintah tersebut sebagai koneksi SSH, lalu terhubung.

[!NOTE]

Koneksi dari perintah memerlukan Claude Desktop v3.6556.0 atau yang lebih baru di macOS atau Linux, dengan masuk menggunakan akun Claude. Admin dapat mendistribusikan perintah ke tim.

Setiap entri adalah satu koneksi, dengan satu host dalam satu waktu. Desktop menjalankan perintah hanya saat Anda membuat koneksi atau mengganti host-nya, bukan setiap kali Anda terhubung. Untuk mempertahankan dua mesin sekaligus, tambahkan entri kedua.

[!WARNING]

Desktop tidak menghentikan atau menghapus mesin. Masing-masing berikut ini tetap berjalan, dan dapat terus menimbulkan biaya, sampai Anda menghapusnya dengan alat Anda:

  • Host yang telah Anda ganti
  • Host dari entri yang Anda hapus dari file, atau yang id-nya Anda ubah
  • Mesin yang dibuat oleh perintah Anda tanpa Desktop menyimpan host-nya, misalnya dalam kasus berikut:
    • Perintah gagal atau kehabisan waktu
    • Desktop tidak dapat menggunakan host yang dicetak, koneksi lain sudah menggunakannya, atau organisasi Anda tidak mengizinkannya
    • Saat perintah berjalan, Anda membatalkannya, menghapus entrinya, mengubah command atau id-nya, atau keluar dari Desktop

Contoh berikut menambahkan koneksi bernama Dev box. Jika file belum ada, buatlah. Jika file sudah berisi pengaturan, tambahkan key di sampingnya. Perintah acme-dev create mewakili alat Anda sendiri, dan ~/project adalah folder yang dipilih Desktop di setiap mesin yang dibuat oleh perintah Anda:

{
  "sshHostCommands": [
    {
      "id": "devbox",
      "name": "Dev box",
      "command": "acme-dev create",
      "startDirectory": "~/project"
    }
  ]
}

Setiap entri menerima kolom berikut, dan id, name, serta command wajib diisi:

Kolom Nilai
id Hingga 64 huruf ASCII, angka, ., _, dan -, diawali dengan huruf atau angka. Gunakan id yang tidak dimiliki entri lain di sshHostCommands atau sshConfigs. Desktop menyimpan host koneksi di bawahnya, jadi jika Anda mengubahnya, koneksi dimulai ulang tanpa host dan mesin lama tetap berjalan.
name Nama koneksi di pemilih lingkungan, hingga 200 karakter dalam satu baris
command Program dan argumennya, seperti yang dijelaskan di Tulis perintah
sshIdentityFile Path ke private key Anda, seperti ~/.ssh/id_ed25519. Kosongkan untuk menggunakan konfigurasi SSH atau SSH agent Anda.
startDirectory Folder default di mesin jarak jauh. Awali dengan / atau ~/, atau gunakan ~.

Untuk mengubah atau menghapus koneksi, edit entrinya di file, karena dialog koneksi SSH di aplikasi tidak terbuka untuknya. Anda tidak perlu memulai ulang Desktop setelah mengedit file. Jika entri tidak muncul atau Anda tidak dapat memilihnya, lihat Jika perintah tidak ada atau berwarna abu-abu.

Tulis perintah

Desktop menjalankan program secara langsung, tanpa shell dan tanpa terminal:

  • Program: tulis namanya, atau path lengkapnya dari /, tanpa spasi. Desktop mencari nama tanpa path di PATH yang diekspor oleh login shell Anda. Path relatif seperti ./acme-dev, path yang diawali dengan ~, serta alias dan fungsi shell tidak berfungsi.
  • Argumen: pisahkan argumen biasa dengan spasi. Perintah hanya boleh berisi spasi, huruf ASCII, angka, dan karakter +,-./:=@_~, dan tidak ada kata yang boleh diawali dengan ~.
  • Skrip: jika perintah memerlukan hal lain, seperti tanda kutip, pipe, variabel, atau URL dengan ? atau &, letakkan di dalam skrip. Jadikan skrip dapat dieksekusi, awali dengan baris #!, dan tetapkan command ke path lengkapnya, seperti /Users/you/bin/make-devbox. Di macOS, jangan letakkan skrip di folder Documents, Desktop, dan Downloads, tempat macOS dapat memblokirnya.
  • Input: program tidak mendapatkan input dan terminal, sehingga tidak dapat meminta apa pun kepada Anda di sana. Jika alat Anda memasukkan Anda melalui browser atau prompt, masuklah dari terminal terlebih dahulu, dan ulangi setiap kali sesi masuk tersebut kedaluwarsa.
  • Lingkungan: program berjalan di direktori home Anda dengan variabel yang diekspor oleh login shell Anda. Desktop membacanya saat dimulai, seperti yang dilakukannya untuk ProxyCommand, jadi keluar dan buka kembali Desktop setelah Anda mengubahnya.
  • Batas waktu: Desktop menghentikan program yang masih berjalan setelah 10 menit. Pesan progres Desktop tidak menampilkan output program. Untuk menghentikan program lebih cepat, pilih Cancel di samping pesan tersebut.

Program harus keluar dengan kode 0 dan hanya mencetak host pada standard output, dalam salah satu dari dua bentuk:

  • Satu baris: host atau user@host, ditulis seperti untuk ssh_host di tautan SSH. Untuk menyebutkan port, gunakan bentuk JSON.
  • Satu objek JSON: sshHost, dan secara opsional sshPort numerik serta startDirectory yang menggantikan milik entri, seperti {"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}

Untuk melihat output yang dibaca Desktop, jalankan perintah di terminal tanpa input dan dengan standard output diarahkan ke file:

acme-dev create < /dev/null > host.txt

File tersebut hanya boleh berisi host. Saat Anda menjalankan pengujian ini, alat Anda juga membuat mesin, jadi hapus mesin itu dengan alat Anda setelahnya.

Jika alat Anda mencetak baris lain sebelum host, seperti pesan progres, bungkus alat tersebut dalam skrip yang hanya mencetak host. Skrip berikut mencetak baris terakhir dari output alat Anda. Jika alat Anda gagal, skrip keluar dengan kode yang sama, sehingga Desktop melaporkan kegagalan tersebut:

#!/bin/bash
out=$(mktemp) || exit
trap 'rm -f "$out"' EXIT
acme-dev create > "$out" || exit
tail -n 1 "$out"

Jika perintah gagal, View details di pesan Desktop menampilkan baris terakhir yang ditulis perintah ke standard error, jika ada.

Terhubung ke host baru

Jawab dua pertanyaan saat pertama kali Anda terhubung ke setiap host baru:

  • Host key: dengan pemeriksaan host key default OpenSSH, periksa fingerprint key, lalu pilih apakah akan terhubung. Untuk melewati pertanyaan ini, buat perintah Anda menambahkan key ke ~/.ssh/known_hosts sebelum mencetak host, menggunakan key yang diketahui alat Anda saat membuat mesin. Untuk port selain 22, baris tersebut diawali dengan [host]:port. Jika alat Anda menggunakan ulang nama host, hapus juga baris key yang lama.
  • Folder: pilih apakah Anda memercayai folder yang Anda buka di sana

Biarkan pemeriksaan host key tetap aktif untuk host-host ini, dan simpan file known_hosts untuk mereka. Jika StrictHostKeyChecking bernilai no atau accept-new dan UserKnownHostsFile juga bernilai /dev/null atau none, tidak ada yang mencatat key. Ketika alat Anda kemudian menggunakan ulang sebuah nama, Anda dapat terhubung ke mesin yang berbeda tanpa peringatan.

Ganti host

Setelah Dev box memiliki host, pemilih mencantumkan Dev box di antara koneksi SSH Anda, dan Create Dev box menjadi Replace Dev box's host. Jika item tersebut tidak ada di daftar, lihat di bawah More.

Pilih item itu saat mesin sudah tidak ada atau Anda menginginkan mesin baru. Di halaman sesi baru, pesan yang menyatakan Desktop tidak dapat menjangkau host juga menawarkannya. Desktop menjalankan perintah lagi, dan sesi baru menggunakan host baru.

  • Host baru: item berwarna abu-abu selama 10 menit setelah Desktop menyimpan host, karena mesin baru dapat memerlukan waktu untuk dimulai. Selama host baru belum merespons, halaman sesi baru terus mencoba terhubung selama 10 menit tersebut.
  • Sesi di host lama: sesi tetap berada di host tersebut, dan Desktop tidak terhubung ke host itu kecuali Anda menambahkannya kembali. Untuk melanjutkan sesi, buka sesi tersebut dan pilih Add SSH connection. Desktop mengisi host lama. Simpan sebagai koneksi tersendiri.
Distribusikan perintah ke tim Anda

Untuk memberikan koneksi kepada tim Anda, tetapkan sshHostCommands di file pengaturan terkelola Claude Code atau kebijakan MDM di setiap komputer, bukan di kebijakan manajemen perangkat milik aplikasi desktop sendiri. Pengguna melihat entri Anda bersama entri mereka sendiri, dan aplikasi tidak menyediakan cara untuk mengedit atau menghapus entri, baik milik mereka maupun milik Anda.

File pengaturan terkelola berikut memberi pengguna koneksi bernama Dev box dan mematikan entri milik mereka sendiri, bersama dengan hook Claude Code dari pengaturan pengguna, proyek, dan lokal:

{
  "sshHostCommands": [
    {
      "id": "acme-devbox",
      "name": "Dev box",
      "command": "/usr/local/bin/acme-dev create"
    }
  ],
  "strictPluginOnlyCustomization": ["hooks"]
}

Sebelum Anda men-deploy key tersebut, pastikan setiap hal berikut:

  • Tempat meletakkan key: jika kebijakan MDM Anda untuk Claude Code sudah menetapkan policy key, letakkan di sana. Jika tidak, letakkan di file pengaturan terkelola. Secara default, kebijakan seperti itu mengungguli file, dan Desktop kemudian mengabaikan entri di file. Tetapkan di komputer bahkan di tempat pengaturan yang dikelola server berlaku: Desktop mengabaikan key tersebut di sana, serta di pengaturan proyek dan lokal.
  • id: jika entri sshHostCommands milik pengguna memiliki id Anda, hanya milik Anda yang berfungsi. Jika koneksi SSH lain memilikinya, seperti koneksi di sshConfigs milik pengguna, entri Anda berwarna abu-abu. Pilih id yang kemungkinan kecil dipilih pengguna.
  • Program: berikan path lengkapnya, karena Desktop mencari nama tanpa path di PATH milik masing-masing pengguna. Program berjalan sebagai pengguna, dengan variabel yang diekspor oleh login shell mereka.
  • Entri milik pengguna: Desktop memperlakukan entri pengguna seperti hook, karena keduanya menjalankan program di komputer. Untuk hanya mengizinkan entri Anda, tetapkan strictPluginOnlyCustomization ke ["hooks"], atau tambahkan "hooks" ke daftarnya. Anda juga menghentikan hook Claude Code dari pengaturan pengguna, proyek, dan lokal, tanpa cara untuk mempertahankannya. Jika Anda menetapkan key tersebut atau allowManagedHooksOnly ke true, Anda memblokir lebih banyak, seperti yang dicantumkan di entri masing-masing key.
  • Setiap entri: untuk juga mematikan entri Anda, tetapkan disableAllHooks di pengaturan terkelola. Jika Anda menetapkan disableDesktopLocalSessions, atau sshHostAllowlist yang tidak mengizinkan host apa pun, pemilih tidak mencantumkan item Create atau Replace.
  • Tempat penguncian berlaku: untuk entri-entri ini, Desktop membaca allowManagedHooksOnly, strictPluginOnlyCustomization, dan disableAllHooks dari pengaturan yang dikelola server dan dari file atau kebijakan milik komputer itu sendiri, lalu menerapkan hasil yang lebih ketat. Setiap entri tetap berwarna abu-abu sampai Desktop memeriksa claude.ai untuk pengaturan yang dikelola server, bahkan jika organisasi Anda tidak memilikinya.
  • Host yang diizinkan: jika Anda menetapkan sshHostAllowlist, pastikan ada pola yang cocok dengan setiap hostname yang dicetak alat Anda, dan jangan sertakan user@ dalam pola. Desktop memeriksa nama yang dicetak hanya setelah perintah dijalankan, sehingga mesin yang ditolak daftar sudah terlanjur ada, dan pengguna harus menghapusnya dengan alat Anda. Pada setiap koneksi, HostName yang di-resolve juga harus cocok.

Setelah Anda men-deploy key, mulai ulang Desktop di komputer pengujian. Di pemilih lingkungan tab Code, lihat di bawah SSH, atau di baris tunggal SSH. Entri Anda ditampilkan sebagai item Create, atau sebagai item abu-abu yang memberikan alasannya saat Anda mengarahkan kursor ke atasnya. Jika entri tidak ada, periksa tempat Anda meletakkan key, lalu kasus-kasus di Jika perintah tidak ada atau berwarna abu-abu.

Jika perintah tidak ada atau berwarna abu-abu

Pemilih lingkungan tidak mencantumkan item Create atau Replace dalam kasus berikut:

  • File: ~/.claude/settings.json memiliki JSON yang tidak valid atau nilai yang ditolak skema, Anda salah mengeja key, atau Anda meletakkannya di pengaturan proyek. Perbaiki file tersebut.
  • Platform dan akun: Anda menggunakan Windows, atau penyedia pihak ketiga alih-alih akun Claude. Tambahkan setiap host sebagai koneksi SSH sendiri.
  • Pengaturan organisasi Anda: admin Anda mematikan sesi lokal, atau mematikan sesi SSH. Tanyakan kepada mereka apakah Anda dapat menggunakan perintah.
  • Tidak ada program ssh: Desktop tidak dapat menjalankan klien OpenSSH di komputer Anda. Instal klien tersebut, atau minta admin Anda untuk mengizinkannya, lalu mulai ulang Desktop.

Entri yang tidak dapat Anda pilih berwarna abu-abu. Arahkan kursor ke atasnya untuk melihat alasannya:

  • Kesalahan di entri: perbaiki kolom atau perintah yang disebutkan pesan. Jika id sudah digunakan, berikan id lain untuk entri tersebut.
  • File pengaturan rusak: selama file pengaturan Anda sendiri rusak, entri admin Anda mungkin berwarna abu-abu, dengan pesan yang menyebutkan file tersebut. Perbaiki file tersebut.
  • Host baru: Anda dapat mengganti host setelah host berusia 10 menit.
  • Hook dimatikan atau dibatasi: entri Anda sendiri hanya berfungsi di tempat hook Anda sendiri dapat berjalan. Hapus disableAllHooks dari pengaturan Anda, atau tanyakan kepada admin Anda.
  • Pengaturan masih dimuat: setiap entri berwarna abu-abu sampai Desktop memuat pengaturan yang dikelola server milik organisasi Anda, biasanya beberapa detik setelah diluncurkan. Jika entri tetap abu-abu, periksa koneksi Anda ke claude.ai.

Pre-configure SSH connections for your team

Admin dapat mendistribusikan koneksi SSH kepada anggota tim dengan mengatur sshConfigs di pengaturan terkelola.

  • Apa yang dilihat pengguna: koneksi yang didefinisikan dengan cara ini muncul secara otomatis di pemilih lingkungan setiap pengguna.
  • Apa yang dapat diubah pengguna: pengguna dapat memilih koneksi terkelola dan mengatur Worktree folder mereka sendiri untuk koneksi tersebut. Mereka tidak dapat mengedit kolom lainnya atau menghapusnya di aplikasi.

Contoh berikut pre-configure satu koneksi:

{
  "sshConfigs": [
    {
      "id": "shared-dev-vm",
      "name": "Shared Dev VM",
      "sshHost": "user@dev.example.com",
      "sshPort": 22,
      "sshIdentityFile": "~/.ssh/id_ed25519"
    }
  ]
}

Setiap entri memerlukan id, name, dan sshHost. Bidang sshPort dan sshIdentityFile bersifat opsional. Pengguna juga dapat menambahkan sshConfigs ke ~/.claude/settings.json mereka sendiri.

Jika Anda tidak menyertakan user@ di sshHost, Desktop terhubung sebagai User yang diatur oleh ~/.ssh/config milik setiap developer untuk host tersebut, atau jika tidak ada, sebagai nama pengguna mereka di komputer mereka sendiri.

Restrict which SSH hosts users can connect to

Administrator dapat membatasi sesi SSH Desktop ke set host yang disetujui dengan mengatur sshHostAllowlist di pengaturan terkelola. Ketika diatur, pengguna hanya dapat terhubung ke host yang nama hostname terselesaikannya cocok dengan salah satu pola. Atur ke array kosong untuk menonaktifkan sesi SSH. Entri referensi sshHostAllowlist menjelaskan bagaimana array kosong digabungkan dengan daftar di sumber terkelola lainnya.

Contoh berikut memungkinkan koneksi ke host apa pun di bawah devboxes.example.com dan ke satu host bastion bernama:

{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}

[!WARNING]

Jika organisasi Anda mengirimkan pengaturan yang dikelola server, atur sshHostAllowlist di sana. Secara default, Desktop membaca kunci tersebut hanya dari sumber terkelola berperingkat tertinggi yang mengirimkan kunci kebijakan. Jika sumber tersebut membiarkan kunci tidak diatur, Desktop mengabaikan daftar dalam kebijakan MDM atau file pengaturan terkelola yang berperingkat lebih rendah dan memperlakukan kunci tersebut sebagai tidak diatur. Desktop tidak menampilkan peringatan apa pun.

Simpan juga daftar yang sama di mesin setiap pengguna, dalam kebijakan MDM atau file pengaturan terkelola berperingkat tertinggi di mesin tersebut. Desktop mengambil pengaturan yang dikelola server saat diluncurkan dan tidak menyimpan salinan cache, sehingga sampai pengambilan berhasil, daftar milik mesin itulah yang berlaku.

Pola tidak peka huruf besar/kecil. * cocok dengan host mana pun, dan *.example.com cocok dengan example.com serta subdomain mana pun. Selain itu merupakan kecocokan persis. Pemeriksaan dijalankan terhadap hostname setelah resolusi ~/.ssh/config melalui ssh -G, sehingga alias Host diizinkan selama HostName hasil resolusinya cocok. Jump host dari sebuah sesi juga harus cocok.

sshHostAllowlist dibaca dari managed settings saja; nilai dalam pengaturan pengguna atau proyek diabaikan. Hanya aplikasi Claude Desktop yang menghormati pengaturan ini; CLI Claude Code dan ekstensi IDE tidak membacanya, dan itu tidak membatasi perintah ssh yang dijalankan melalui alat Bash. Ini mengatur host mana yang terhubung oleh aplikasi Desktop, bukan egress jaringan, jadi pasangkan dengan kontrol jaringan organisasi Anda atau kontrol zero-trust jika Anda memerlukan batas yang keras.

Mengizinkan jump host

Tambahkan setiap jump host yang diperiksa Desktop ke sshHostAllowlist, berdasarkan HostName hasil resolusinya sendiri. Tambahkan jump host sebelum pengguna memperbarui ke Claude Desktop v3.1623.0 atau yang lebih baru, atau mereka tidak dapat terhubung melaluinya.

[!WARNING]

Daftar ini hanya memiliki satu jenis entri, sehingga pengguna juga dapat memulai sesi di host mana pun yang Anda cantumkan. Cantumkan hanya jump host yang juga akan Anda izinkan untuk menjalankan sesi pengguna.

Desktop memeriksa jump host dalam ProxyJump yang diatur oleh ~/.ssh/config pengguna untuk host sesi, atau dalam ProxyCommand yang ditulis sebagai ssh -W %h:%p <host>. Jika jump host yang diperiksanya tidak ada dalam daftar saat Desktop menghubungkan atau menghubungkan ulang sesi, koneksi gagal. Saat pengguna memulai sesi atau mengirim pesan, detail galat memberikan HostName jump host tersebut, yaitu nama yang perlu ditambahkan:

SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".

Jika pesan menyebutkan managed settings on this computer, tambahkan nama tersebut ke daftar di komputer pengguna. Jika lebih dari satu jump host belum tercantum, galat menyebutkannya satu per satu. Untuk menemukan setiap nama sebelum pengguna memperbarui, gunakan terminal di komputer pengguna:

1. Temukan rutenya

Jalankan ssh -G dengan host yang dihubungi pengguna, seperti ssh -G devbox. Cari baris proxyjump, atau baris proxycommand yang ditulis sebagai ssh -W %h:%p <host>. Perintah tersebut tetap dihitung dengan salah satu dari -l, -p, -J, -q, -v, -N, -T, -x, atau -a, dan host setelah -J juga merupakan jump host. Jika baris proxycommand menjalankan program selain ssh, jangan tambahkan apa pun untuknya.

2. Cari setiap jump host

Jalankan ssh -G dengan setiap jump host pada baris tersebut, tanpa :port, dan catat hostname yang dicetaknya. Jika output untuk jump host pertama pada baris tersebut memiliki baris dari salah satu jenis tersebut, ulangi langkah ini dengannya. Abaikan baris seperti itu dalam output jump host berikutnya.

3. Tambahkan nama-namanya

Tambahkan setiap hostname, atau wildcard yang mencakupnya, ke sshHostAllowlist di setiap sumber terkelola tempat Anda mengatur daftar. Kemudian minta pengguna untuk keluar dan membuka kembali Desktop, karena Desktop mengambil pengaturan yang dikelola server saat diluncurkan.

Mematikan sesi lokal dan mendistribusikan koneksi SSH

Untuk mematikan sesi lokal dan membatasi sesi SSH ke host yang Anda pilih, terapkan disableDesktopLocalSessions, sshConfigs, dan sshHostAllowlist secara bersamaan.

[!NOTE]

Penyiapan ini ditujukan bagi pengguna yang masuk dengan akun Claude. Dengan penyedia pihak ketiga, sesi SSH dimatikan secara default, dan mengatur sshHostAllowlist dapat mengaktifkannya. Baca SSH remote sessions in Claude Desktop on 3P sebelum Anda menerapkan kunci-kunci ini.

Contoh berikut mematikan sesi lokal, menambahkan satu koneksi, dan membatasi sesi SSH ke host koneksi tersebut:

{
  "disableDesktopLocalSessions": true,
  "sshConfigs": [
    {
      "id": "shared-dev-vm",
      "name": "Shared Dev VM",
      "sshHost": "dev.example.com"
    }
  ],
  "sshHostAllowlist": ["dev.example.com"]
}

Kunci-kunci ini berlaku untuk aplikasi desktop. Kunci-kunci ini tidak mengubah cara lain untuk menjalankan Claude Code, seperti CLI, Cowork, dan sesi cloud:

  • CLI: tidak ada satu pun kunci yang mencegah developer menjalankan CLI Claude Code di komputer mereka sendiri
  • Cowork: tidak ada satu pun kunci yang berlaku untuk sesi Cowork atau tugas terjadwal Cowork
  • Sesi cloud: tidak ada satu pun kunci yang mengubah ketersediaan sesi cloud. Untuk mematikannya, gunakan pengaturan Cloud sessions di bawah Admin console controls.

Saat Anda menyesuaikan contoh tersebut, periksa hostname, versi Desktop, dan hak akses file:

  • Hostname: pastikan bahwa sebuah pola di sshHostAllowlist cocok dengan hostname setiap entri sshConfigs, tanpa user@, atau developer tidak dapat terhubung ke host tersebut. Tambahkan juga pola yang cocok dengan setiap jump host yang diperiksa Desktop dalam perjalanan ke host tersebut. Untuk cara Desktop mencocokkan hostname, lihat Membatasi host SSH yang dapat dihubungi pengguna.
  • Versi: disableDesktopLocalSessions memerlukan Claude Desktop v1.37937.0 atau yang lebih baru
  • Hak akses file: pastikan bahwa akun setiap developer di komputer dapat membaca file pengaturan terkelola. Desktop tidak menerapkan kunci dalam file yang tidak dapat dibaca oleh akun tersebut, dan Claude Code juga dimulai tanpa kunci-kunci tersebut.

Letakkan ketiga kunci tersebut dalam satu sumber terkelola, yaitu sumber berperingkat tertinggi yang Anda kirimkan. Jika Anda mengirimkan pengaturan yang dikelola server, simpan juga salinan ketiga kunci tersebut dalam kebijakan MDM atau file pengaturan terkelola berperingkat tertinggi di setiap komputer. Desktop mengambil pengaturan yang dikelola server saat diluncurkan, dan salinan di komputer berlaku sampai pengambilan berhasil.

Untuk mengonfirmasi bahwa pengaturan berlaku, periksa komputer seorang developer:

1. Periksa pemilih lingkungan

Keluar dan buka kembali Desktop, lalu buka pemilih lingkungan. Pengaturan telah berlaku jika pemilih menampilkan:

  • Entri untuk komputer tersebut, berwarna abu-abu
  • Shared Dev VM di bawah SSH. Jika tidak tercantum di sana, klik baris SSH tunggal, atau More di akhir grup.

Jika entri untuk komputer masih tersedia, periksa penyebab berikut:

  • Versi Desktop: perbarui Desktop jika versinya lebih lama dari v1.37937.0.
  • File pengaturan terkelola: pastikan file tersebut merupakan JSON yang valid.
  • Sumber terkelola: pastikan komputer membaca sumber terkelola yang menyimpan kunci-kunci tersebut.

2. Tambahkan host yang tidak ada di allowlist

Tambahkan koneksi SSH dengan hostname yang tidak ada di allowlist, seperti other.example.com. Desktop menyimpan koneksi tetapi menolak untuk terhubung, dan menyatakan bahwa pengaturan organisasi Anda tidak mengizinkan koneksi tersebut.

Konfigurasi Enterprise

Organisasi pada rencana Team atau Enterprise dapat mengelola perilaku aplikasi desktop melalui kontrol konsol admin, file pengaturan terkelola, dan kebijakan manajemen perangkat.

Kontrol konsol admin

Pengaturan ini dikonfigurasi melalui konsol pengaturan admin:

  • Desktop: kontrol apakah pengguna di organisasi Anda dapat mengakses Claude Code di aplikasi desktop
  • Cloud sessions: aktifkan atau nonaktifkan sesi cloud untuk organisasi Anda
  • Remote Control: aktifkan atau nonaktifkan Remote Control untuk organisasi Anda

Di organisasi Enterprise yang mengaktifkan HIPAA, toggle Desktop nonaktif secara default dan seorang Owner dapat mengaktifkannya. Menerapkan konfigurasi HIPAA akan menonaktifkannya, bahkan jika sebelumnya aktif, sehingga Owner harus mengaktifkannya kembali setelahnya. Cloud sessions dan Remote Control juga nonaktif secara default, dan Owner tidak dapat mengaktifkannya setelah organisasi menerapkan konfigurasi HIPAA.

[!NOTE]

Formulir OpenTelemetry untuk Cowork di bawah Monitoring dalam Data and privacy settings konsol admin berlaku untuk sesi Cowork saja. Dalam sesi Cowork di mesin ini, aplikasi desktop meneruskan kolektor tersebut ke Claude Code sebagai environment variable OTEL_*, sehingga formulir berlaku meskipun Claude Code dalam sesi tersebut tidak pernah mengambil pengaturan konsol admin.

Untuk mengekspor telemetri dari sesi Code tab, atur CLAUDE_CODE_ENABLE_TELEMETRY dan variabel OTEL_* dalam blok env dari pengaturan terkelola Claude Code Anda, seperti yang ditunjukkan dalam administrator configuration for monitoring. Sesi lokal, cloud, dan SSH masing-masing membaca pengaturan terkelola dari sumber yang berbeda. Untuk host yang dapat dijangkau sesi cloud, lihat network access. Untuk service.name yang dilaporkan sesi Code tab, lihat service information.

Untuk mengetahui di mesin jarak jauh mana sebuah sesi SSH berjalan, lihat Attribute telemetry to Desktop SSH sessions.

Pengaturan terkelola

Pengaturan terkelola menimpa pengaturan proyek dan pengguna dan berlaku untuk sesi Claude Code di Desktop. Anda dapat mengatur kunci ini di file pengaturan terkelola organisasi Anda atau mendorongnya dari jarak jauh melalui konsol admin, kecuali baris kunci tersebut menyatakan lain.

Key Description
permissions.disableBypassPermissionsMode atur ke "disable" untuk mencegah pengguna dari mengaktifkan Bypass permissions mode.
disableAutoMode atur ke "disable" untuk menghapus mode Auto dari pemilih mode. Juga diterima di bawah permissions.
autoMode sesuaikan apa yang dipercaya dan diblokir oleh pengklasifikasi auto mode di seluruh organisasi Anda. Lihat Configure auto mode.
browserExternalPageTools atur ke "disabled" untuk mencegah Claude menggunakan tools untuk membaca atau bertindak pada halaman eksternal di Browser pane. Pengguna masih dapat menavigasi ke situs eksternal sendiri, dan pratinjau server dev lokal tidak terpengaruh.
disableMobileSimulatorTools atur ke true untuk memblokir tools Claude untuk mengontrol dan menangkap perangkat di iOS Simulator pane. Pane tetap dapat digunakan untuk ketukan pengguna sendiri; hanya akses Claude yang dihapus. Nilainya harus berupa boolean JSON true; string "true" diabaikan.
disableBrowserExternalNavigation atur ke true untuk mematikan penjelajahan eksternal di Browser pane sepenuhnya. Baik pengguna maupun Claude tidak dapat menavigasi ke situs eksternal, dan pratinjau server dev localhost tidak terpengaruh. Nilainya harus berupa boolean JSON true; string "true" diabaikan.
sshConfigs pre-configure SSH connections yang muncul di pemilih lingkungan. Pengguna tidak dapat menghapus koneksi yang dikelola atau mengedit apa pun selain Worktree folder mereka sendiri.
sshHostCommands berikan pengguna koneksi SSH yang host-nya berasal dari sebuah perintah, di samping koneksi mereka sendiri. Desktop membacanya dari file pengaturan terkelola atau kebijakan MDM di komputer, dan mengabaikannya dalam server-managed settings. Memerlukan Claude Desktop v3.6556.0 atau lebih baru di macOS atau Linux, dengan masuk menggunakan akun Claude.
sshHostAllowlist batasi SSH sessions ke host yang nama hostname yang diselesaikannya cocok dengan salah satu pola ini. Dibaca dari pengaturan terkelola saja.
disableDesktopLocalSessions atur ke true untuk mematikan Code sessions yang berjalan di perangkat, meninggalkan sesi SSH ke host lain dan sesi cloud tersedia. Nilainya harus berupa boolean JSON true. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.37937.0 atau lebih baru.
disableSshSavedPasswords atur ke true untuk menghentikan Desktop dari menawarkan untuk mengingat kata sandi SSH serta dari menggunakan atau menampilkan kata sandi yang telah disimpannya sebelumnya. Mengaktifkannya tidak menghapus kata sandi tersebut. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.49585.0 atau lebih baru.
managedMcpServers dorong konfigurasi server MCP ke semua pengguna. Tersedia dalam deployment Desktop pihak ketiga (3P) saja. Di setiap entri, atur transport "http", "sse", atau "stdio", detail koneksi, dan secara opsional peta toolPolicy untuk membatasi tools mana dari server tersebut yang dapat dipanggil pengguna. Berikan melalui file pengaturan terkelola, MDM, atau kebijakan gateway aplikasi Claude desktop block, karena deployment 3P tidak menerima pengaturan konsol admin. Untuk memberikannya melalui gateway, Anda memerlukan Claude Code v2.1.232 atau lebih baru di server gateway. Ini adalah kunci aplikasi desktop itu sendiri; Claude Code membaca pengaturan terkelola dengan nama yang sama miliknya sendiri, dengan bentuk entri yang berbeda.

Pengaturan terkelola mana yang mencapai sesi Desktop tergantung pada tempat sesi tersebut berjalan. Pembatasan model seperti availableModels diberlakukan dalam sesi Claude Code Desktop dengan cara yang sama seperti di CLI terminal; lihat surface coverage.

  • Sesi lokal di mesin ini: file pengaturan terkelola yang di-deploy ke disk berlaku. Pengaturan terkelola yang didorong dari jarak jauh melalui konsol admin juga mencapai sesi ini di API Anthropic ketika sesi mengautentikasi dengan login yang memenuhi syarat, mengikuti urutan prioritas pengaturan yang sama seperti CLI terminal.
  • Sesi cloud: menerima server-managed settings; file yang di-deploy ke perangkat tidak mencapainya, karena mereka berjalan pada VM yang dikelola Anthropic. Sesi yang dialihkan ke self-hosted environment juga membaca file pengaturan terkelola dalam gambar runner. Bagaimana Claude Code menggabungkan sumber yang dikelola mengatakan kapan file tersebut berlaku.
  • Sesi SSH: sesi membaca file pengaturan terkelola dari host jarak jauh. Desktop itu sendiri membaca sshConfigs, sshHostAllowlist, disableSshSavedPasswords, dan disableDesktopLocalSessions di mesin lokal. Jika Anda memberikan lebih dari satu sumber terkelola, Desktop membacanya dari satu sumber secara default.
  • Cowork sessions: dalam sesi Cowork di mesin ini, Claude Code tidak pernah mengambil pengaturan konsol admin, bahkan ketika pengguna masuk dengan akun Team atau Enterprise, dan membaca kebijakan yang di-deploy ke mesin kecuali konfigurasi Claude Desktop Anda menetapkan requireCoworkFullVmSandbox. Sesi Cowork jarak jauh tidak menerima keduanya. Lihat di mana dan kapan kebijakan berlaku untuk file perangkat mana yang mencapai Cowork, dan MCP permission rules untuk bagaimana aturan Bash dan WebFetch berlaku untuk tools Cowork.

Dalam sesi lokal dan SSH, aplikasi desktop mengirimkan setiap konektor claude.ai yang terhubung pengguna ke Claude Code secara langsung. Tidak ada pengaturan MCP atau managed-mcp.json yang mencapai konektor tersebut, sumber pengaturan atau lokasi file mana pun yang Anda gunakan. Untuk memblokir tools konektor dalam sesi ini, gunakan connector tool controls organisasi Anda. Bagaimana konektor mencapai Claude Code menunjukkan pengaturan mana yang mengatur konektor di setiap jenis sesi.

permissions.disableBypassPermissionsMode dan disableAutoMode juga bekerja di pengaturan pengguna dan proyek, tetapi menempatkannya di pengaturan terkelola mencegah pengguna dari menimpanya.

Untuk kunci izin, plugin, dan pengiriman yang hanya dapat diatur oleh sumber yang dikelola, lihat Keys only managed settings can set.

Kebijakan manajemen perangkat

Tim IT dapat mengelola aplikasi desktop melalui MDM di macOS, group policy di Windows, atau file kebijakan di Linux. Kebijakan yang tersedia termasuk mengaktifkan atau menonaktifkan fitur Claude Code, mengontrol auto-updates di macOS dan Windows, dan menetapkan URL deployment kustom.

  • macOS: konfigurasikan melalui domain preferensi com.anthropic.claudefordesktop menggunakan alat seperti Jamf atau Kandji
  • Windows: konfigurasikan melalui registri di SOFTWARE\Policies\Claude
  • Linux: konfigurasikan melalui file milik root di /etc/claude-desktop/managed-settings.json, yang menyimpan kunci kebijakan sebagai objek JSON. Desktop menolak file tersebut jika siapa pun selain root dapat menulis ke file tersebut atau ke foldernya. File ini berbeda dari file pengaturan terkelola Claude Code.

Batasi proses masuk ke organisasi Anda

Untuk membatasi organisasi claude.ai mana yang dapat masuk ke Claude Desktop, atur forceLoginOrgUUID dalam kebijakan Claude Desktop.

Kunci ini memerlukan Claude Desktop v1.2581.0 atau lebih baru.

Di Linux, file kebijakan yang hanya mengatur kunci ini berisi:

{
  "forceLoginOrgUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Ganti placeholder tersebut dengan ID organisasi claude.ai Anda, yang ditampilkan di pengaturan admin claude.ai. Ini adalah ID yang sama dengan yang digunakan oleh pengaturan forceLoginOrgUUID Claude Code. Untuk contoh macOS dan Windows yang mengatur kunci ini, lihat Deploy the Claude Desktop policy dalam panduan Cowork untuk organisasi yang siap HIPAA.

Jika Anda mengatur forceLoginMethod dan forceLoginOrgUUID di pengaturan terkelola Claude Code, Anda tidak mengubah layar masuk Claude Desktop.

Persyaratan akses jaringan

Desktop memuat kode aplikasinya dan konten pengguna dari host CDN Anthropic.

anthropic.com
*.anthropic.com
claude.ai
*.claude.ai
claude.com
*.claude.com
claude.app
*.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com

Lalu lintas adalah HTTPS pada port 443 kecuali Anda mengonfigurasi port kustom untuk OTLP, gateway LLM, atau server MCP.

Untuk server proxy, otoritas sertifikat kustom, mTLS, dan domain yang dibutuhkan CLI standalone, lihat network configuration.

Untuk mengurangi jumlah wildcard firewall, izinkan host Anthropic ini sebagai gantinya. Subdomain tertentu dihasilkan secara dinamis dan harus tetap sebagai wildcard.

anthropic.com
api.anthropic.com
a-api.anthropic.com
a-cdn.anthropic.com
s-cdn.anthropic.com
assets-proxy.anthropic.com
claude.ai
a.claude.ai
assets.claude.ai
downloads.claude.ai
*.livepreview.claude.ai
claude.com
platform.claude.com
sso.claude.com
*.livepreview.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com

Jika organisasi Anda memiliki IP allowlisting diaktifkan untuk Claude, arahkan bridge.claudeusercontent.com melalui egress proxy yang sama dengan claude.ai dan api.anthropic.com. Jika Anda tidak dapat mengarahkannya dengan cara itu, tambahkan alamat egress yang digunakan proxy Anda untuk host tersebut ke allowlist IP organisasi Anda, tetapi hanya ketika alamat tersebut didedikasikan untuk organisasi Anda: rentang egress proxy bersama juga mengakui pelanggan lain dari vendor proxy.

Anthropic memeriksa koneksi ke host tersebut terhadap allowlist IP organisasi Anda menggunakan alamat yang mereka tiba. Jika proxy Anda mengirimkan lalu lintas untuk itu melalui alamat yang tidak ada di allowlist tersebut, Claude di Chrome dan fitur lain yang terhubung melalui bridge berhenti bekerja sementara sisa aplikasi terus bekerja.

Artifact yang memuat typeface dari Google Fonts juga meminta fonts.googleapis.com dan fonts.gstatic.com. Kedua host bersifat opsional. Jika Anda memblokir mereka, artifact merender dalam typeface fallback. Blokir dengan penolakan cepat daripada drop senyap sehingga permintaan font gagal segera daripada menunda render pertama halaman.

Artifact juga dapat memuat pustaka JavaScript, seperti React atau paket charting, dari cdnjs.cloudflare.com, cdn.jsdelivr.net, cdn.tailwindcss.com, code.jquery.com, dan unpkg.com, dan dari tidak ada host eksternal lainnya. Jika Anda memblokir host tersebut, bagian artifact yang bergantung pada pustaka tidak berfungsi, dan tidak seperti font yang diblokir, pustaka yang diblokir tidak memiliki fallback. Blokir dengan penolakan cepat di sini juga, sehingga permintaan pustaka yang diblokir gagal sekaligus daripada menggantung sampai timeout.

Autentikasi dan SSO

Organisasi Team dan Enterprise dapat memerlukan SSO untuk semua pengguna. Lihat authentication untuk detail tingkat rencana dan Setting up SSO untuk konfigurasi SAML; setup OIDC tercakup dalam Claude Enterprise Administrator Guide.

Penanganan data

Claude Code memproses kode Anda secara lokal dalam sesi lokal, atau dalam sesi cloud pada infrastruktur yang dikelola Anthropic, kecuali organisasi Anda mengarahkannya ke self-hosted environment. Sesi cloud, termasuk dalam self-hosted environment, mengirimkan percakapan dan konteks kode ke API Anthropic untuk diproses; sesi lokal dan SSH mengirimkannya ke model provider mana pun yang dikonfigurasi deployment Anda, API Anthropic secara default. Lihat data handling untuk detail tentang retensi data, privasi, dan kepatuhan.

Deployment

Desktop dapat didistribusikan melalui alat deployment enterprise:

  • macOS: distribusikan melalui MDM seperti Jamf atau Kandji menggunakan installer .dmg
  • Windows: deploy melalui paket MSIX. Lihat Deploy Claude Desktop for Windows untuk opsi deployment enterprise termasuk instalasi senyap

Untuk domain yang akan dimasukkan ke allowlist dalam firewall Anda, lihat network access requirements di atas. Untuk pengaturan proxy, otoritas sertifikat kustom, dan gateway LLM, lihat network configuration.

Untuk referensi konfigurasi enterprise lengkap, lihat enterprise configuration guide.

Datang dari CLI?

Jika Anda sudah menggunakan CLI Claude Code, Desktop menjalankan mesin yang sama dengan antarmuka grafis. Anda dapat menjalankan keduanya secara bersamaan di mesin yang sama, bahkan di proyek yang sama. Masing-masing mempertahankan daftar sesi terpisah, dan Anda dapat membawa sesi CLI ke Desktop. Mereka berbagi konfigurasi dan memori proyek melalui file CLAUDE.md.

Untuk memindahkan sesi CLI ke Desktop, jalankan /desktop di terminal. Claude menyimpan sesi Anda dan membukanya di aplikasi desktop, kemudian keluar dari CLI. Perintah ini tersedia di macOS dan Windows x64 ketika Anda masuk dengan langganan Claude. Perintah ini tidak tersedia dengan autentikasi kunci API atau di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

Dari shell Anda, claude --desktop membuka Desktop secara langsung tanpa memulai sesi terminal. Ini memerlukan Claude Code v2.1.285 atau lebih baru dan memiliki persyaratan platform dan sign-in yang sama dengan /desktop. Tanpa argumen lain, ini membuka Desktop di direktori saat ini. Untuk membuka sesi CLI yang ada di Desktop, tambahkan --continue untuk percakapan paling baru di direktori ini, atau --resume dengan ID sesi yang ditampilkan /status:

claude --desktop --resume <session-id>

Claude Code mencetak Opening session <session-id> in Claude Desktop, sesi terbuka di aplikasi, dan perintah keluar. Nama sesi tidak berfungsi sebagai pengganti ID. Claude Code tidak memindahkan sesi yang terbuka di terminal lain atau masih berjalan di latar belakang. Jika Claude Desktop tidak terinstal, perintah mencetak tautan unduhan dan keluar.

Anda juga dapat mengambil sesi CLI dari dalam Desktop dengan /resume. Perintah ini tersedia di sesi lokal, bukan di SSH, WSL, atau sesi cloud.

Untuk melanjutkan sesi terminal di Desktop:

  1. Tutup sesi di terminal.
  2. Di kotak prompt Desktop, ketik /resume. Desktop menampilkan daftar sesi yang Anda mulai dari CLI di komputer ini. Cari berdasarkan judul, folder, atau branch, dan pratinjau di mana masing-masing sesi berhenti.
  3. Pilih sesi. Sesi akan berlanjut di aplikasi dengan percakapan dan konteks lengkapnya.

Desktop melanjutkan sesi yang sama daripada salinan, jadi claude --resume di terminal masih menemukannya setelahnya.

[!TIP]

Kapan menggunakan Desktop vs CLI: gunakan Desktop ketika Anda ingin mengelola sesi paralel di satu jendela, mengatur pane berdampingan, atau meninjau perubahan secara visual. Gunakan CLI ketika Anda memerlukan scripting, otomasi, atau lebih suka alur kerja terminal.

Setara flag CLI

Tabel ini menunjukkan setara aplikasi desktop untuk flag CLI umum. Flag yang tidak tercantum tidak memiliki setara desktop karena dirancang untuk scripting atau otomasi.

CLI Setara Desktop
--model sonnet Pemilih model di baris di bawah kotak prompt
--resume, --continue Klik sesi di sidebar, atau ketik /resume di kotak prompt untuk mengambil sesi yang Anda mulai dari CLI
--permission-mode Pemilih mode di baris di bawah kotak prompt
--dangerously-skip-permissions Bypass permissions mode. Di paket Pro dan Max, aktifkan "Allow bypass permissions mode" di Settings > Code atau Settings > Claude Code; di paket Team dan Enterprise, kebijakan organisasi mengontrolnya
--add-dir Tambahkan folder ke sesi di sesi lokal dan SSH, atau pilih beberapa repositori di sesi cloud
--allowedTools, --disallowedTools Tidak ada setara per-sesi. Aturan izin di file pengaturan masih berlaku.
--verbose Mode tampilan verbose
--print, --output-format Tidak tersedia. Desktop hanya interaktif.
ANTHROPIC_MODEL env var Pemilih model di baris di bawah kotak prompt
MAX_THINKING_TOKENS env var Lihat Matikan extended thinking

Konfigurasi bersama

Desktop dan CLI membaca file konfigurasi yang sama, jadi setup Anda terbawa:

  • CLAUDE.md dan file CLAUDE.local.md di proyek Anda digunakan oleh keduanya
  • MCP servers yang dikonfigurasi di ~/.claude.json atau .mcp.json bekerja di keduanya
  • Hooks dan skills yang ditentukan dalam pengaturan berlaku untuk keduanya
  • Settings di ~/.claude.json dan ~/.claude/settings.json dibagikan. Aturan izin, tool yang diizinkan, dan pengaturan lainnya di settings.json berlaku untuk sesi Desktop.
  • Models: model yang sama tersedia di keduanya. Di Desktop, pilih model dari pemilih model di baris di bawah kotak prompt. Anda dapat mengubah model di tengah sesi dari pemilih yang sama.

MCP servers dari aplikasi chat Claude Desktop

Aplikasi Desktop memuat MCP servers dari claude_desktop_config.json ke dalam sesi tab Code lokal, bersama dengan servers dari ~/.claude.json dan .mcp.json. Server yang Anda tentukan di claude_desktop_config.json tersedia di surface chat Desktop dan sesi tab Code lokal.

Jika Anda menentukan nama server yang sama di claude_desktop_config.json dan di ~/.claude.json atau .mcp.json, tab Code dalam sesi lokal terhubung sekali dan menggunakan definisi claude_desktop_config.json.

Aplikasi juga mengirimkan ulang stdio servers dari ~/.claude.json ke CLI yang tertanam dalam sesi lokal. Ketika tingkat atas ~/.claude.json (cakupan pengguna) dan .mcp.json menentukan nama stdio server yang sama, tab Code menggunakan definisi ~/.claude.json, menyimpang dari hierarki cakupan CLI.

[!NOTE]

CLI mandiri tidak membaca claude_desktop_config.json. Di macOS dan WSL, jalankan claude mcp add-from-claude-desktop untuk menyalin servers tersebut ke dalam ~/.claude.json. Lihat Impor MCP servers dari Claude Desktop untuk alur impor dan opsi cakupan.

Perbandingan fitur

Tabel ini membandingkan kemampuan inti antara CLI dan Desktop. Untuk daftar lengkap flag CLI, lihat referensi CLI.

Fitur CLI Desktop
Mode izin Semua mode termasuk dontAsk Manual, Terima edits, Plan, dan Auto. Bypass permissions muncul di pemilih mode setelah diaktifkan: melalui toggle Settings di paket Pro dan Max, atau melalui kebijakan organisasi di paket Team dan Enterprise
Penyedia pihak ketiga Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry API Anthropic secara default. Untuk perutean gateway, lihat hubungkan aplikasi desktop ke gateway. Untuk menjalankan tab Code di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau gateway LLM yang di-host sendiri, lihat Claude Desktop on 3P.
MCP servers Konfigurasikan di file pengaturan UI Connectors untuk sesi lokal dan SSH, atau file pengaturan
Plugins Perintah /plugin UI plugin manager
File @mention Berbasis teks Dengan autocomplete, kecuali untuk pesan pertama sesi cloud
Lampiran file Tidak tersedia Gambar, PDF
Isolasi sesi Flag --worktree Jalankan sesi di worktree-nya sendiri
Sesi ganda Terminal terpisah Tab sidebar
Tugas berulang Cron jobs, CI pipelines Tugas terjadwal
Penggunaan komputer Aktifkan via /mcp di macOS Kontrol aplikasi dan layar di macOS dan Windows
iOS simulator Jalankan simulator melalui computer use Pane iOS Simulator terbuka secara otomatis
Integrasi Dispatch Tidak tersedia Sesi Dispatch di sidebar
Scripting dan otomasi --print, Agent SDK Tidak tersedia

Apa yang tidak tersedia di Desktop

Fitur berikut tidak tersedia di Desktop, kecuali jika dicatat:

  • Penyedia pihak ketiga: Desktop terhubung ke API Anthropic secara default. Untuk merutekan Desktop melalui gateway, atau untuk menjalankan tab Code di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau gateway LLM yang di-host sendiri, ikuti tautan di baris Penyedia pihak ketiga.
  • Linux (beta): Computer Use belum tersedia di aplikasi desktop Linux. Lihat Claude Desktop on Linux.
  • Saran kode inline: Desktop tidak menyediakan penyelesaian kode bergaya autocomplete. Desktop bekerja melalui prompt percakapan dan perubahan kode eksplisit, dan dapat menyarankan prompt Anda berikutnya setelah Claude membalas.
  • Tim agent: tim terkoordinasi, di mana Claude sebagai pemimpin tim menugaskan tugas kepada rekan tim dari daftar tugas bersama, tersedia di CLI, bukan di Desktop. Untuk pekerjaan multi-agent di dalam satu sesi, gunakan dynamic workflows, yang berjalan di Desktop; Claude juga dapat mengirim pesan dan mengelola sesi Anda yang lain secara langsung.
  • Perintah terminal-dialog: perintah bawaan yang membuka panel interaktif di terminal berperilaku berbeda di tab Code. Edit file pengaturan secara langsung untuk mengelola aturan izin dan konfigurasi, atau jalankan perintah dari CLI mandiri.
    • Perintah tanpa bentuk argumen, seperti /permissions, membalas dengan isn't available in this environment.
    • /config membuka Settings > Code atau Settings > Claude Code.

Troubleshooting

Bagian di bawah mencakup masalah khusus untuk aplikasi desktop. Untuk kesalahan API runtime yang muncul di chat seperti API Error: 500, 529 Overloaded, 429, atau Prompt is too long, lihat Error reference.

Check your version

Untuk melihat versi aplikasi desktop yang Anda jalankan:

  • macOS: klik Claude di menu bar, kemudian About Claude
  • Windows: klik Help, kemudian About Claude

Klik nomor versi untuk menyalinnya ke clipboard Anda.

Claude Code version in the Code tab

Untuk melihat versi Claude Code yang dijalankan oleh sebuah sesi, ketik /status di sesi lokal pada tab Code dan baca baris Claude Code, yang menampilkan versi seperti 2.1.286.

Untuk mendapatkan versi yang lebih baru untuk sesi lokal, buka Claude > Check for Updates… di macOS atau Help > Check for Updates… di Windows, kemudian mulai sesi baru.

Dalam sesi lokal, tab Code menjalankan salinan Claude Code miliknya sendiri, yang memiliki nomor versinya sendiri. Aplikasi desktop mengunduh dan memperbarui salinan tersebut, sehingga versinya dapat berbeda dari perintah claude di terminal Anda, dan memperbarui salah satunya tidak memperbarui yang lain.

Check which layout you have

Jika sesi baru menampilkan lingkungan di atas kotak prompt alih-alih di bawahnya, Anda menggunakan tata letak lama:

  • Desktop yang lebih lama dari v2.37337.0: perbarui untuk mendapatkan tata letak saat ini. Pilih Claude > Check for Updates… di macOS atau Help > Check for Updates… di Windows.
  • Penyedia pihak ketiga dengan sesi di komputer Anda: tata letak saat ini memerlukan Claude Desktop v3.1623.0 atau yang lebih baru, jadi periksa versi Anda. Untuk memperbarui, pilih Claude > Check for Updates… di macOS atau Help > Check for Updates… di Windows. Jika organisasi Anda mematikan pembaruan otomatis, Check for Updates… disembunyikan, jadi mintalah v3.1623.0 atau yang lebih baru kepada administrator Anda.
  • Penyedia pihak ketiga dengan sesi di infrastruktur organisasi Anda: tata letak saat ini memerlukan Claude Desktop v4.29.0 atau yang lebih baru, jadi periksa versi Anda. Jika Anda menggunakan versi yang lebih lama, mintalah v4.29.0 atau yang lebih baru kepada administrator Anda. Jika Anda tidak tahu di mana sesi Anda berjalan, tanyakan kepada administrator Anda.

Dalam tata letak lama, pilih lingkungan serta folder proyek atau repositori apa pun di atas kotak prompt, serta mode izin dan model di baris di bawahnya. Tata letak lama tidak memiliki panel detail sesi dan lingkungan lokal dan SSH yang disimpan.

403 or authentication errors in the Code tab

Jika Anda melihat Error 403: Forbidden atau kegagalan autentikasi lainnya saat menggunakan tab Code:

  1. Keluar dan masuk kembali dari menu aplikasi. Ini adalah perbaikan paling umum.
  2. Verifikasi Anda memiliki langganan berbayar aktif: Pro, Max, Team, atau Enterprise.
  3. Jika CLI berfungsi tetapi Desktop tidak, keluar dari aplikasi desktop sepenuhnya, bukan hanya tutup jendela, kemudian buka kembali dan masuk.
  4. Periksa koneksi internet dan pengaturan proxy Anda.

Blank or stuck screen on launch

Jika aplikasi terbuka tetapi menampilkan layar kosong atau tidak responsif:

  1. Mulai ulang aplikasi.
  2. Periksa pembaruan yang tertunda. Pada macOS dan Windows, aplikasi secara otomatis memperbarui saat peluncuran; di Linux, perbarui melalui apt seperti yang dijelaskan dalam Claude Desktop on Linux.
  3. Di jaringan yang dikelola, konfirmkan firewall Anda memungkinkan host CDN dalam network access requirements.
  4. Di Windows, periksa Event Viewer untuk log crash di bawah Windows Logs → Application.

"Failed to load session"

Jika Anda melihat Failed to load session, folder yang dipilih mungkin tidak lagi ada, repositori Git mungkin memerlukan Git LFS yang tidak diinstal, atau izin file mungkin mencegah akses. Coba pilih folder berbeda atau mulai ulang aplikasi.

Session not finding installed tools

Jika Claude tidak dapat menemukan alat seperti npm, node, atau perintah CLI lainnya, verifikasi alat bekerja di terminal biasa Anda, periksa bahwa profil shell Anda dengan benar menyiapkan PATH, dan mulai ulang aplikasi desktop untuk memuat ulang variabel lingkungan.

Git and Git LFS errors

Sesi yang berjalan di worktree mereka sendiri memerlukan Git. Jika Anda melihat "Git is required," instal Git, atau Git for Windows di Windows, dan coba lagi. Di Windows, versi Claude Desktop sebelum 1.49585.0 meminta Git sebelum memulai sesi lokal apa pun; jika Anda melihat prompt itu dan tidak menggunakan worktrees, perbarui aplikasi.

Jika Anda melihat "Git LFS is required by this repository but is not installed," instal Git LFS dari git-lfs.com, jalankan git lfs install, dan mulai ulang aplikasi.

MCP servers not working on Windows

Jika toggle MCP server tidak merespons atau server gagal terhubung di Windows, periksa bahwa server dikonfigurasi dengan benar di pengaturan Anda, mulai ulang aplikasi, verifikasi proses server berjalan di Task Manager, dan tinjau log server untuk kesalahan koneksi.

SSH host key verification failed

Setiap pesan berikut berarti Desktop menolak sebuah host key:

  • SSH host key verification failed atau Host denied (verification failed) di bawah View details pada kartu Couldn't connect to <host>
  • Connection failed: Host key changed or not trusted di dekat kotak prompt atau setelah Test connection
  • <host>'s host key is not trusted atau <host>'s host key has changed pada sesi yang terputus

Desktop biasanya menolak sebuah key karena key tersebut berbeda dari key yang tersimpan di komputer Anda, atau karena tidak ada key yang tersimpan untuk mesin tersebut. Mesin yang dibangun ulang atau diinstal ulang biasanya menampilkan key baru, begitu pula sesuatu yang mencegat koneksi. Periksa key sebelum Anda terhubung lagi, dimulai dari apa yang ditampilkan Desktop bersama pesan tersebut:

  • Anda menggunakan Windows, dan Desktop menampilkan Connection failed: Host key changed or not trusted: pertama-tama pastikan masalahnya bukan klien OpenSSH yang tidak ada
  • Desktop meminta Anda mengatur UserKnownHostsFile: di ~/.ssh/config, atur nilainya ke ~/.ssh/known_hosts, lalu periksa key dari terminal
  • Anda melihat tombol Review new key: pilih tombol tersebut, lalu bandingkan fingerprint yang ditampilkan Desktop dengan fingerprint milik mesin itu sendiri. Jika cocok, pilih Trust new key untuk mengganti key yang tersimpan. Jika tidak, pilih Cancel.
  • Anda tidak melihat tombol Review new key, Desktop menampilkan Couldn't show the new key, atau Desktop menolak key lagi setelah Trust new key: periksa key dari terminal

Check the host key from a terminal

Jalankan ssh <SSH host> di komputer Anda, dengan nilai SSH host dari koneksi SSH Anda di Desktop. Tambahkan -p <SSH port> jika koneksi memiliki nilai SSH port. Di Windows, gunakan PowerShell, karena Desktop tidak terhubung menggunakan ssh di Git Bash atau WSL. Jika PowerShell tidak menemukan ssh, instal klien OpenSSH dari Microsoft.

Perhatikan mesin mana yang disebutkan ssh dalam pesannya, yang bisa jadi merupakan jump host dan bukan <SSH host>, lalu ikuti kasus yang sesuai:

  • ssh menanyakan apakah akan melanjutkan koneksi: bandingkan fingerprint yang ditampilkannya dengan fingerprint milik mesin tersebut. Jawab yes hanya jika keduanya cocok.
  • ssh memperingatkan bahwa host key telah berubah: bandingkan fingerprint dalam peringatan dengan fingerprint milik mesin tersebut. Hanya jika keduanya cocok, hapus baris yang disebutkan oleh Offending <type> key in <file>:<line> dan jalankan ulang ssh. Jika ssh memperingatkan lagi tentang baris lain, bandingkan, hapus, dan jalankan ulang seperti sebelumnya.
  • ssh menolak key yang tidak dikenalinya, tanpa bertanya: dapatkan baris known_hosts mesin tersebut dari pihak yang mengelolanya, bukan melalui koneksi yang sedang Anda periksa. Tambahkan baris tersebut ke file known_hosts Anda, dengan nama dari pesan ssh sebagai nama host-nya, lalu jalankan ulang ssh.
  • ssh langsung melanjutkan proses masuk tanpa menanyakan host key kepada Anda: jangan ketik kata sandi dulu. Periksa key yang sudah dipercaya oleh ssh.

Setelah ssh menerima key yang telah Anda periksa atau tambahkan, coba lagi di Desktop. Jika Desktop menolak key lagi, lihat Get Desktop's logs for an SSH problem.

Check the keys that ssh already trusts

Jalankan ulang perintah ssh yang sama dengan menambahkan -v -S none. Dalam output-nya, baris Server host key: menampilkan sebuah fingerprint, dan baris Host '<name>' is known berikutnya menyebutkan mesin pemilik fingerprint tersebut. Bandingkan setiap fingerprint yang Anda temukan dengan fingerprint milik mesin tersebut.

  • Sebuah jump host tidak memiliki baris Server host key:: jalankan juga ssh -v -S none <jump host>, dan bandingkan fingerprint tersebut dengan cara yang sama.
  • Sebuah fingerprint tidak cocok, atau Anda tidak dapat memeriksanya: jangan terhubung lagi. Hapus key yang tersimpan: di bawah Host '<name>' is known, baris Found key in <file>:<line> menyebutkan file yang menyimpannya. Jalankan ssh-keygen -R "<name>" -f <file>. Jika Anda menyimpan host key di lebih dari satu file, hapus key dari setiap file. Jika Anda tidak dapat mengubah sebuah file, beri tahu pihak yang mengelola komputer Anda.
  • Setiap fingerprint cocok: coba lagi di Desktop. Jika Desktop menolak key lagi, lihat Get Desktop's logs for an SSH problem.

SSH host key refused on Windows without an OpenSSH client

Di Windows tanpa klien OpenSSH, Desktop menolak bahkan host key yang benar, dengan pesan Connection failed: Host key changed or not trusted. Desktop memerlukan klien tersebut untuk mencari key yang tersimpan. Untuk melihat apakah Anda memilikinya, jalankan ssh di PowerShell. Jika PowerShell tidak mengenali ssh, instal klien OpenSSH dari Microsoft dan mulai ulang Desktop.

Lalu hubungkan lagi. Jika Desktop menanyakan apakah akan terhubung untuk pertama kalinya, periksa host key mesin tersebut sebelum Anda mempercayainya. Jika Desktop masih menolak key, ikuti kasus lainnya di bawah SSH host key verification failed.

SSH connection fails after you log in

Temukan judul kartu, atau kode yang mengakhiri pesan kesalahan, di tabel ini, lalu lakukan apa yang disebutkan di kolom terakhir. Untuk melihat pesannya, pilih View details pada kartu kegagalan.

Judul pada kartu Kode Yang harus dilakukan
<host>'s SSH server has SFTP turned off [SFTP_UNAVAILABLE] Aktifkan SFTP di sshd_config server, seperti yang dijelaskan dalam remote machine requirements
SFTP doesn't start on <host> [SFTP_NOT_STARTED] Hubungkan ke host yang sama dengan sftp di terminal pada komputer Anda untuk melihat apa yang menghentikannya, lalu periksa pengaturan dan file yang disebutkan dalam pesan Desktop
<host> allows too few SSH sessions per connection [SESSION_LIMIT] Perbarui ke Claude Desktop v3.1623.0 atau yang lebih baru, atau naikkan MaxSessions di sshd_config server, misalnya ke nilai default OpenSSH yaitu 10
<host> is out of disk space [ENOSPC] atau [EDQUOT] Kosongkan ruang atau kuota di mesin remote, di direktori home Anda atau /tmp
Free up disk space on this computer [ENOSPC] atau [EDQUOT], dalam pesan yang diawali dengan Couldn't prepare the deploy locally Kosongkan ruang di komputer Anda
Claude Code won't start on <host> [CLI_UNRESPONSIVE] Tunggu sebentar, lalu coba lagi. Jika terus gagal, jalankan perintah yang disebutkan dalam pesan di mesin remote untuk melihat apakah Claude Code merespons di sana.

Untuk pesan lainnya, periksa remote machine requirements.

Get Desktop's logs for an SSH problem

Anda mendapatkan ssh.log, rekaman Desktop atas koneksi SSH-nya, di dalam file zip berisi log Desktop yang Anda simpan dari menu Help. Untuk menyimpannya, buka Help > Troubleshooting dan pilih item untuk sistem Anda:

  • macOS: Show Logs in Finder
  • Windows: Show Logs in File Explorer
  • Linux: Show Logs in File Manager

Periksa file-file tersebut sebelum Anda mengirimkannya, karena file tersebut dapat menyertakan nama dan detail lain dari lingkungan Anda. <host> dan <user> mewakili nama yang telah diganti oleh Desktop. Desktop tidak mengganti setiap nama, dan nama host atau nama pengguna SSH masih dapat muncul sebagaimana tertulis. Jika Anda mengirim file zip kepada seseorang, beri tahu mereka host mana yang gagal dan kapan, karena log mungkin tidak menyebutkannya.

File zip tidak berisi log dari program pembantu yang diinstal Desktop di mesin remote. Untuk mendapatkan log tersebut juga, salin remote-server.log dari folder program pembantu di bawah ~/.claude/remote/run/ di direktori home pengguna yang terhubung. Periksa juga file tersebut sebelum Anda mengirimkannya.

App won't quit

  • macOS: tekan Cmd+Q. Jika aplikasi tidak merespons, gunakan Force Quit dengan Cmd+Option+Esc, pilih Claude, dan klik Force Quit.
  • Windows: gunakan Task Manager dengan Ctrl+Shift+Esc untuk mengakhiri proses Claude.

Windows-specific issues

  • PATH not updated after install: buka jendela terminal baru. Pembaruan PATH hanya berlaku untuk sesi terminal baru.
  • Concurrent installation error: jika Anda melihat kesalahan tentang instalasi lain sedang berlangsung tetapi tidak ada, coba jalankan installer sebagai Administrator.

"Branch doesn't exist yet" when opening in CLI

Sesi cloud dapat membuat branch yang tidak ada di mesin lokal Anda. Klik nama branch di sesi dan pilih Copy branch name, kemudian ambil secara lokal:

git fetch origin <branch-name>
git checkout <branch-name>

Still stuck?

  • Buka Help → Get Support di aplikasi desktop, atau kunjungi Claude support center secara langsung
  • Untuk masalah yang juga muncul kembali di CLI claude standalone, cari atau laporkan bug di GitHub Issues

Saat melaporkan masalah, sertakan versi aplikasi desktop Anda, sistem operasi Anda, pesan kesalahan yang tepat, dan log yang relevan. Di macOS, periksa Console.app. Di Windows, periksa Event Viewer → Windows Logs → Application. Tinjau kutipan log sebelum mempostingnya ke masalah publik; mereka dapat menyertakan jalur file dan detail lainnya dari lingkungan Anda.