AIDive

Di dalam pi: toolkit 92.000 bintang untuk buat agen sendiri

Oleh AIDive · Terbit

Coding agent

Agent kamu adalah kotak hitam

Claude Code, Codex, dan Gemini CLI adalah agent harness yang dirancang orang lain — dan kalau kamu habiskan hari kerjamu di dalam salah satunya, kamu hidup dengan keputusan desain itu. Mau ubah satu perilaku, tambah tool, perketat aturan permission? Kamu tunggu vendor merilisnya. Kamu tidak tahu isi system prompt-nya, tidak melihat loop yang menjalankan tool-tool itu, dan tidak bisa mengubah apa pun darinya, padahal tool-tool ini sudah jadi tempat kerja utama ribuan developer.

Satu proyek open source mengambil arah yang berlawanan: pi, toolkit yang memberikan suku cadang untuk merakit agent milikmu sendiri, dari konektor model sampai antarmuka. Ia meraih 92.000 bintang GitHub di tahun pertamanya dan merilis hampir tiap minggu. Artikel ini membahas apa yang sebenarnya diberikan pi, cara membangun agent sendiri dengan SDK-nya, dan penilaian jujur terhadap harness yang sudah jadi.

Apa itu harness sebenarnya

Harness adalah seluruh mesin di sekitar language model yang mengubahnya jadi agent yang berfungsi. Model sendirian cuma bisa satu hal: membaca teks dan menghasilkan teks. Ia tidak membaca file kamu, tidak menjalankan satu perintah pun, dan tidak ingat apa-apa dari satu sesi ke sesi lain. Sisanya semua adalah harness — system prompt yang membingkai model, tool yang diberikan kepadanya, loop yang menjalankan panggilan tool dan mengembalikan hasilnya, dan antarmuka di terminal kamu.

Harness juga yang menentukan detail yang bikin beda sehari-hari: bagaimana riwayat dipadatkan saat konteks meluap, bagaimana error tool kembali ke model, apa yang dicatat dan apa yang tidak. Claude Code adalah sebuah harness. Codex juga. Saat sebuah agent membuatmu terkesan, sebagian besar kreditnya milik mesin itu, bukan modelnya — pasang model yang sama di dua harness berbeda dan kamu dapat dua agent yang levelnya tidak sama.

pi, dibuat oleh Earendil Works, memecah mesin itu jadi blok-blok yang bisa dipakai ulang. Kamu bisa pakai coding agent-nya apa adanya, atau ambil bloknya satu per satu untuk merakit sendiri. Opsi kedua itulah yang jadi fokus kita.

Di dalam toolkit pi

pi adalah sebuah monorepo — satu repository yang menampung lima paket yang dipublikasikan terpisah — dan tiap paket mencakup satu lantai dari harness:

Paket Fungsinya
pi-ai API terpadu ke OpenAI, Anthropic, Google dan yang lain: streaming respons, blok reasoning dengan tingkat berpikirnya, penemuan dinamis model tiap provider. Ganti lab cukup dengan ubah satu argumen.
pi-agent-core Loop agent itu sendiri: state percakapan, plus siklus yang mengirim pesan, membaca panggilan tool, menjalankannya, dan mengembalikan hasil sampai tugas selesai. Kasus-kasus rumit — tool yang gagal, respons yang terpotong, panggilan paralel — sudah ditangani.
pi-tui Library rendering terminal dengan differential rendering: cuma menggambar ulang apa yang berubah di layar.
pi-coding-agent Coding agent lengkap yang dirakit dari blok-blok di atas — bukti bahwa toolkit ini cukup untuk membangun produk jadi.
pi-telemetry Pasang metrik penggunaan sendiri tanpa bergantung pada vendor.

Loop agent adalah persis bagian yang akan kamu tulis ulang dengan buruk kalau dari nol; menulisnya dengan benar butuh berminggu-minggu, yang kamu dapat lewat satu import. Timnya menerapkan resep yang sama di tempat lain: repository terpisah, pi-chat, memakai blok yang sama untuk otomasi percakapan.

