Di era ketika asisten kode berbasis AI seperti Claude Code, OpenAI Codex, dan GitHub Copilot menjadi bagian tak terpisahkan dari alur kerja pengembang, masalah lama tetap ada: mempertahankan reproduktifitas saat menguji keterampilan baru. Banyak profesional TI di Indonesia—dan di seluruh dunia—menemukan bahwa direktori `~/.claude/` mereka berubah menjadi labirin keterampilan, pengaturan, dan perintah yang menumpuk dari puluhan proyek yang berbeda. Ketika seorang pengembang mencoba menguji keterampilan yang baru ditulis, agen yang dijalankan mungkin sudah membawa "kebisingan" dari pekerjaan lama, sehingga sulit membedakan apakah hasil yang dicapai berasal dari keterampilan baru atau dari konfigurasi yang tidak disengaja.
Masalah ini pada dasarnya adalah versi perangkat lunak dari "debugging dengan lingkungan yang salah”, kecuali lingkungan tersebut tidak terlihat. Untuk mengatasi hal ini, seorang pengembang membuat **lincubate**, sebuah alat yang menyediakan ruang yang bersih dan terisolasi. Dengan menjalankan agen AI di dalam kontainer LXD, lincubate memastikan bahwa hanya proyek yang sedang dikerjakan yang dapat diakses oleh agen. Direktori keterampilan host (`~/.claude/`) tidak dimuat kecuali pengembang secara eksplisit mengizinkannya melalui flag `--allow-claude-skills`. Hal ini mengubah sandboxing dari sebuah kekhawatiran keamanan yang abstrak menjadi alat fokus yang konkret.
Mengapa memilih LXD daripada Docker? LXD menawarkan kontainer sistem penuh dengan init yang tepat, systemd, dan akun pengguna nyata, yang terasa lebih seperti mesin virtual ringan daripada sebuah proses yang dibungkus. Bagi agen AI yang sering perlu menginstal paket, menjalankan alat build, atau memulai layanan, memiliki lingkungan Linux yang lengkap sangat penting. Selain itu, pada mesin dengan sumber daya terbatas—seperti ThinkPad lama yang digunakan pengembang—LXD terbukti lebih ringan daripada Docker, sehingga lebih nyaman untuk penggunaan seharian penuh.
Penggunaan inti lincubate sangat sederhana. Dari dalam direktori proyek, jalankan `lb claude` untuk meluncurkan Claude Code di dalam kontainer LXD. Berkas proyek di-bind-mount ke `/home/ubuntu/project` dengan pemetaan UID sehingga kepemilikan berkas tetap normal. Kunci API dapat diteruskan sebagai variabel lingkungan (opsional), dan token otentikasi dapat disalin atau dipasang secara read‑only. Satu kontainer dibuat per direktori proyek, dan namanya berasal dari jalur kerja, sehingga sesi yang dilanjutkan pada hari berikutnya akan menemukan kontainer yang sudah ada tanpa perlu membuat lingkungan baru lagi.
Alat ini juga mendukung berbagai agen AI. Selain Claude Code, lincubate dapat menjalankan OpenAI Codex (`lb codex`), Aider (`lb aider`), Gemini CLI (`lb gemini`), GitHub Copilot (`lb copilot`), OpenCode (`lb opencode`), dan Cursor baik dalam mode CLI (`lb cursor`) maupun GUI (`lb cursor-gui`). Mode GUI bahkan meneruskan X11/Wayland ke dalam kontainer, yang terasa seperti sebuah keajaiban bagi banyak pengguna.
lincubate awalnya ditulis dalam Bash, tetapi seiring waktu berkembang menjadi sebuah skrip yang berantakan, dengan banyak manipulasi string dan panggilan ke biner `lxc`. Pengembang kemudian menulis ulang alat ini dalam Go, menggunakan klien Go LXD secara langsung dan TOML untuk konfigurasi. Hasilnya adalah biner statis tunggal tanpa dependensi runtime dan jauh lebih sedikit masalah teknis. Beberapa tantangan muncul selama pengembangan: `su -l` mereset lingkungan, yang mengganggu penerusan kredensial, dan LXD terkadang mengembalikan kode keluar non‑nol meskipun kontainer dimulai dengan sukses. Selain itu, pemetaan UID (`raw.idmap`) tidak didukung di semua konfigurasi LXD, sehingga diperlukan mekanisme fallback yang elegan.
Memulai sangat mudah. Kloning repositori di `github.com/popey/lincubate`, lakukan `go build`, dan letakkan biner yang dihasilkan di direktori PATH Anda. LXD harus sudah terinstal dan dikonfigurasi, baik secara lokal maupun remote. Tidak diperlukan konfigurasi tambahan. Jika Anda perlu menyesuaikan—menambahkan paket ke gambar dasar, mengontrol agen mana yang diinstal secara default, atau menetapkan variabel lingkungan tambahan—jalankan `lb generate-config` untuk membuat berkas TOML yang dapat diedit.
Bagi komunitas pengembang Indonesia, di mana banyak proyek sumber terbuka dan inisiatif startup bergantung pada alat pengembangan yang andal, lincubate menawarkan cara yang praktis untuk menjaga reproduktifitas dan fokus. Dengan mengisolasi setiap eksperimen AI coding, tim dapat menghindari kesalahan yang disebabkan oleh kebocoran konfigurasi silang, mempercepat siklus debugging, dan pada akhirnya menghasilkan kode yang lebih berkualitas. Alat ini juga sesuai dengan tren yang lebih luas dalam pengembangan perangkat lunak yang terisolasi dan dapat direproduksi, yang semakin penting seiring dengan semakin banyaknya penggunaan model bahasa besar dalam alur kerja pengembangan.