Clip menaruh halaman web di catatan Anda dengan ringkasan yang sudah ditulis. Hari ini ia terbuka untuk semua akun Telli.sh
Clip tidak sekadar menyimpan halaman web: ia mengubahnya menjadi catatan Telli.sh dengan judul dan ringkasan satu baris yang ditulis AI. Ia sudah dirilis tetapi tersembunyi di balik flag admin, sehingga dua penghitung analitik tidak pernah menyala sekali pun. Gerbang itu kini dibongkar: akun gratis mendapat 30 penyimpanan dan 10 ringkasan AI per hari, dan ekstensi peramban versi 1.18 menambahkan menu klik kanan Save to Telli.sh yang diautentikasi dengan token yang tidak bisa melakukan apa pun selain menyimpan klip.
Ada satu jenis bug yang tidak tertangkap oleh rangkaian pengujian mana pun: fiturnya berjalan, dan tak seorang pun bisa menjangkaunya.
Clip sudah rampung berminggu-minggu. Modalnya menyimpan lewat POST /v1/clip , mengisi kartu tautan dari tag meta publik halaman, membuat ringkasan satu baris dengan AI, membatalkan singgahan daftar catatan, dan sejak awal sudah tahu bedanya antara "tersimpan, tetapi kuota ringkasan Anda habis" dan "yang ini gagal". Semuanya, berfungsi. Dan di PostHog, dua peristiwa yang dilaporkannya — clip_opened dan clip_created — tidak pernah menyala. Bukan jarang, tetapi tidak pernah sama sekali. Nol.
Penyebabnya adalah tiga baris kode di sisi antarmuka. Tombol di bilah sisi dan modalnya sama-sama dikunci di balik user.is_master , dan tombol itu bahkan mengenakan lencana kuning bertuliskan Admin preview . Sisi server tidak pernah mengunci apa pun berdasarkan is_master — ia menerapkan kuota harian per paket, dan di situlah tempat yang benar untuk sebuah batasan. Fitur ini bukan tidak terpakai. Fitur ini tidak terjangkau.
Sejak commit 64852ac pada 5 September 2026, syaratnya tinggal "apakah ada yang sedang masuk". Tulisan ini adalah pengumuman produk, jadi ia memang sengaja berpusat pada produk: inilah yang dilakukan Clip, berapa yang dipotongnya dari jatah Anda, apa yang dikirim ekstensi peramban, dan apa yang dengan sengaja tidak pernah dibacanya.
TL;DR
- Clip terbuka untuk semua akun yang sedang masuk. Tombol di bilah sisi kehilangan lencana adminnya pada 5 September 2026.
- Batasannya berupa kuota harian, bukan gerbang. Paket Free mendapat 30 penyimpanan dan 10 ringkasan AI per hari UTC; Plus, Pro, dan Pro+ naik dari sana. Angka pastinya ada di tabel di bawah.
- Kehabisan kuota ringkasan tidak membuat klip Anda hilang. Tautan beserta metadatanya tetap tersimpan; hanya ringkasannya yang dilewati, dan aplikasi mengatakannya terus terang.
- Ekstensi peramban bisa menyimpan halaman yang sedang Anda buka. "Save to Telli.sh" duduk di menu klik kanan pada setiap halaman http(s), dan membawa serta apa pun yang sedang Anda sorot. Versi 1.18 sedang ditinjau Chrome Web Store saat tulisan ini terbit — jadi belum bisa dipasang.
- Ekstensi diautentikasi dengan token yang hanya bisa menyimpan klip. Ia tidak bisa membaca catatan Anda, mengubah akun Anda, menyentuh penagihan, atau mencetak token lain. Anda melihat bagian rahasianya persis sekali, dan Anda bisa mencabutnya.
- Ekstensi hanya membaca apa yang memang sudah ditampilkan halaman kepada Anda. Judul, tautan canonical, meta
og:/twitter:publik, dan teks yang Anda sorot. Bukan badan artikelnya. Tidak ada yang meninggalkan peramban tanpa klik Anda, dan tanpa token tersimpan, butir menu itu sama sekali tidak melakukan apa-apa.
Apa yang sebenarnya dilakukan Clip terhadap sebuah URL
Buka Clip dari bilah sisi, tempelkan sebuah URL, dan modalnya memanggil POST /v1/clip/metadata . Endpoint itu mengambil HTML halaman lalu hanya membaca tag meta publiknya — og:title, og:description, og:image, og:site_name, article:author, article:published_time , dan <link rel="canonical"> . Judul, deskripsi, nama situs, dan gambar kembali dalam keadaan terisi. Kalau pengambilannya gagal, modal mengatakannya dan tetap membiarkan Anda menyimpan tautan itu, dengan nama host menggantikan nama situs.
Lalu Anda menyimpan, dan Clip menjadi sebuah catatan. Bukan lampiran, bukan penanda di daftar terpisah — melainkan catatan dengan note_type="clip" , duduk di All Notes bersama segala yang lain, bisa dicari, dimasukkan folder, dibagikan, dan diekspor dengan mesin yang sama. URL sumber dan seluruh kartu tautannya disimpan dalam konteks catatan, jadi asal-usulnya tidak pernah hilang di balik ringkasan.
Kalau ada sesuatu untuk diringkas — sebuah deskripsi, teks yang Anda sorot, catatan yang Anda tempel — sebuah peringkasan umum akan berjalan dan menuliskan ringkasan satu baris ke catatan itu. Baris itulah yang Anda lihat di bawah judul dalam daftar.