Angkanya membuktikan formulanya berhasil:

Metrik Nilai
Bintang GitHub 92.123
Fork 11.400
Commit 5.700+
Lisensi MIT
Rilis di dua minggu pertama Agustus 2026 3 (v0.84.2 keluar 14 Agustus)

Lisensi MIT berarti kamu bisa memakai, mengubah, dan menyebarkan pi tanpa batasan, bahkan dalam produk komersial. pi bukan sekadar framework lain: ini harness lengkap yang dikirim dalam suku cadang, dipelihara dengan tempo stabil.

CLI dalam praktik

CLI pi adalah coding agent yang sudah dirakit yang kamu dapat sebelum menyentuh kode apa pun, dan di sinilah kamu akan mulai. Instalasinya satu baris, dan flag --ignore-scripts-nya bukan hal kecil: ini mencegah dependensi kamu menjalankan script instalasinya, salah satu celah serangan yang paling sering dieksploitasi di npm. Jalankan pi, hubungkan provider dengan perintah login, dan kamu punya coding agent langsung di terminal kamu. Status bar menampilkan folder saat ini, sesi, token yang terpakai, dan biaya secara real time — kamu lihat harga tiap permintaan saat itu keluar, bukannya baru tahu tagihan di akhir bulan.

Perintah slash mencakup keseharian: model untuk ganti model di tengah jalan, compact untuk meringkas riwayat saat konteks membengkak, export untuk menarik keluar percakapan, settings untuk sisanya. Satu file markdown di folder prompts jadi perintah yang kamu jalankan lewat namanya.

Ciri khas asli pi ada di penanganan sesi. Tiap percakapan disimpan sebagai JSONL di folder home kamu, dikelompokkan per proyek — dan riwayatnya sebenarnya sebuah pohon, bukan garis. Kamu bisa kembali ke titik mana pun dari sebuah percakapan dan ambil jalan lain pakai fork, lalu berpindah antar cabang pakai tree. Prompt yang gagal sekarang tidak merugikan apa pun: kembali ke node sebelumnya dan coba lagi tanpa kehilangan cabang sebelumnya. Karena semuanya tersimpan lokal, resume membawamu kembali ke sesi mana pun, bahkan berminggu-minggu kemudian. Baik Claude Code maupun Codex tidak menawarkan navigasi riwayat sebagus ini.

Secara default model hanya dapat empat tool: read, write, edit dan bash. Ini sangat sedikit dibanding agent-agent di pasaran, dan itu disengaja (kita bahas lagi di bawah). Konfigurasinya mengikuti logika yang sama: satu file settings global di folder home kamu, satu per proyek yang menimpanya, dan sistem trust yang bertanya dulu sebelum menerapkan setting folder yang baru pertama kali dibuka. Kalau kamu migrasi, pi otomatis memuat file AGENTS.md atau CLAUDE.md kamu yang sudah ada sebagai konteks, jadi instruksi yang sudah ada langsung jalan tanpa ditulis ulang.

Kita rakit agent sendiri

Membangun agent dengan SDK pi dimulai dengan satu import: createAgentSession, yang diberi model runtime dan session manager, mengembalikan agent yang berfungsi. Session manager adalah pilihan persistensi — di memori untuk skrip sekali pakai, atau di disk untuk menemukan lagi percakapan kamu dari satu jalan ke jalan lain.

Kami coba di proyek lokal. Skrip kami menanyakan apa isi folder saat ini; agent memanggil tool read-nya, membaca folder, dan menjawab. Itulah loop lengkapnya, kami tulis sendiri, dalam sekitar sepuluh baris TypeScript. Sesi yang dibuat SDK punya struktur pohon yang sama seperti CLI — tiap pesan terhubung ke induknya — jadi percabangan riwayat juga jalan di kode kamu sendiri.

