English •
Français •
Español •
Bahasa Indonesia •
简体中文 •
Português (Brasil)
Aplikasi desktop lintas platform untuk mengelola proyek
Claude Code Anda,
lengkap dengan terminal terintegrasi, alur kerja git, manajemen plugin, dan banyak lagi.
Situs web •
Unduh •
Twitter •
Buy Me a Coffee
---
## 📊 Kesehatan proyek
### Kontributor
### Aktivitas
[](https://github.com/Sterll/claude-terminal/graphs/commit-activity)
[](https://github.com/Sterll/claude-terminal/commits/main)
[](https://github.com/Sterll/claude-terminal/issues)
[](https://github.com/Sterll/claude-terminal/pulls)
### Internasionalisasi (i18n)
| Bahasa | Cakupan | Kunci |
| --- | --- | --- |
| 🇺🇸 Inggris (dasar) | ![100%][i18n-en-badge] | 3641 / 3641 |
| 🇫🇷 Prancis | ![i18n fr][i18n-fr-badge] | 3641 / 3641 |
| 🇪🇸 Spanyol | ![i18n es][i18n-es-badge] | 3641 / 3641 |
| 🇮🇩 Indonesia | ![i18n id][i18n-id-badge] | 3641 / 3641 |
| 🇨🇳 Tionghoa Sederhana | ![i18n zh-CN][i18n-zh-cn-badge] | 3641 / 3641 |
> Lencana cakupan diperbarui otomatis setiap kali ada push ke berkas locale.
> Lihat [`.github/i18n-coverage.md`](.github/i18n-coverage.md) untuk detail dan
> cara menambahkan bahasa baru.
[i18n-en-badge]: https://img.shields.io/badge/i18n-100%25-brightgreen
[i18n-fr-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_fr.json
[i18n-es-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_es.json
[i18n-id-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_id.json
[i18n-zh-cn-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_zh-CN.json
---
## Daftar isi
- [Prasyarat](#prasyarat)
- [Instalasi](#instalasi)
- [Fitur](#fitur)
- [Penggunaan](#penggunaan)
- [Build](#build)
- [Pengujian](#pengujian)
- [Pintasan keyboard](#pintasan-keyboard)
- [Arsitektur](#arsitektur)
- [Berkontribusi](#berkontribusi)
- [Keamanan](#keamanan)
---
## Prasyarat
- [Node.js](https://nodejs.org/) 18+
- [Claude Code](https://github.com/anthropics/claude-code) terpasang secara global
- **Windows** 10 atau 11
- **macOS** 12+ (Intel atau Apple Silicon)
- **Linux** Ubuntu 22.04+, Fedora 38+, atau setara
- AppImage membutuhkan `libfuse2` di Ubuntu 24.04+: `sudo apt install libfuse2`
- Penyimpanan token GitHub membutuhkan `libsecret`: `sudo apt install libsecret-1-dev gnome-keyring`
## Instalasi
Unduh installer terbaru dari [Releases](https://github.com/Sterll/claude-terminal/releases).
> [!IMPORTANT]
> **Pengguna macOS:** jika muncul *"Claude Terminal is damaged and can't be opened"*, jalankan ini di Terminal:
> ```bash
> xattr -cr /Applications/Claude\ Terminal.app
> ```
> Ini diperlukan karena aplikasinya belum ditandatangani secara digital. Alternatifnya, klik kanan aplikasi → Open.
Atau build dari sumber:
```bash
git clone https://github.com/Sterll/claude-terminal.git
cd claude-terminal
npm install
```
---
## Fitur
### Antarmuka chat (Claude Agent SDK)
- Antarmuka chat bawaan yang ditenagai Claude Agent SDK, dengan respons streaming
- Menutup tab chat membatalkan proses awal yang tertunda dan menutup sesi SDK-nya; prompt tertunda tidak dapat memulai ulang tab yang telah ditutup.
- **Rendering markdown kaya**: diagram mermaid, rumus KaTeX, kode dengan penyorotan sintaks, pohon berkas, papan kanban, blok diff, pratinjau HTML, dan lainnya
- **Kartu izin**: Izinkan, Selalu izinkan, atau Tolak permintaan penggunaan alat; saat aturan `permissions.ask` milik Anda sendiri yang memicu permintaan itu, kartunya menyebut aturan tersebut dan menyembunyikan "Selalu izinkan" agar tidak bisa dilewati dengan satu klik
- **Mode rencana**: tinjau lalu setujui atau tolak rencana agen sebelum dijalankan
- **Blok penalaran**: bagian yang dapat dibuka untuk melihat penalaran Claude
- **Kartu alat**: kartu lipat yang merinci eksekusi alat, lengkap dengan penyegaran alat MCP, pengiriman masukan, dan usulan skill
- **Visualisasi subagen**: pelacakan tugas bersarang untuk agen yang dijalankan; ringkasan tiap subagen menampilkan cabang worktree git-nya dan setiap pergantian model di tengah jalan
- **Widget todo**: daftar tugas persisten di atas kolom input, hilang sendiri setelah selesai
- **Lampiran**: tempel, seret-dan-lepas, atau pilih gambar PNG/JPEG/GIF/WebP (hingga 20 MB), ditambah berkas teks dan PDF
- **Perintah slash**: pelengkapan otomatis perintah (/compact, /clear, /help, skill kustom)
- **Mention @ inline**: kolom input kaya memungkinkan mengetik mention @ tanpa meninggalkan area penulisan pesan
- **Rewind berkas**: kembalikan konteks ke keadaan berkas sebelumnya lewat checkpointing SDK, berguna untuk membatalkan suntingan yang tak diinginkan di tengah sesi
- **Pelacakan biaya**: nama model, jumlah token, dan biaya dalam USD di bilah status
- **Jendela konteks 1J**: konteks diperluas untuk basis kode besar (hanya mode API)
- **Pergantian model dan effort secara dinamis**: pemilih model dibangun langsung dari katalog CLI Claude, jadi model yang baru rilis (misalnya Fable 5.1) muncul otomatis; ganti model dan tingkat effort (low, medium, high, xhigh) di tengah percakapan tanpa memulai sesi baru
- **Model, effort, dan mode izin per percakapan**: tiap tab menyimpan pengaturannya sendiri, sehingga pilihan di satu percakapan tidak pernah bocor ke percakapan berikutnya. Nilai yang tersimpan hanyalah bawaan untuk tab baru, dan diubah lewat baris "Gunakan untuk percakapan baru" di tiap menu
- **Mode izin**: beralih antara bawaan, terima suntingan, rencana, dan lewati izin dari kolom penulisan, di tengah sesi
- **Tingkat premium**: model keluarga Fable ditandai ungu dengan lencana "Premium", label pada tab, dan pemberitahuan saat tab baru mewarisinya, karena keluarga ini memakai batas penggunaannya sendiri
- **Laci tugas latar belakang**: laci lipat khusus sesi berjalan yang menampilkan pekerjaan Claude di latar belakang, agar Anda bisa terus mengobrol
- **Pustaka artefak dan tab Dokumen**: berkas dan cuplikan yang dihasilkan Claude disimpan ke pustaka artefak yang bisa dipakai ulang, dan juga muncul di tab Dokumen per percakapan, dengan panel Artefak khusus yang mendaftar semua yang dipublikasikan untuk proyek itu
- **Pencarian percakapan**: tekan Ctrl+F untuk mencari di transkrip yang sedang berjalan
- **Sematkan percakapan**: jaga sesi penting tetap di atas daftar
- **Fork sesi**: bercabang dari pesan mana pun untuk menjajaki jalur lain; Claude Terminal memberi peringatan alih-alih membuang giliran yang masih mengantre
- **Saran lanjutan**: cip saran sesuai konteks muncul setelah Claude menjawab, untuk memandu percakapan
- **Ringkasan sesi**: ringkasan yang dibuat otomatis untuk sesi yang telah selesai
- Ketik @project untuk melampirkan README.md dan pohon berkas proyek mana pun sebagai konteks
- Ketik **@tab** untuk membagikan sesi terminal Anda saat ini, atau **@conversation** untuk merujuk utas chat lain
- Ketik **@context** untuk menyisipkan paket konteks, atau **@prompt** untuk menyisipkan templat prompt tersimpan
- **Penyempurnaan prompt**: penulisan ulang pesan Anda oleh AI dalam satu klik memakai Haiku, agar instruksinya lebih jelas sebelum dikirim
- Hentikan streaming di tengah giliran, nama tab dibuat otomatis oleh model haiku
- Indikator pemadatan ditampilkan saat konteks sedang dipadatkan, jadi Anda tahu kapan itu terjadi
### Terminal
- Beberapa terminal Claude Code per proyek, dengan antarmuka bertab
- Rendering dipercepat GPU lewat xterm.js + WebGL (cadangan DOM)
- Beralih antara mode terminal dan mode chat pada tiap tab
- Penataan ulang tab dengan seret-lepas, penggantian nama, notifikasi desktop
- Penyaringan terminal berdasarkan proyek
- Deteksi kesiapan adaptif dengan indikator status
- Keluaran terminal direkam, sehingga alat baca terminal dan alat MCP benar-benar mengembalikan apa yang dijalankan
### Navigasi
- Pilih cara Anda menjelajahi proyek: bilah tab proyek di atas, atau kolom proyek klasik di samping
- Ditanyakan sekali di wizard peluncuran pertama, dan bisa diganti kapan saja dari Pengaturan
### Berkas
- Layar Berkas khusus menampilkan setiap berkas yang disentuh dalam satu sesi, dengan diff per sesi bergaya GitHub
- Tinjau cepat apa yang Claude ubah tanpa meninggalkan konteks chat
- Atau biarkan pohon proyek tertambat di samping percakapan, seperti sebelum ada layar Berkas
### Akun
- Ikat akun Claude terpisah ke tiap proyek, dengan penyimpanan kredensial terisolasi sendiri
- Ganti proyek tanpa mengganti akun secara manual, dan tanpa login satu proyek memengaruhi proyek lain
- Penggunaan per akun ditampilkan di Pengaturan, plus pergantian saat batas tercapai yang meneruskan percakapan
### Claude Remote Control (claude.ai dan ponsel)
- Tempatkan sesi chat di [claude.ai/code](https://claude.ai/code) dan aplikasi ponsel Claude, agar bisa Anda ikuti atau kendalikan dari ponsel
- Ditentukan **per percakapan**, tidak pernah global: satu sesi bergabung saat Anda memintanya di tab itu, lewat tombol di footer atau perintah `/remote-control`
- Cermin baca-saja atau kendali penuh, sesuai pilihan Anda; prompt, interupsi, dan jawaban izin semuanya kembali ke desktop
- `--rc` opsional di tab terminal agar sesi CLI ikut bergabung
- Tab **Konektivitas → claude.ai** mendaftar setiap percakapan yang dibagikan, dengan jalan kembali ke masing-masing tab
- Menghormati sakelar `disableRemoteControl` pada managed settings Claude Code, sehingga kebijakan organisasi tidak bisa dibatalkan dari aplikasi
### Claude di Chrome
- Biarkan sesi chat mengendalikan peramban Anda lewat ekstensi Chrome milik Claude
- Menambahkan server MCP `claude-in-chrome` beserta 22 alat peramban ke sesi
- Bersifat opt-in, dan mengadopsi native messaging host milik Claude Code yang sudah ada alih-alih menimpanya
### Suara
- Diktekan pesan ke chat lewat mikrofon (transkripsi Groq)
- Mode dikte verbatim dengan pengarahan ke tab aktif, agar kata-kata Anda mendarat di percakapan yang benar
- Profil sesi bebas-tangan untuk sesi yang sepenuhnya dijalankan dengan suara
- Melafalkan nama proyek sebagaimana Anda mengucapkannya, agar mention @ lewat suara terselesaikan dengan benar
### Manajemen proyek
- Atur proyek dalam folder bersarang dengan seret-lepas
- Sesuaikan tiap proyek dengan warna dan ikon emoji
- Bilah Aksi Cepat: perintah satu klik yang bisa dikonfigurasi per proyek (build, test, deploy, skrip kustom...)
- Penjelajah berkas bawaan dengan tampilan pohon, pilihan ganda, pencarian, indikator status git, dan penggantian nama inline; klik kanan berkas mana pun untuk melampirkannya sebagai konteks di chat berjalan
- Sistem tipe proyek modular (standar, FiveM, webapp, Python, API, Minecraft, bot Discord)
- Jendela pengaturan per proyek
### Integrasi Git
- **Cabang**: beralih, buat, hapus, dengan tampilan pohon cabang lokal dan remote
- **Sinkronisasi**: pull (rebase), push, merge dengan deteksi dan penyelesaian konflik
- **Panel perubahan**: lihat berkas staged, unstaged, dan untracked, stage/unstage, lalu commit
- **Riwayat commit**: grafik commit bergaya IntelliJ yang dirender SVG, penyaringan per cabang dan penulis, gulir tak terbatas
- **Cherry-pick dan revert**: operasi commit lanjutan dari riwayat
- **Manajemen worktree**: buat, beralih, dan hapus worktree git, dengan lencana pergantian cepat di bilah alat
- **Manajemen stash**: simpan, terapkan, pop, dan periksa
- **Pencarian riwayat**: pencarian teks penuh di seluruh riwayat commit
- **Buang perubahan**: buang cepat suntingan yang belum di-stage, per berkas
- **Amend commit**: sunting pesan atau isi commit terakhir sebelum push
- **Pesan commit oleh AI**: hasilkan pesan commit konvensional otomatis lewat GitHub Models API
- **Pull request**: buat dan lihat PR langsung dari aplikasi
### Integrasi GitHub
- Autentikasi OAuth Device Flow (aman, tanpa salin-tempel token)
- **Dukungan GitHub Enterprise**: terhubung ke instans GitHub Enterprise yang di-host sendiri
- **Pencarian repositori di wizard clone**: cari repo GitHub berdasarkan nama tanpa keluar dari aplikasi
- **Pil status CI/CD**: status langsung dari run terbaru ditampilkan di bilah header terminal, dengan tombol untuk langsung melompat ke langkah yang gagal
- Lihat run CI/CD per repositori
- Lihat, buat, dan tinjau pull request dari aplikasi; dukungan multi-forge (GitHub, GitLab)
- Token disimpan dengan aman lewat keytar (Windows Credential Manager, macOS Keychain, libsecret di Linux)
### Menara kendali
- Ikhtisar waktu nyata semua agen Claude yang aktif, di seluruh proyek
- Lihat apa yang sedang dikerjakan tiap agen (alat yang berjalan, status saat ini, aktivitas terakhir)
- Tampilan grid: satu kartu per sesi terbuka, dikelompokkan per proyek, dengan pratinjau terminal langsung, lencana model, dan tombol sesi baru per proyek
- Filter dan pengurutan: per proyek, per status, pencarian teks, diurutkan berdasarkan interaksi terakhir Anda
- Tampilan fokus: perbesar sesi mana pun di dalam panel, dengan deretan sesi lain milik proyek itu, judul sesi yang bisa disunting, dan lompatan satu klik ke tampilan Claude
- Sesi yang selesai tetap disorot sampai Anda melihatnya, agar tidak ada pekerjaan yang terlewat
- Hentikan sesi yang sedang berjalan langsung dari panel
- Jawab prompt AskUserQuestion tanpa berpindah ke tab chat
- Alat MCP untuk pemantauan agen dan interupsi jarak jauh
### Tugas paralel
- Uraikan sebuah fitur menjadi subtugas paralel dan jalankan serentak sebagai agen Claude terpisah
- Tiap tugas berjalan di worktree dan cabang git-nya sendiri, sehingga pekerjaannya terisolasi
- Mode otomatis membiarkan Claude menentukan jumlah tugas paralel yang optimal
- Kartu tugas yang bisa dilipat, dengan penampil diff dan akses terminal per tugas
- Agen penggabung otomatis: Claude meninjau dan menggabungkan cabang yang selesai ke cabang utama Anda
- Status eksekusi lengkap disimpan ke disk dan dipulihkan saat aplikasi dimulai ulang
### Pemutaran ulang sesi
- Telusuri sesi Claude Code lama dan putar ulang langkah demi langkah
- Tampilan lini masa menunjukkan semua prompt, panggilan alat, dan respons secara berurutan
- Penggeser bergaya pemutar video untuk melompat ke titik mana pun dalam sesi
- Kartu tanya-jawab menyorot pertukaran pertanyaan dan jawaban agar mudah ditinjau
### Dasbor
- Tiga subtampilan: **Ikhtisar**, **Kanban**, dan **Lini masa**
- Ikhtisar: cabang saat ini, commit di depan/di belakang, commit terbaru, kontributor
- Statistik kode: baris per bahasa, jumlah berkas, jumlah commit
- Jumlah terminal aktif
- Pemantauan penggunaan API Claude dengan penyegaran otomatis
- **Lini masa proyek**: semua catatan yang sudah disimpan aplikasi, digabung menjadi satu tampilan kronologis — commit, sesi Claude, waktu terlacak, run workflow, run paralel, dan artefak — bisa disaring per periode dan per jenis, sehingga "apa yang terjadi pada proyek ini" cukup satu layar, bukan enam
### Pelacakan waktu
- Deteksi sesi otomatis per proyek (batas diam 15 menit, deteksi tidur/bangun)
- Penyimpanan ringan terpisah (`timetracking.json`) dengan arsip bulanan
- Tampilan per periode: hari ini, minggu ini, bulan ini, rentang kustom
- Statistik: rata-rata harian, rentetan terpanjang, grafik perkembangan, sesi terbaru
- Pergantian hari di tengah malam dan titik simpan berkala
### Hooks
- Terintegrasi dengan hook CLI Claude Code untuk pelacakan aktivitas waktu nyata
- Pemasangan satu klik ke `~/.claude/settings.json` (tidak merusak, mempertahankan hook Anda)
- Jenis hook: PreToolUse, PostToolUse, Notification, SessionStart, Stop, DirectoryAdded (terpicu oleh `/add-dir`), dan lainnya
- Bus peristiwa dengan peristiwa yang dinormalkan untuk pelacakan sesi, alat, dan subagen
- Cadangan berupa pembacaan keluaran terminal saat hook tidak tersedia
### Plugin
- Jelajahi dan temukan plugin dari marketplace yang dikonfigurasi
- Pasang plugin langsung dari aplikasi (lewat CLI Claude)
- Tambahkan marketplace komunitas lewat URL GitHub
- Penyaringan kategori dan pencarian
- Lihat detail dan README sebuah plugin
### Marketplace skill
- Cari dan jelajahi skill yang tersedia
- Pemasangan dan penghapusan satu klik
- **Pemeriksaan pembaruan**: lihat skill dan plugin terpasang mana yang punya versi baru
- Lihat README dan detail sebuah skill
- Cache lokal untuk penjelajahan yang cepat
### Pustaka
- Kelola **paket konteks** yang bisa dipakai ulang (dokumen, cuplikan, isi berkas) dan **templat prompt**
- Sisipkan paket konteks dan templat prompt langsung ke chat lewat mention @context dan @prompt
- Sisipkan templat prompt ke terminal mana pun dengan satu klik dari bilah alat
- Hasilkan skill dan agen di latar belakang memakai Agent SDK
### Skill dan agen
- Jelajahi dan kelola skill serta agen Claude Code
- Lihat berkas SKILL.md dan konfigurasi agen
- **Editor dengan penyorotan sintaks**: sunting berkas skill dan agen dengan nomor baris dan penyorotan penuh lewat highlight.js
- Memuat skill dari `~/.claude/skills`, plugin, dan sumber daya bawaan
### Server MCP
- Konfigurasi, jalankan, dan hentikan server MCP
- Konfigurasi variabel lingkungan
- **Registri MCP**: jelajahi dan cari di registri publik server MCP
### Sesi
- Lihat sesi Claude Code per proyek
- Telusuri riwayat sesi dengan stempel waktu dan metadata
- Sematkan sesi ke atas dan ganti namanya secara inline dari dialog lanjutkan
- Modal lanjutkan sesi yang dimodernkan, dengan pencarian dan sesi tersemat
- Sesi menampilkan judul percakapan yang sebenarnya alih-alih stempel waktu, dan bisa dicari berdasarkan id
- **Pindahkan sesi ke proyek lain**: relokasi percakapan tanpa kehilangan riwayatnya
- Nama tab kustom terkunci dan tidak lagi ditimpa diam-diam oleh penamaan otomatis
### Memori dan pengetahuan global
- Sunting berkas CLAUDE.md global, pengaturan, dan khusus proyek
- Penyisipan templat untuk pola yang umum
- **Pengetahuan global**: penyimpanan fakta, konvensi, dan preferensi lintas proyek, satu entri markdown masing-masing, tersedia di setiap sesi
- Sematkan, aktifkan/nonaktifkan, dan cari entri; yang aktif disinkronkan ke blok bertanda di `~/.claude/CLAUDE.md`, dengan pratinjau blok sebelum ditulis
- Alat MCP (`knowledge_list`, `knowledge_write`, `knowledge_search`...) agar Claude bisa membaca dan menulisnya sendiri
### Kanban
- Satu papan kanban per proyek, dengan kolom kustom, seret-lepas antar kolom, dan pengarsipan
- Tingkat prioritas, tenggat, label, dan penugasan pada kartu
- Penyaringan, pencarian, dan statistik per kolom
- Set alat MCP lengkap agar Claude bisa membuat dan memindahkan kartu sambil bekerja, plus node workflow `kanban_create_card`
### Log kesalahan
- Log terpusat untuk setiap kesalahan yang ditangkap aplikasi: kegagalan IPC, kesalahan layanan, exception dan rejection yang tak tertangani
- Penyaringan per tingkat dan per domain, dengan deteksi pola otomatis untuk mengelompokkan kegagalan berulang
- **Diagnosis oleh AI** untuk sebuah entri, dan ekspor untuk laporan bug
- `critical` berarti aplikasinya benar-benar rusak (exception atau rejection tak tertangani), bukan sekadar ada sesuatu yang tercatat
- Alat MCP agar Claude bisa membaca log saat melakukan debug
### Pengaturan
- Warna aksen (palet siap pakai + hex kustom)
- Ukuran font terminal (10 sampai 24 px), diterapkan langsung ke terminal yang terbuka
- Penyesuaian warna per agen dan per alat untuk kartu alat di chat
- Bahasa: Inggris, Prancis, Spanyol, Indonesia, dan Tionghoa Sederhana, dengan deteksi otomatis
- Integrasi editor: VS Code, Cursor, WebStorm, IntelliJ IDEA
- Pintasan keyboard yang bisa disesuaikan
- Preferensi notifikasi desktop
- Perilaku saat ditutup (tanya, kecilkan ke tray, atau keluar)
- Jalankan saat startup
- Pembaruan otomatis dengan unduhan latar belakang dan banner pemasangan, disusul panel **Yang baru** pada peluncuran berikutnya, yang dimulai dari apa yang berubah lalu memberikan catatan rilis lengkap
- **Discord Rich Presence**: tampilkan proyek yang sedang Anda kerjakan di status Discord (gaya VSCode), dengan opsi menyembunyikan nama proyek demi privasi; diaktifkan di Pengaturan
- **Telemetri bersifat opt-in dan mati secara bawaan**: tidak ada yang dikumpulkan, anonim maupun tidak, selama Anda tidak menyalakannya di Pengaturan
### Otomatisasi workflow
- **Automations**: mode sederhana tanpa grafik untuk tugas sehari-hari — jelaskan apa yang harus Claude lakukan dan kapan, lewat formulir biasa, tanpa editor node maupun sintaks cron, dengan enam preset awal
- Automations bisa terpicu oleh peristiwa alih-alih jadwal: aktivitas git, perubahan berkas, perintah yang selesai, sesi Claude yang berakhir, Claude yang membalas (dengan filter teks opsional), atau proyek yang dibuka — tiap peristiwa mengawasi proyek yang Anda tentukan sendiri, terlepas dari di mana Claude berjalan
- Editor workflow visual berbasis node, dengan mesin canvas buatan sendiri (bergaya Blueprint)
- **31 jenis node**: shell, git, HTTP, Claude (prompt/agen/skill), kondisi, perulangan, transformasi, switch, subworkflow, basis data, berkas, proyek, waktu, variabel, baca variabel, pemicu, kode (jalankan cuplikan JavaScript), templat (bangun string dari variabel), terminal, aksi cepat, notifikasi, notifikasi Discord, log, tunggu, coba lagi, penangan kesalahan, webhook, peluncuran paralel, ringkasan sesi, kartu kanban, dokumen workspace
- Pin data bertipe, dengan aliran data visual antar node
- Panel asisten AI untuk menyunting grafik dan membuat node secara waktu nyata
- Undo/redo, salin/tempel, snap ke grid, minimap, komentar
- Riwayat eksekusi dengan progres perulangan langsung dan pemeriksaan keluaran tiap langkah
- Hub komunitas workflow untuk berbagi dan mengimpor
- **12 jenis pemicu**: manual, cron, hook, webhook, atas-workflow, pesan chat, perubahan berkas, peristiwa git, proyek dibuka, kode keluar terminal, sesi Claude dimulai, sesi Claude berakhir
- Alat MCP untuk mengendalikan workflow sepenuhnya dari Claude Code
### Konektivitas (jarak jauh dan cloud)
- Tab **Konektivitas** terpadu yang menyatukan akses jarak jauh lokal dan sinkronisasi cloud
- Server relai Docker yang di-host sendiri untuk akses proyek dari jauh
- Unggah proyek dan sinkronisasi otomatis dengan pemantau berkas dan penyelesaian konflik
- **Sakelar sinkronisasi per entitas**: pilih persis apa yang disinkronkan (proyek, pengaturan, skill, agen, konfigurasi MCP, pintasan, memori, hook, arsip)
- **Lanjutkan sesi dari cloud**: lanjutkan sesi mana pun dari mesin lain
- **Notifikasi lintas mesin**: dapat pemberitahuan di desktop saat sesi cloud selesai
- Sesi Claude headless yang berjalan di cloud
- Modal diff untuk membandingkan berkas lokal dan cloud
- Profil pengguna dan manajemen sesi
- Skrip instalasi otomatis dengan Docker, reverse proxy, dan SSL
### Proyek jarak jauh SSH
- Buka proyek yang berada di mesin lain melalui SSH, ala IntelliJ Gateway: aplikasi tetap menjadi antarmuka, sementara terminal, chat Claude, git, dan file berjalan di host
- Menggunakan klien OpenSSH sistem, sehingga `~/.ssh/config`, kunci, `ssh-agent`, ProxyJump, dan penerusan agen bekerja persis seperti di terminal. Aplikasi tidak menyimpan kata sandi maupun kunci: kata sandi diketik di prompt OpenSSH sendiri dan tidak pernah disimpan
- **Buka proyek jarak jauh**: pilih profil host yang tersimpan, telusuri foldernya, lalu buka satu, buat satu, jalankan `git init`, atau kloning repositori ke dalamnya
- Lencana host di setiap proyek jarak jauh menunjukkan status koneksinya. Koneksi yang terputus tersambung kembali sendiri, dan tab terminal serta chat melanjutkan dari posisi terakhir (di dalam tmux jika Anda mengaktifkannya)
- Claude Code berjalan di host (harus terpasang di sana, dan aplikasi memberi tahu jika belum), dan riwayat sesi dibaca dari host
- Panel Git, dasbor, penjelajah file, layar File, tab file, dan diff bekerja di host. VS Code, Cursor, dan Windsurf membuka file jarak jauh melalui ekstensi Remote-SSH mereka
- Tidak ada yang dipasang di host: tanpa agen, tanpa daemon, hanya satu sesi `sh` per koneksi
- Fitur yang hanya masuk akal secara lokal (dasbor per tipe proyek, tugas paralel, node workflow yang berjalan di mesin ini, pengikatan akun, unggah ke cloud, Buka di Explorer) ditampilkan nonaktif, dengan alasannya sebagai tooltip
### Panel basis data
- Dukungan multi-driver: SQLite, MySQL, MariaDB, PostgreSQL, MongoDB
- **Penjelajah Redis**: penjelajah kunci berbentuk pohon, dengan pemeriksaan nilai sesuai tipenya
- Penjelajah data dua panel dengan penyuntingan inline
- Editor SQL dengan penyorotan sintaks, templat, dan eksekusi banyak pernyataan
- Sisip dan hapus baris, filter pencarian
- Pemilih basis data khusus untuk berganti koneksi dengan cepat
- Pooling koneksi dengan pengusiran koneksi menganggur
### Workspace
- Pusat pengetahuan **lintas proyek**: kelompokkan proyek yang berkaitan di sekitar basis pengetahuan bersama, agar konteks yang menjangkau beberapa repo punya tempat tinggal
- Dokumen markdown dengan label dan pencarian teks penuh di seluruh workspace
- **Tautan konsep**: catat hubungan antar entitas (`Web App depends-on API Service`) dan lihat sebagai grafik
- **Chat penasihat**: ajukan pertanyaan tentang workspace Anda dan dapatkan jawaban berdasarkan isi basis pengetahuan
- **Mention @workspace**: ketik @workspace di chat untuk menyisipkan basis pengetahuan Anda sebagai konteks
- Alat MCP untuk membaca dan menulis isi workspace dari Claude Code
### Server MCP (claude-terminal)
Server MCP terpadu, dikonfigurasi otomatis oleh aplikasi, yang mengekspos Claude Terminal itu sendiri ke Claude Code. **23 modul alat**, dimuat secara dinamis — cukup menaruh berkas `.js` baru di `resources/mcp-servers/tools/` untuk mendaftarkannya.
| Modul | Apa yang diberikan ke Claude |
| --- | --- |
| `projects` | Daftar proyek, info proyek, pemindaian TODO/FIXME |
| `timetracking` | Hari ini, minggu ini, per proyek, dan statistik ringkasan |
| `sessions` | Daftar, putar ulang, pencarian kata kunci lintas proyek, ringkasan sesi |
| `workflow` | Buat, sunting, jalankan, batalkan, diagnosis, log eksekusi, variabel |
| `automation` | Daftar, lihat, buat, perbarui, aktifkan/nonaktifkan, hapus Automations |
| `parallel` | Mulai, daftar, periksa, batalkan, gabungkan, dan bersihkan run paralel |
| `kanban` | Kolom dan kartu: tambah, pindah, perbarui, saring, statistik |
| `knowledge` | Fakta lintas proyek: daftar, baca, cari, tulis, hapus |
| `workspace` | Daftar, info, baca/tulis dokumen, cari, tautan konsep |
| `artifacts` | Daftar, baca, cari, versi, statistik, hapus |
| `database` | Kueri, daftar/deskripsi tabel, skema penuh, statistik, ekspor |
| `terminal` | Buat, daftar, kirim perintah, baca keluaran, tutup |
| `tabs` | Orkestrasi tab dengan kendali izin |
| `sidebar` | `ui_navigate` dan `ui_state` untuk mengendalikan dan membaca panel yang tampil |
| `control-tower` | Daftar agen aktif, hentikan salah satunya dari jauh |
| `errorlog` | Entri, statistik, pola, ekspor, bersihkan |
| `usage` | Baca dan segarkan penggunaan Claude |
| `settings` | Baca dan tulis pengaturan aplikasi |
| `marketplace` / `plugins` | Cari, pasang, dan hapus skill serta plugin |
| `webapp` / `fivem` / `discord` | Alat khusus tiap tipe proyek |
Sebuah server `database-mcp-server.js` khusus juga disertakan untuk penggunaan basis data saja.
### Pratinjau WebApp
- Pratinjau langsung dengan webview Chromium (menggantikan iframe)
- Umpan balik visual dengan anotasi multi-pin per halaman
- Pemeriksa breakpoint responsif
- Pemindai deteksi otomatis masalah visual
- Alat pengukur jarak bergaya penggaris
- Panel audit aksesibilitas dengan axe-core
### Kendali jarak jauh (PWA yang di-host sendiri)
- PWA seluler untuk mengendalikan dari ponsel atau peramban, dilayani oleh aplikasi itu sendiri
- Relai cloud untuk akses di luar jaringan lokal Anda (lewat server yang di-host sendiri)
- Pemantauan sesi waktu nyata, interaksi chat, dan pergantian proyek
- Autentikasi PIN 6 digit dengan kode QR
- Diterjemahkan sepenuhnya, hadir dengan content-security-policy sendiri, dan transkripnya bertahan lebih dari satu giliran
> [!NOTE]
> Ini adalah kendali jarak jauh **yang di-host sendiri**, berbeda dari [Claude Remote Control](#claude-remote-control-claudeai-dan-ponsel), yang menempatkan sesi di claude.ai dan aplikasi ponsel resmi Claude. Anda bisa memakai salah satunya, atau keduanya.
### Penyesuaian bilah samping
- Seret dan lepas tab bilah samping untuk menyusunnya sesuai cara kerja Anda
- Sematkan tab yang sering dipakai; yang jarang dipakai masuk ke menu "Lainnya"
- Sesuaikan lewat modal atau langsung dengan menyeret
### Palet perintah
- Palet perintah terpadu (Ctrl+P) dengan pencarian fuzzy di proyek, perintah, dan aksi cepat
- Peluncur cerdas dengan kerangka pemuatan beranimasi dan penyorotan kecocokan
- Menuju panel mana pun atau memicu aksi mana pun tanpa menyentuh tetikus
### Pembaruan otomatis CLAUDE.md
- Setelah sesi berakhir, Claude menganalisis percakapan dan mengusulkan tambahan yang relevan untuk CLAUDE.md proyek Anda
- Tinjau dan terima usulan dalam modal bergaya diff sebelum diterapkan
### Lainnya
- **Pemulihan sesi**: simpan dan pulihkan seluruh ruang kerja antar peluncuran ulang
- **Penampil berkas**: penampil .md bawaan, penampil PDF, dan penampil model 3D (.glb, .gltf, .obj) di panel terminal
- **Wawasan dasbor**: lencana kesehatan proyek dan peta panas commit
- **Pemantau penjelajah berkas**: pembaruan pohon otomatis saat sistem berkas berubah
- **Menu konteks tab**: klik kanan tab mana pun untuk aksi cepat
- **Persistensi status jendela**: mengingat posisi, ukuran, dan status termaksimalkan
- Wizard peluncuran pertama dengan pemasangan hook opsional
- Integrasi system tray, dengan ikon berwarna aksen
- Notifikasi toast kustom, bisa menumpuk, transparan yang tembus klik, dan bertombol aksi
- Pintasan global (`Ctrl+Shift+P` / `Cmd+Shift+P` pemilih cepat, `Ctrl+Shift+T` / `Cmd+Shift+T` terminal baru)
- Kunci instans tunggal
- Installer NSIS kustom dengan gambar bermerek (Windows), DMG (macOS), AppImage (Linux), Snapcraft, Flatpak
- Manajemen server FiveM (peluncuran, konsol terintegrasi, pemindaian resource, wizard pembuat resource)
- Tipe proyek Minecraft dengan generator plugin Java dan skrip peluncuran yang menyesuaikan platform
- Manajemen aplikasi web dengan deteksi framework otomatis dan templat scaffold
- Deteksi proyek Python (versi, venv, dependensi, titik masuk)
- Tipe proyek API dengan penguji rute terintegrasi, variabel, dan konsol
- **Tipe proyek bot Discord**: pembangun embed dan komponen secara visual dengan pratinjau langsung
## Penggunaan
```bash
# Pasang dependensi sekali saja
npm install
# Build renderer lalu jalankan aplikasi
npm start
# Jalankan dengan DevTools terbuka
npm run start:dev
# Build renderer dalam mode watch (pengembangan)
npm run watch
```
> [!TIP]
> Jika Anda mengubah berkas di bawah `src/renderer/`, `src/project-types/`, atau `renderer.js`, jalankan `npm run build:renderer` sebelum mengemas atau membuka PR.
## Build
```bash
# Build untuk platform saat ini
npm run build
# Build untuk platform tertentu
npm run build:win # Windows (installer NSIS)
npm run build:mac # macOS (DMG)
npm run build:linux # Linux (AppImage)
```
Installer dihasilkan di direktori `build/`.
## Pengujian
```bash
# Jalankan seluruh pengujian (149 suite Jest, jsdom)
npm test
# Pengujian mode watch selama pengembangan
npm run test:watch
# ESLint untuk main, renderer, shared, server MCP, dan skrip
npm run lint
npm run lint:fix
# Gagal jika CLAUDE.md sudah melenceng dari pohon yang dijelaskannya
npm run check:docs
# Uji asap Playwright terhadap aplikasi Electron yang sebenarnya
npm run test:e2e
```
CI menjalankan tiga job pada setiap push dan PR: `lint` (cepat, gagal duluan),
`test` (Node 18 dan 20 di Windows, Linux, dan macOS), dan `e2e` (Ubuntu di bawah
`xvfb-run`). Job E2E bersifat **memblokir**: ia membuka aplikasi sungguhan, menyusuri
setiap tab bilah samping, dan gagal pada kesalahan konsol renderer atau kegagalan
proses utama apa pun.
`npm run test:e2e` sengaja tidak masuk `npm test` karena membutuhkan tampilan dan
bundle renderer yang sudah dibangun. Menjalankannya secara lokal juga memerlukan modul
native yang dibangun untuk ABI Electron (`npm run postinstall`).
---
## Pintasan keyboard
| Pintasan | Aksi |
| --- | --- |
| `Ctrl+Shift+P` | Pemilih proyek cepat (global) |
| `Ctrl+Shift+T` | Terminal baru di proyek saat ini (global) |
| `Ctrl+Shift+W` | Worktree baru (global) |
| `Ctrl+Shift+E` | Panel sesi |
| `Ctrl+T` | Buat terminal |
| `Ctrl+W` | Tutup terminal |
| `Ctrl+N` | Proyek baru |
| `Ctrl+E` | Tampilkan/sembunyikan penjelajah berkas |
| `Ctrl+P` | Pemilih cepat |
| `Ctrl+,` | Pengaturan |
| `Ctrl+←` / `Ctrl+→` | Ganti terminal (kiri/kanan) |
| `Ctrl+↑` / `Ctrl+↓` | Ganti proyek (atas/bawah) |
| `Ctrl+F` | Cari di transkrip percakapan berjalan |
| `Escape` | Tutup dialog |
Pintasan dapat disesuaikan di Pengaturan.
---
## Arsitektur
Claude Terminal adalah JavaScript CommonJS biasa dengan tipe lewat JSDoc. Tanpa
TypeScript, tanpa framework frontend: renderer dibundel esbuild menjadi ESM dengan code splitting.
```
claude-terminal/
├── main.js # Titik masuk Electron, siklus hidup, kunci instans tunggal
├── renderer.js # Titik masuk renderer (dibundel ke dist/renderer.bundle.js)
├── index.html # UI jendela utama
├── notification.html # Jendela notifikasi toast kustom
├── quick-picker.html # Jendela palet perintah
├── setup-wizard.html # Wizard peluncuran pertama
├── styles/ # 30 berkas CSS modular, di-@import oleh index.css
├── src/
│ ├── main/ # ── Proses utama (Node.js) ──
│ │ ├── preload.js # Jembatan konteks (window.electron_api)
│ │ ├── preload-quickpicker.js # Preload untuk jendela palet
│ │ ├── ipc/ # 34 berkas IPC, 322 handler
│ │ │ ├── index.js # Orkestrator, mendaftarkan setiap handler
│ │ │ ├── git.ipc.js # 69 handler, yang terbesar
│ │ │ ├── chat.ipc.js # Sesi streaming Agent SDK
│ │ │ ├── github.ipc.js # OAuth device flow, PR, run CI
│ │ │ └── ... # terminal, dialog, workflow, remote, database,
│ │ │ # accounts, knowledge, artifacts, workspace,
│ │ │ # parallel, cloud-*, errorLog, voice, chrome...
│ │ ├── services/ # 35 layanan
│ │ │ ├── ChatService.js # Jembatan ke Claude Agent SDK
│ │ │ ├── TerminalService.js # node-pty, pengelompokan keluaran adaptif
│ │ │ ├── AccountManager.js # Banyak akun Claude
│ │ │ ├── RemoteControlService.js # Jembatan claude.ai / ponsel
│ │ │ ├── ChromeBridgeService.js # Claude di Chrome
│ │ │ ├── WorkflowService.js # + Runner, Scheduler, Storage
│ │ │ ├── ParallelTaskService.js # Satu worktree per subtugas
│ │ │ ├── KnowledgeService.js # Basis pengetahuan global
│ │ │ ├── ErrorLogService.js # Pengumpulan kesalahan terpusat
│ │ │ └── ...
│ │ ├── windows/ # MainWindow, QuickPicker, SetupWizard, Tray, Notification
│ │ ├── utils/ # paths, git, shell, fileLock, claudeBridge, sdkCli...
│ │ └── workflow-nodes/ # 31 jenis node, satu *.node.js masing-masing, terdaftar otomatis
│ ├── renderer/ # ── Proses renderer (peramban) ──
│ │ ├── index.js # Pemuat modul dan urutan inisialisasi
│ │ ├── core/ # Kontainer DI, BaseService/Component/Panel, ApiProvider
│ │ ├── state/ # 17 modul state observable (kelas dasar State.js)
│ │ ├── services/ # 28 layanan
│ │ │ ├── MarkdownRenderer.js # + subsistem markdown/ (configure, streaming,
│ │ │ │ # postProcess, interactivity, blocks)
│ │ │ ├── WorkflowGraphEngine.js # Editor node canvas buatan sendiri (tanpa LiteGraph)
│ │ │ ├── DiffRenderer.js # Diff terpadu bergaya GitHub
│ │ │ ├── ProjectTimeline.js # Menggabungkan enam set catatan jadi satu lini masa
│ │ │ ├── VoiceCaptureService.js
│ │ │ └── mention-sources/ # Sumber @mention dan palet, bisa dicolok
│ │ ├── ui/
│ │ │ ├── components/ # 18 komponen (ChatView, TerminalManager,
│ │ │ │ # FileExplorer, ProjectList, ProjectBar, Modal...)
│ │ │ ├── panels/ # 25 panel (Settings, GitChanges, ControlTower,
│ │ │ │ # ParallelTask, Workspace, Database, Kanban,
│ │ │ │ # ErrorLog, Files, Artifacts, Connectivity...)
│ │ │ └── themes/ # terminal-themes.js
│ │ ├── features/ # KeyboardShortcuts, QuickPicker, DragDrop
│ │ ├── events/ # ClaudeEventBus + penyedia Hooks / Scraping
│ │ ├── workflow-fields/ # 13 bidang UI kustom untuk node
│ │ ├── workflow-triggers/ # 12 jenis pemicu (definisi + konfigurator)
│ │ ├── viewers/ # Penampil PDF, penampil 3D (three.js) — ESM, dimuat sesuai kebutuhan
│ │ ├── i18n/locales/ # en, fr, es, id, zh-CN (3641 kunci masing-masing, tetap selaras)
│ │ └── utils/ # dom, color, format, paths, fileIcons, syntaxHighlight
│ ├── shared/ # 12 modul yang dipakai bersama main, renderer, dan server MCP
│ │ ├── artifact-store.js # Dipakai apa adanya oleh proses server MCP
│ │ ├── model-options.js # Definisi tingkat premium
│ │ ├── permission-modes.js # Mode SDK <-> ejaan lama executionMode
│ │ └── simple-task.js # Mengompilasi Automation menjadi grafik workflow
│ └── project-types/ # Sistem tipe yang bisa dicolok (base-type.js + registry.js)
│ ├── general/ api/ webapp/ python/ minecraft/ fivem/ discord/
│ └── ... # masing-masing: main/ layanan+ipc, renderer/ dashboard+wizard, i18n/
├── resources/
│ ├── mcp-servers/ # Server MCP yang disertakan
│ │ ├── claude-terminal-mcp.js # Server terpadu
│ │ ├── database-mcp-server.js # Server khusus basis data
│ │ └── tools/ # 23 modul alat yang terdaftar otomatis
│ ├── bundled-skills/ # create-skill, create-agents
│ └── hooks/ # Skrip hook, mengirim peristiwa lewat HTTP
├── remote-ui/ # PWA seluler, disertakan sebagai extraResources
├── tests/ # 149 suite Jest + satu uji asap Playwright
├── scripts/build-renderer.js # Bundler esbuild
└── website/ # Halaman depan, changelog, informasi hukum
```
> `cloud/` (relai) dan `hub-worker/` (sebuah Cloudflare Worker) adalah paket terpisah
> dengan `package.json` masing-masing. Keduanya tidak dibundel ke aplikasi desktop.
### Batasan
Pemisahan main/renderer ditegakkan oleh ESLint, bukan sekadar konvensi:
- Renderer tidak pernah mendapat `child_process`, `fs`, `net`, atau `electron` secara
langsung. Ia berbicara ke proses utama hanya lewat `window.electron_api`.
**`child_process` sengaja tidak pernah diekspos**: renderer menampilkan markdown yang
ditulis model, jadi jembatan ke peluncuran proses akan mengubah injeksi HTML apa pun
menjadi eksekusi kode.
- `contextIsolation: true` dan `nodeIntegration: false` di kelima jendela.
- CSP di `index.html` tidak memiliki `'unsafe-inline'`, sehingga HTML yang disuntikkan ke
chat tidak bisa menjalankan skrip. Semua markdown yang dirender melewati `dompurify`.
Jika salah satu aturan ini terpicu, perbaikannya adalah handler IPC baru, bukan
`eslint-disable`.
---
## Berkontribusi
Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduannya.
Untuk kontribusi terjemahan, lihat [bagian Terjemahan (i18n)](CONTRIBUTING.md#translations-i18n).
Untuk menyumbang terjemahan, lihat [panduan i18n](.github/i18n-coverage.md) kami.
## Keamanan
Lihat [SECURITY.md](SECURITY.md) untuk melaporkan kerentanan.
## Lisensi
[GPL-3.0](LICENSE)
Lihat [catatan runtime, perlindungan data, dan pemulihan](RUNTIME_RELIABILITY.md) (bahasa Inggris) untuk persyaratan penerapan dan perintah validasi.