DEV Community

Cover image for Cara melihat sesi Claude Code mana yang menunggu izinmu di osFoundry
BBT for BBT Indonesia

Posted on

Cara melihat sesi Claude Code mana yang menunggu izinmu di osFoundry

Di akhir panduan ini, Claude Code berjalan di satu panel terminal, Codex di panel lain, dan beberapa chat serta agen berjalan di sampingnya. Satu board di osFoundry menampilkan semuanya. Saat Claude Code berhenti di "Do you want to make this edit?", kartunya pindah ke kolom Needs you (butuh kamu) dalam waktu kurang dari satu detik. Satu klik membuka panel tepat di prompt itu. Kamu menjawab, dan kartunya kembali ke Running (berjalan).

Siapa mengerjakan apa

Claude Code Aplikasi desktop osFoundry
Login Login Claude miliknya sendiri, di prosesnya sendiri Tidak menyimpan apa pun dari itu. Untuk agen yang dijalankannya sendiri, aplikasi ini menghapus ANTHROPIC_API_KEY warisan supaya eksekusi lewat langganan tidak ditagih sebagai API
Tempat berjalan PTY sungguhan di layar Terminal, di folder proyekmu Memiliki PTY dan menyimpan salinan layar yang diemulasikan
Siapa yang menyetujui Kamu, di prompt izin milik Claude Code sendiri Tidak pernah menjawab untukmu. Hanya memindahkan kartu dan membuka panel
Cara status diketahui Claude Code menampilkan UI-nya seperti biasa Membaca layar setiap 700 ms berdasarkan aturan yang dipublikasikan, dan menerima laporan hook jika agen dijalankan olehnya
Tempat data tersimpan File-mu, terminalmu Teks layar tetap di memori aplikasi di Mac-mu. Mengakhiri sesi agen akan menulis ringkasan ke file pengetahuanmu

Persiapan

  1. Buka layar Terminal (sidebar Main → Terminal, /terminal) dan jalankan agen seperti biasa. Setiap panel adalah PTY tersendiri.
   ~/code/shop-api (fix/checkout-retry) $ claude
   ~/code/shop-web $ codex
Enter fullscreen mode Exit fullscreen mode

osFoundry mengenali Claude Code dari program yang memegang terminal, atau dari layarnya jika kamu menjalankannya lewat skrip wrapper. Tidak ada yang perlu dikonfigurasi.

  1. Buka Sessions (sidebar Main → Sessions, /sessions). Setiap chat, agen tunggal, tim, loop, dan sesi terminal adalah satu kartu. Kolomnya adalah Running, Needs you, Paused (dijeda), Idle (diam), Done (selesai), dan Failed (gagal). Kamu tidak bisa menyeret kartu ke sebuah kolom untuk menetapkan statusnya; kolomnya ditentukan oleh apa yang dilaporkan runtime.

Board Sessions osFoundry dengan kolom Running, Needs you, Paused, Idle, dan Done; shop-api milik Claude Code ada di Needs you (data contoh)

  1. Klik Filter (tulisannya berubah menjadi Filtered saat filter aktif) lalu centang Needs me only (hanya yang butuh saya). Jenis (Chat, Agent, Team, Loop, Terminal) dan rentang waktu tetap seperti sebelumnya.

Menu Filter di board Sessions, dengan Needs me only di bawah Mine only (data contoh)

Tersisa dua kartu: sebuah chat yang mengajukan pertanyaan, dan terminal Claude Code di shop-api.

Board yang difilter ke Needs me only: kartu Claude Code shop-api dan chat Pricing page layout (data contoh)

Sebuah chat masuk ke sini saat pesan terbarunya diakhiri pertanyaan yang masih menunggu jawaban. Sebuah terminal masuk ke sini saat statusnya blocked, dan itulah yang ditunjukkan langkah berikutnya.

  1. Klik kartu shop-api. Layar Terminal terbuka di panel itu dengan prompt yang masih tampil. Rail di sebelah kiri menandai Claude Code sebagai "Needs you · shop-api" dan Codex sebagai "Working · shop-web".

Claude Code di panel terminal osFoundry, berhenti di "Do you want to make this edit to charge.ts?" (data contoh)

Jika ada beberapa panel terbuka, Mod+. (⌘. di Mac) melompat ke agen berikutnya yang membutuhkanmu. Status bar juga menuliskannya: "⌘. to jump to what needs you".

  1. Jawab di panel seperti di tempat lain: Enter di 1. Yes. Claude Code melanjutkan pekerjaannya, dan pada sweep berikutnya rail dan board kembali menampilkannya sebagai Working / Running.