Custom tool adalah bagian yang jadi menarik. defineTool mengambil nama, deskripsi, skema parameter bertipe, dan fungsi execute, dan tool kamu muncul ke model persis seperti read atau bash. Kami tulis satu yang query daftar video channel, dimasukkan di customTools, dan agent memanggilnya sendiri sejak pertanyaan relevan pertama. Ini pada dasarnya mekanisme yang sama dengan server MCP, hanya saja semuanya ada di file kamu — tanpa proses terpisah, tanpa protokol di tengahnya. Karena skema parameternya bertipe, editor kamu autocomplete argumennya dan agent menerima input yang sudah divalidasi.

Kamu juga mengontrol model, tingkat berpikir (dari nol sampai maksimal), daftar tool yang persis dilihat model, dan bahkan seluruh system prompt lewat resource loader kalau kamu mau mulai dari halaman kosong. Untuk tampilan, session.subscribe memberimu tiap event — teks streaming, panggilan tool, error — yang bisa kamu arahkan ke mana pun kamu mau: terminal, bot messaging, atau pipeline CI yang mengomentari pull request kamu. Dalam satu sore kamu berubah dari pengguna agent jadi pembuatnya, dan akhirnya tahu apa yang terjadi tiap putaran loop.

Memperluas tanpa fork

CLI pi dikustomisasi lewat empat mekanisme, semuanya di folder biasa di proyek atau home kamu:

  • Extensions — modul TypeScript yang mendaftarkan tool, perintah slash, shortcut keyboard, atau elemen UI. Taruh filenya di folder extensions dan langsung dimuat saat start. Di sinilah kamu bisa menulis permission guard, misalnya: extension yang mencegat perintah bash dan minta konfirmasi sebelum yang berbahaya.
  • Skills — paket kemampuan mengikuti standar Agent Skills, yang sama dipopulerkan Anthropic, jadi skill yang sudah ada bisa langsung dipakai ulang.
  • Prompts — prompt yang bisa dipakai ulang sebagai file markdown biasa.
  • Themes — hot-reload selagi CLI-nya berjalan.

Semuanya terinstal seperti paket biasa: pi install ambil paket npm atau repo git, dan satu perintah memperbarui semuanya. Dokumennya merangkum filosofi ini dalam satu kalimat: sesuaikan pi ke workflow kamu, bukan sebaliknya, tanpa fork atau patch bagian dalam.

Ini kebalikan dari harness besar. Di mana Claude Code menyertakan sub-agent, plan mode dan permission di dalam produknya, pi sengaja meninggalkannya di luar, untuk dibangun sebagai extension atau diinstal dari komunitas. Taruhannya jelas: inti minimal yang nyaris tidak berubah, dan semua kustomisasi tinggal di sisi kamu, dalam file yang di-versioning bersama proyek kamu.

Batasan sesungguhnya

Transparansi pi dibayar lewat kerja keras, dan harganya datang dalam tiga bagian.

Pertama guardrail: secara default tidak ada permission prompt bawaan, jadi agent bisa jalankan perintah bash tanpa bertanya apa pun. Dokumen resminya mengakui ini dan menyarankan tiga pola isolasi, termasuk Docker — tapi menyiapkannya sebelum melepas agent ke mesin penting adalah tanggung jawab kamu sendiri.

Lalu kematangan: ini masih v0.84, bukan 1.0, dengan sekitar seratus issue terbuka dan beberapa API masih ditandai eksperimental, seperti remote session client yang baru ditambahkan minggu-minggu ini. Apa yang jalan hari ini bisa rusak di rilis berikutnya; itu harga normal dari proyek yang bergerak secepat ini.

Dan terakhir, waktu. Tiap kenyamanan yang Claude Code berikan langsung dari awal — plan mode, sub-agent, permission granular — di sini jadi proyek yang kamu bangun sendiri, atau paket komunitas yang kamu kejar sambil berharap terus dirawat. Ekosistem extension-nya baru satu tahun: kamu akan lebih banyak menemukan lubang yang perlu diisi daripada paket siap pakai. Bahkan instalasinya sudah mengajarkan tingkat kewaspadaan yang dibutuhkan, dengan flag --ignore-scripts-nya, dan kamu harus jaga level itu di sepanjang rantai. Kalau tujuan kamu kirim kode malam ini, pi akan memperlambatmu dulu sebelum mempercepat — jangan ganti harness utama kamu minggu ini cuma karena video ini.