Tiga klip yang disimpan ke akun produksi pada 5 September 2026, duduk di All Notes bersebelahan dengan catatan biasa. Dua klip artikel membawa judul tulisan AI dan ringkasan satu baris. Halaman depan Hacker News tidak menerbitkan meta deskripsi dan tidak ada teks yang disorot, jadi tidak ada yang bisa diringkas — ia mempertahankan judulnya sendiri dan tanpa baris ringkasan. Ketika Clip tidak punya bahan, ia memilih diam ketimbang mengarang.
Detail terakhir itulah aturan perancangan yang menopang seluruh fitur ini, dan ia layak dinyatakan sendiri: keluaran AI tidak pernah menggantikan aslinya . URL sumber, metadata milik situs itu sendiri, dan teks apa pun yang Anda berikan semuanya disimpan; ringkasan adalah data turunan yang ditumpuk di atasnya. Kalau ringkasannya salah atau tidak berguna, benda yang benar-benar Anda simpan tetap ada di sana.
Batasnya adalah kuota harian, dan itulah satu-satunya batas
Tidak ada gerbang paket pada Clip. Yang ada hanyalah jumlah.
| Paket | Penyimpanan per hari | Ringkasan AI per hari |
|---|---|---|
| Free | 30 | 10 |
| Plus | 150 | 50 |
| Pro | 500 | 150 |
| Pro+ | 2,000 | 500 |
Nilai bawaan dari backend/config.py (CLIP_SCRAPE_DAILY_QUOTA_*, CLIP_SUMMARY_DAILY_QUOTA_*), dibaca pada 5 September 2026.
Dua kuota, bukan satu, dan keduanya gagal dengan cara yang berbeda secara sengaja. Kehabisan jatah penyimpanan berarti penyimpanan ditolak — server menjawab 403 dengan kode terstruktur clip_scrape_quota_exceeded beserta tanggal penyetelan ulang. Kehabisan kuota ringkasan dan klipnya tetap tersimpan; hanya langkah peringkasan yang dilewati, dan aplikasi mengatakannya persis begitu: "Klip tersimpan. Kuota ringkasan AI hari ini sudah terpakai."
Ketimpangan itu disengaja. Menyimpan sebuah tautan itu murah dan justru itulah yang Anda inginkan; meringkas adalah bagian yang mahal. Kehilangan halaman yang hendak Anda simpan hanya karena sebuah model bahasa terkena pembatasan laju adalah pertukaran yang absurd, jadi kami tidak membuat Anda melakukannya.
Penghitungnya memakai tanggal kalender UTC apa adanya. Pada 00:00 UTC hari Anda disetel ulang — detik yang sama untuk semua orang, bukan jendela 24 jam bergulir yang harus Anda hitung-hitung sendiri.
"Save to Telli.sh" tinggal sejauh satu klik kanan — begitu 1.18 disetujui
Modal di web mengandaikan URL-nya sudah ada di papan klip Anda. Padahal biasanya yang ada justru halamannya, terbuka di depan Anda.
Telli.sh: Every Translator 1.18 menambahkan satu butir menu konteks, Save to Telli.sh , yang didaftarkan untuk konteks page maupun selection pada http://*/* dan https://*/* — artinya semua halaman web, bukan hanya 30-an situs yang diterjemahkan ekstensi ini. Klik kanan di mana saja pada sebuah artikel dan ia menyimpannya. Sorot tiga paragraf lebih dulu dan ketiganya ikut terbawa, hingga 2,000 karakter.
Umpan baliknya menumpang lencana bilah alat yang sudah dimiliki ekstensi: … saat menyimpan, ✓ saat berhasil, ! saat gagal, masing-masing dengan penjelasan di tooltip bilah alat. Pesan kegagalannya spesifik karena galat dari server pun spesifik. 401 berarti tokennya ditolak dan Anda perlu yang baru. 403 berarti salah satu dari dua hal yang sama sekali berbeda, dan ekstensi membedakannya dengan mencari kode *_quota_exceeded di badan respons — kuota habis ("kembalilah besok") versus token tanpa izin klip ("token ini tidak bisa melakukan itu"). Kode status yang sama, saran yang berlawanan.
Versi 1.18 dikirim ke Chrome Web Store pada 5 September 2026 dan sedang ditinjau. Anda belum bisa memasangnya. Setelah disetujui, ia akan tiba sebagai pembaruan otomatis, dan menu konteksnya datang bersamanya.
Kunci yang hanya bisa menulis: tokennya bisa menyimpan klip dan tidak bisa apa-apa lagi
Inilah bagian yang paling kami pedulikan, karena di sinilah integrasi semacam ini biasanya melenceng.
Versi malas dari "menghubungkan ekstensi ke akun Anda" adalah menyuruh Anda menempelkan token sesi Anda ke dalam ekstensi. Token itu membuka segalanya: ia menghapus catatan, mengekspor data Anda, menyentuh penagihan. Anda akan menyerahkan kredensial akun penuh demi sebuah tombol penanda, dan token itu akan mengendap di penyimpanan ekstensi selamanya.
Maka Clip tidak memakai token itu. Telli.sh menerbitkan token API bercakupan terbatas , dimodelkan dari milik Cloudflare: sebuah token membawa daftar kebijakan alih-alih berdiri mewakili diri Anda, dan setiap kebijakan terdiri atas sebuah effect (allow atau deny , dengan deny yang menang), sekumpulan resources , dan sekumpulan grup izin. Saat ini ada persis satu grup, clip_write , yang membentang menjadi izin clip:write dan clip:metadata , serta persis satu bentuk sumber daya, {"user": "self"} — data Anda sendiri, tidak ada yang lain.
Kami menyebutnya kunci yang hanya bisa menulis , karena memang begitulah bentuknya: ia bisa memasukkan sesuatu ke akun Anda dan tidak bisa mengeluarkan apa pun.
Invarian keamanan yang membuat ini nyata cukup satu kalimat di dokumen perancangan: token API tidak pernah melewati jalur autentikasi sesi . Kuki sesi dan JWT akses diselesaikan lewat get_current_user_optional , yang menjangkau setiap endpoint dalam produk. Token API hanya diselesaikan lewat dependensi require_permission(...) , dan kalau izin yang diminta dependensi itu tidak ada di dalam token, jawabannya 403. Rusakkan pemisahan itu dan sebuah token bercakupan terbatas diam-diam kembali menjadi token akun penuh, itulah sebabnya ia dinyatakan sebagai aturan terpenting dalam rancangan ini. Ada efek lanjutan yang menolong: token API adalah untai buram, jadi pembacaan JWT selalu gagal padanya. Kalau suatu saat ada yang bocor ke jalur kode sesi karena keliru, ia akan terautentikasi sebagai bukan siapa-siapa.
API token itu sendiri pun tertutup bagi token. Membuat, mendaftar, dan mencabut token menuntut sesi masuk yang sungguhan — sebuah token tidak bisa mencetak token lain.
Membuat satu memakan waktu sekitar lima belas detik
Buka Pengaturan → Token API. Sebelum Anda punya satu pun, halaman itu jujur tentang apa yang bisa dilakukan benda yang hendak Anda buat.