Panel yang sama setelah dijawab: perubahan diterapkan, test berjalan, dan Claude Code melaporkan perbaikannya (data contoh)

  1. Saat sesi agen sudah selesai dan berada di Idle, seret kartunya ke Done. Aplikasi akan bertanya dulu.

Dialog akhir sesi: "It is summarised into your knowledge files first, then filed away. Nothing is deleted." (data contoh)

Konfirmasi akan menulis ringkasan, lalu mengakhiri sesi. Jika ringkasan gagal, sesi tetap di tempatnya. Sesi yang sedang berjalan sama sekali tidak bisa dijatuhkan ke Done: "This session is still running. Pause it first, then end it." (jeda dulu, baru akhiri).

Contoh eksekusi nyata

Contoh. Panel dari screenshot tadi, dan apa yang disimpulkan osFoundry dari setiap layar. Keputusannya berasal dari file aturan Claude Code, claude.toml, yang dibundel bersama aplikasi dan juga tersedia di osfoundry.io/agent-detection/claude.toml.

~/code/shop-api (fix/checkout-retry) $ claude
● Retry now reuses the first charge. Updating the payment code.

Edit file  src/payments/charge.ts
  41 -  const intent = await stripe.paymentIntents.create(params)
  41 +  const intent = await stripe.paymentIntents.create(params, {
  42 +    idempotencyKey: `charge-${order.id}`,
  43 +  })

Do you want to make this edit to charge.ts?
❯ 1. Yes
  2. Yes, allow all edits during this session
  3. No, and tell Claude what to do differently
Enter fullscreen mode Exit fullscreen mode
di layar                      state     aturan yang terpicu                                      kartu
spinner, "esc to interrupt"   working   esc to interrupt                                         Running
prompt di atas                blocked   Do you want to (proceed|continue|make this edit|create)  Needs you
  ... kamu menekan Enter di "1. Yes"
spinner lagi                  working   esc to interrupt                                         Running
Enter fullscreen mode Exit fullscreen mode
● Update(src/payments/charge.ts)
  ⎿ Updated src/payments/charge.ts with 3 additions and 1 removal
● Bash(npm test -- payments)
  ⎿ Tests: 42 passed, 42 total
● Fixed. A second press of Pay now reuses the first charge.
Enter fullscreen mode Exit fullscreen mode

Aturan blocked sengaja diletakkan di atas aturan working. Selama prompt tampil, footer Claude Code masih bisa bertuliskan "esc to interrupt", dan aturan pertama yang cocok yang menang.

Di mana batasnya

osFoundry tidak pernah menjawab prompt untukmu. Agen lain bisa mengetik ke sebuah panel lewat tool runtime_send milik aplikasi, tetapi tool itu menolak panel yang sedang menunggu keputusan. Menjawab harus lewat tool dengan nama terpisah, runtime_answer, dan kamu mengonfirmasi setiap jawaban. Pengecekannya dilakukan dengan membaca ulang layar pada saat mengetik, bukan dari sweep terakhir, sehingga prompt yang baru saja muncul tidak bisa menangkap ketikan yang dimaksudkan sebagai teks biasa.

Layar yang tidak bisa dibaca osFoundry dilaporkan sebagai Idle, tidak pernah sebagai Needs you. Komentar di detect.rs menjelaskan alasannya: satu alarm palsu saja dan orang berhenti memercayai badge-nya, dan setelah itu alarm yang benar pun ikut sia-sia. Jadi saat sebuah aturan ragu, aplikasi melaporkan lebih sedikit, bukan lebih banyak.

Aturan adalah data, bukan kode. File aturan yang diunduh bisa mengubah pola mana yang cocok, dan tidak lebih. File itu tidak bisa mengubah program mana yang dijalankan. Override milikmu sendiri diletakkan di ~/.osfoundry/agent-detection/claude.toml.

Teks terminal tetap berada di memori aplikasi desktop. Hanya sesi yang kamu akhiri yang meninggalkan jejak di luar panel: ringkasannya di file pengetahuanmu, ditulis sebelum apa pun diarsipkan.

Selanjutnya

Jalankan Claude Code kedua di folder lain, beri keduanya tugas yang membutuhkan perubahan, lalu biarkan board Sessions terfilter ke Needs me only sementara kamu mengerjakan hal lain. Jika belum punya aplikasi desktopnya, kamu bisa mendapatkannya di halaman unduhan.

Top comments (0)