Untuk siapa pi sebenarnya

pi cocok untuk developer yang membangun produk dengan banyak agent, bukan cuma satu. Bagi mereka, ini mungkin investasi belajar terbaik saat ini: instal CLI-nya, tulis agent dua puluh baris pakai SDK-nya, dan beri dia satu tool buatanmu sendiri. Lakukan itu dan kamu akan paham Claude Code lebih baik dari kebanyakan penggunanya.

Kalau kamu cuma mau asisten produktif hari ini, tetap pakai harness terintegrasi kamu dan kembali saat 1.0 sudah membawa guardrail: nilai pi ada di pemahaman dan kontrol, bukan kenyamanan instan. Di antara keduanya ada jalan tengah tanpa risiko — tetap pakai Claude Code untuk kerja, dan pakai pi sebagai test bench untuk memahami apa yang disembunyikan tool utamamu.

Yang paling kita bawa pulang adalah harness bukan lagi kotak hitam: suku cadangnya ada di meja, terdokumentasi, berlisensi MIT. Lain kali sebuah agent membuatmu terkesan atau kesal, kamu akan tahu persis bagian mana yang harus dilihat.

Sumber

Pertanyaan yang sering diajukan

Apa itu pi, toolkit agent AI ini?
pi adalah monorepo open source berlisensi MIT dari Earendil Works yang memecah agent harness AI jadi lima paket yang bisa dipakai ulang — pi-ai (API model terpadu), pi-agent-core (loop agent), pi-tui (UI terminal), pi-coding-agent (coding agent lengkap) dan pi-telemetry (metrik). Kamu bisa pakai coding agent-nya apa adanya atau merakit sendiri dari suku cadangnya.
Bagaimana cara membangun agent AI sendiri dengan pi?
Import createAgentSession dari SDK-nya, beri dia model runtime dan session manager (di memori atau di disk), dan kamu punya loop agent yang berfungsi dalam sekitar sepuluh baris TypeScript. Tambahkan kemampuan sendiri dengan defineTool, yang mengambil nama, deskripsi, skema parameter bertipe, dan fungsi execute.
Apakah pi pengganti Claude Code?
Belum untuk pemakaian harian: pi sengaja dirilis tanpa permission prompt bawaan, tanpa plan mode atau sub-agent, dan di v0.84 API-nya masih bisa berubah antar rilis mingguan. Nilainya hari ini ada di kontrol dan pemahaman — banyak developer tetap pakai Claude Code untuk kerja dan pakai pi sebagai test bench.
Apa saja lima paket dalam monorepo pi?
pi-ai (satu API untuk OpenAI, Anthropic, Google dan lainnya, dengan streaming dan tingkat reasoning), pi-agent-core (state percakapan dan loop eksekusi tool), pi-tui (differential rendering terminal), pi-coding-agent (coding agent yang dirakit) dan pi-telemetry (metrik penggunaan tanpa vendor).
Bagaimana pi menangani custom tool dibanding MCP?
defineTool mendaftarkan tool langsung di kode kamu dengan skema parameter bertipe, jadi tampil ke model persis seperti tool bawaan read atau bash. Ini mekanisme yang sama dengan server MCP tapi tanpa proses terpisah dan tanpa lapisan protokol, dan skema bertipe memberimu autocomplete di editor serta input yang sudah divalidasi.
Apakah pi siap untuk produksi?
pi ada di v0.84 dengan sekitar seratus issue terbuka dan beberapa API masih eksperimental, dan secara default agent bisa jalankan perintah shell tanpa minta izin. Dokumennya menyarankan tiga pola isolasi (termasuk Docker); terapkan salah satunya sebelum pakai pi di mesin yang penting.

Video terkait