Halaman token API di /settings/tokens sebelum ada token apa pun, ditangkap pada 5 September 2026. Baris tentang cakupannya duduk di atas formulir, bukan terkubur dalam artikel bantuan: "Sebuah token hanya bisa menyimpan klip. Ia tidak bisa membaca catatan Anda, mengubah akun Anda, atau menjangkau detail penagihan Anda." Satu izin yang ditawarkan, karena satu izin itulah semua yang ada.
Beri nama, centang Simpan klip , buat. Rahasia lengkapnya muncul sekali saja, dalam panel yang menyatakan hal itu dengan huruf merah.

Panel rahasia sekali tampil. Token pada tangkapan layar ini disamarkan, dan akun pemiliknya sudah dihapus. Sebuah token berbentuk tsh_<12-character prefix>_<43-character secret> — 256 bit keacakan base64url. Hanya awalannya yang disimpan sebagai teks biasa, sebagai kunci pencarian; bagian rahasianya disimpan sebagai hash bcrypt dan tidak bisa dipulihkan, baik oleh kami maupun oleh Anda. Tutup panel ini dan ia hilang untuk selamanya.
Setelah itu daftarnya hanya menampilkan awalan, tidak lebih. Itu cukup untuk membedakan dua token dan tidak berguna bagi siapa pun yang mencuri tangkapan layarnya.

Token yang sama setelah panel rahasianya ditutup: awalan, cakupan, waktu pembuatan, waktu pemakaian terakhir, dan Cabut. last_used_at ditulis paling sering satu jam sekali, bukan pada setiap permintaan, jadi ia memberi tahu Anda kira-kira kapan sebuah token terakhir aktif tanpa mengubah setiap klip menjadi satu penulisan basis data tambahan. Mencabut akan menyetel revoked_at — seketika, permanen, dan bukan penghapusan keras, jadi catatan tentang apa yang pernah ada tetap bertahan.
Menghubungkan ekstensi: lima langkah
- Masuk di telli.sh dan buka Pengaturan → Token API (
/settings/tokens). - Isi nama yang nanti Anda kenali kembali — "Browser extension" jadi teks contohnya bukan tanpa alasan — centang Simpan klip , lalu tekan Buat token .
- Tekan Salin token selagi panel sekali-tampil masih terbuka. Tidak ada kesempatan kedua; kalau hilang, cabut token itu dan buat yang baru.
- Buka halaman pengaturan ekstensi, cari bagian Telli.sh Clip , tempelkan tokennya ke kolom Telli.sh Clip token , lalu tekan Hubungkan .
- Klik kanan halaman web mana pun dan pilih Save to Telli.sh . Lencana bilah alat berkedip
✓dan klipnya sudah ada di All Notes.

Ekstensi setelah langkah 4, ditangkap pada 5 September 2026. Baris statusnya hanya menunjukkan awalan — ekstensi menampilkan persis apa yang ditampilkan daftar token. Teks bantuannya menyatakan model penyimpanannya terus terang: "Token disimpan hanya di perangkat ini, dan penyimpanan klip tetap mati sampai sebuah token ditambahkan." Tanpa token, tanpa klip; butir menunya ada tetapi tidak melakukan apa-apa.
Apa persisnya yang dibaca ekstensi
Klaim privasi itu murah. Berikut perilaku kodenya, satu-satunya versi yang berlaku.
Ketika Anda mengeklik Save to Telli.sh , ekstensi menyuntikkan satu fungsi ke dalam halaman dan membaca delapan bidang: og:title atau twitter:title yang mundur ke document.title ; og:description , twitter:description atau description ; tautan canonical; og:image atau twitter:image ; og:site_name atau application-name ; article:author atau author ; article:published_time ; dan window.getSelection() .
Baca lagi daftar itu untuk melihat apa yang tidak ada. Tidak ada document.body . Tidak ada ekstraksi teks artikel, tidak ada pemrosesan readability, tidak ada penelusuran DOM. Tujuh dari delapan bidang adalah metadata yang memang diterbitkan halaman itu untuk Google dan untuk pratinjau media sosial — data yang ditulis supaya dibaca orang asing. Yang kedelapan adalah teks yang Anda sorot sendiri.
Empat sifat lagi berlaku di dalam kode:
Tidak ada yang dikirim tanpa sebuah klik. Fungsi metadatanya berjalan di dalam penangan menu konteks. Tidak ada alarm latar, tidak ada kait saat halaman dimuat, tidak ada mode "kumpulkan sambil Anda menjelajah".
Tanpa token, sama sekali tidak ada yang terjadi. Penangannya memeriksa token Telli.sh yang tersimpan lebih dulu dan berhenti di situ kalau tidak ada, sambil menampilkan lencana yang menyuruh Anda menghubungkan satu. Pada pemasangan baru, butir menu itu mati suri.
Kuki sesi Anda tidak bisa dipinjam. Ekstensi memegang izin host untuk telli.sh , yang biasanya berarti panggilan fetch -nya otomatis membawa kuki login Anda — dan kuki itu akan mengautentikasi mendahului token, sehingga memberi akses akun penuh alih-alih cakupan khusus-klip yang kami rancang. Maka permintaannya dikirim dengan credentials: 'omit' . Tokennya adalah satu-satunya kredensial yang ikut bermain, dan cakupan yang Anda pilih adalah cakupan yang benar-benar berlaku. Satu opsi kecil itulah yang membuat kunci yang hanya bisa menulis benar-benar hanya bisa menulis.
Di tempat ekstensi tidak punya akses halaman, ia mengirim lebih sedikit, bukan lebih banyak. Penyuntikan skrip butuh akses host, yang hanya dipegang ekstensi untuk situs-situs yang dideklarasikan di manifesnya. Di tempat lain penyuntikannya cukup gagal saja dan klipnya mundur ke URL semata; server lalu mengisi kartunya dari tag meta publik halaman itu. Mode kegagalannya adalah "data lebih sedikit", tidak pernah "minta izin yang lebih luas".
Dan ketika server mengambil sebuah URL, ia mengambilnya seperti pengunjung, bukan seperti perayap. Ia menolak localhost , setiap host .local , dan setiap nama host yang teruraikan ke alamat IP privat, loopback, link-local, multicast, tercadang, atau tak tentu — diuraikan dan diperiksa sungguhan, bukan sekadar dicocokkan polanya, sehingga nama DNS publik yang mengarah ke 10.0.0.1 pun ditolak. Ia mengikuti paling banyak 3 pengalihan dan membaca paling banyak 256 KB HTML. Ia tidak masuk, tidak membawa kuki Anda, dan tidak mencoba apa pun yang tidak bisa diambil oleh pengunjung yang belum masuk. Halaman berbayar dan halaman privat tetap berbayar dan tetap privat — simpanlah teks sorotan Anda sendiri dari sana sebagai gantinya.
Satu catatan pengukuran terakhir, karena tulisan ini kami buka dengan kisah analitik. Klip yang dibuat lewat ekstensi tidak pernah menyentuh aplikasi web, jadi sisi antarmuka tidak bisa melihatnya; server yang melaporkan clip_created untuk klip-klip itu. Peristiwa tersebut membawa aplikasi sumber, jenis sumber, apakah sorotan disertakan, apakah ringkasan dibuat, dan paketnya. Ia tidak membawa URL, tidak membawa judul, dan tidak membawa teks yang Anda sorot — berapa banyak klip yang dibuat dan lewat jalur mana, tidak pernah apa isinya.
Kesimpulannya: aplikasi catatan yang hanya menyimpan apa yang Anda ucapkan baru separuh ingatan
Telli.sh bermula sebagai tempat bagi pekerjaan yang diucapkan — merekam rapat, mentranskripsikannya dalam bahasa yang benar-benar dipakai, menerjemahkannya, meringkasnya, menyimpan keempat lapisannya dalam satu catatan. Itu mencakup apa yang Anda ucapkan .
Itu tidak mencakup apa yang Anda baca , yang justru merupakan sebagian besar dari apa yang Anda ketahui. Tab yang Anda biarkan terbuka tiga hari. Halaman dokumentasi yang sebulan lagi akan Anda butuhkan kembali. Utas komentar yang menyimpan jawaban sebenarnya. Semua itu tinggal di riwayat peramban yang tidak akan pernah Anda telusuri dan bilah penanda yang berhenti Anda buka sejak 2019.
Clip adalah separuh yang lain yang kini tiba: catatan yang sama, pencarian yang sama, folder yang sama, ekspor yang sama — hanya dijangkau lewat klik kanan alih-alih lewat mikrofon. Arahnya adalah satu basis data pribadi tempat kata-kata Anda dan sumber-sumber Anda duduk bersebelahan, dan inilah permukaan pengumpulan pertama yang diarahkan ke web.
Gerbangnya sudah tiada. Sekarang penghitung-penghitung itu punya tempat untuk pergi.
Coba sendiri: masuk, buka Clip di bilah sisi, dan tempelkan URL sesuatu yang sudah lama ingin Anda simpan. Akun gratis mendapat 30 penyimpanan dan 10 ringkasan AI per hari. Ketika ekstensi 1.18 lolos tinjauan Chrome Web Store, hal yang sama akan menjadi satu klik kanan pada halaman apa pun yang sedang Anda baca.
Buka Telli.sh dan simpan klip pertama Anda
Sumber
- Repositori Telli.sh, commit
64852ac, 5 September 2026 — "feat(clip): open Clip to every signed-in user", yang menghapus penguncianis_masterdan lencana Admin preview, sekaligus mencatat bahwaclip_createddanclip_openedtidak pernah menyala di PostHog. - Repositori Telli.sh,
backend/config.py— nilai bawaanCLIP_SCRAPE_DAILY_QUOTA_*danCLIP_SUMMARY_DAILY_QUOTA_*, dibaca 5 September 2026. - Repositori Telli.sh,
docs/SUPERAPP_BASELINE.md— dasar Clip dan aturan keamanannya: tanpa melewati login atau dinding berbayar, tanpa pengerukan massal, peringkasan dibatasi pada teks yang diberikan pengguna dan metadata publik, serta aturan bahwa keluaran AI tidak pernah menggantikan aslinya. - Repositori Telli.sh,
docs/design/API_TOKEN_RBAC_DESIGN.md— rancangan token bercakupan terbatas: struktur kebijakan, formattsh_<prefix>_<secret>, penyimpanan bcrypt, dan invarian bahwa token API tidak pernah diselesaikan lewat jalur autentikasi sesi. - Repositori Telli.sh,
extension/extension/background.js—readClipMetadataFromPage,collectClipMetadatadansaveClip, 5 September 2026: delapan bidang metadata, pemicu hanya-lewat-klik, keluar lebih awal saat tanpa token, dancredentials: 'omit'. - Telli.sh: Every Translator di Chrome Web Store — halaman penyenaraian tempat versi 1.18 dikirimkan; sedang ditinjau per 5 September 2026.
- Halaman produk Telli.sh: Every Translator — situs yang didukung, mode tampilan, penyedia, dan komitmen privasi dalam satu tempat.
- Popup ekstensi selama ini menjawab pertanyaan yang salah. Di versi 1.16, ia menggambar halaman yang sedang Anda buka, 4 September 2026 — rilis ekstensi sebelumnya, untuk melihat halaman pengaturan tempat kolom token Clip berada.