product update11분 분량

Clip은 웹 페이지를 요약까지 끝난 노트로 만들어 준다. 오늘부터 모든 Telli.sh 계정에 열린다.

Clip은 웹 페이지를 저장만 하는 게 아니라, AI가 쓴 제목과 한 줄 요약이 붙은 Telli.sh 노트로 만들어 줍니다. 이 기능은 관리자 플래그 뒤에 가려진 채 출시됐고, 그래서 두 개의 분석 카운터는 단 한 번도 올라가지 않았습니다. 이제 그 관문이 사라졌습니다. 무료 계정도 하루 저장 30건과 AI 요약 10건을 쓰고, 브라우저 확장 프로그램 1.18 버전은 클립 저장 외에는 아무것도 할 수 없는 토큰으로 인증하는 우클릭 Save to Telli.sh를 더합니다.

K
Ken Jo
#clip#web-clipper#browser-extension#product-update#api-tokens#privacy

어떤 테스트 스위트도 잡아내지 못하는 종류의 버그가 있습니다. 기능은 멀쩡히 작동하는데, 아무도 거기에 닿을 수 없는 것입니다.

Clip은 몇 주 전에 이미 완성돼 있었습니다. 모달은 POST /v1/clip 으로 저장하고, 페이지의 공개 메타 태그로 링크 카드를 채우고, 한 줄짜리 AI 요약을 만들고, 노트 캐시를 무효화하며, "저장은 됐지만 요약 할당량이 떨어졌습니다"와 "이건 실패했습니다"를 이미 구분할 줄 압니다. 전부, 작동합니다. 그런데 PostHog에서, 이 기능이 보고하는 두 이벤트 — clip_openedclip_created — 는 한 번도 발생한 적이 없었습니다. 드물었던 게 아닙니다. 0입니다.

이유는 프론트엔드 코드 세 줄이었습니다. 사이드바 버튼과 모달이 둘 다 user.is_master 로 가려져 있었고, 버튼에는 호박색 Admin preview 배지가 달려 있었습니다. 백엔드는 is_master 로 아무것도 가리지 않습니다. 백엔드가 강제하는 것은 플랜별 하루 할당량이고, 제한이 있어야 할 자리는 그쪽이 맞습니다. 이 기능은 안 쓰인 게 아니었습니다. 닿을 수 없었던 것입니다.

2026년 9월 5일 커밋 64852ac 부터, 조건은 "로그인했는가" 하나뿐입니다. 이 글은 제품 공지이므로 의도적으로 제품 중심입니다. Clip이 무엇을 하는지, 당신에게서 무엇을 얼마나 가져가는지, 브라우저 확장 프로그램이 무엇을 보내는지, 그리고 무엇을 의도적으로 절대 읽지 않는지를 적었습니다.

TL;DR

  • Clip은 로그인한 모든 계정에 열렸습니다. 사이드바 버튼은 2026년 9월 5일에 관리자 배지를 떼었습니다.
  • 제한은 관문이 아니라 하루 할당량입니다. 무료는 UTC 하루 기준 저장 30건과 AI 요약 10건, plus·pro·pro+는 거기서 올라갑니다. 정확한 숫자는 아래 표에 있습니다.
  • 요약 할당량이 떨어져도 클립은 사라지지 않습니다. 링크와 메타데이터는 그대로 저장되고, 요약 단계만 건너뛰며, 앱이 그렇게 말해 줍니다.
  • 브라우저 확장 프로그램이 지금 보고 있는 페이지를 저장합니다. "Save to Telli.sh"는 http(s) 페이지라면 어디서든 우클릭 메뉴에 있고, 선택해 둔 텍스트가 있으면 함께 갑니다. 1.18 버전은 이 글이 나가는 시점에 Chrome 웹 스토어 심사 중이라, 아직 설치할 수 없습니다.
  • 확장 프로그램은 클립 저장만 할 수 있는 토큰으로 인증합니다. 그 토큰은 노트를 읽을 수도, 계정을 바꿀 수도, 결제에 닿을 수도, 다른 토큰을 발급할 수도 없습니다. 비밀 값은 딱 한 번만 보이고, 언제든 폐기할 수 있습니다.
  • 확장 프로그램은 페이지가 이미 당신에게 보여 주는 것을 읽습니다. 제목, canonical 링크, 공개 og:/twitter: 메타, 그리고 당신이 선택한 텍스트. 본문은 아닙니다. 당신의 클릭 없이는 아무것도 브라우저를 떠나지 않고, 토큰이 저장돼 있지 않으면 메뉴 항목은 아무 일도 하지 않습니다.

URL 하나를 넣으면 Clip은 이렇게 움직인다

사이드바에서 Clip을 열고 URL을 붙여 넣으면, 모달이 POST /v1/clip/metadata 를 호출합니다. 이 엔드포인트는 페이지의 HTML을 받아 와 공개 메타 태그만 읽습니다. og:title, og:description, og:image, og:site_name, article:author, article:published_time, 그리고 <link rel="canonical">. 제목, 설명, 사이트, 이미지가 채워진 채로 돌아옵니다. 가져오기에 실패하면 모달이 그렇게 알려 주고, 사이트 이름 자리에 호스트명을 넣은 채로 링크만이라도 저장할 수 있게 해 줍니다.

그다음 저장하면, Clip은 노트가 됩니다. 첨부 파일도 아니고, 별도 목록에 쌓이는 북마크도 아닙니다. note_type="clip" 인 노트가 되어 다른 모든 노트와 나란히 전체 노트에 앉고, 같은 기계장치로 검색되고, 폴더에 들어가고, 공유되고, 내보내집니다. 원본 URL과 링크 카드 전체는 노트의 컨텍스트에 보존되므로, 출처가 요약 뒤로 사라지는 일은 없습니다.

요약할 거리가 있다면 — 설명이든, 선택한 텍스트든, 붙여 넣은 메모든 — 일반 요약이 돌면서 한 줄 요약을 노트에 적습니다. 목록에서 제목 아래 보이는 그 줄입니다.

Telli.sh 전체 노트 목록에 놓인 세 개의 웹 페이지 클립: 요약 줄이 없는 Hacker News, 그리고 각각 아래에 한 줄 요약이 붙은 Fetch API Overview and Practical Considerations와 AI 기반 개발 플랫폼 GitHub

2026년 9월 5일, 실제 운영 계정에 저장된 세 개의 클립이 평범한 노트들 옆 전체 노트에 앉아 있습니다. 기사 클립 두 개에는 AI가 쓴 제목과 한 줄 요약이 붙어 있습니다. Hacker News 첫 화면은 description 메타를 발행하지 않고 선택한 텍스트도 없었으므로, 요약할 것이 아예 없었습니다. 그래서 자기 제목을 그대로 유지했고 요약 줄은 없습니다. Clip은 다룰 재료가 없으면, 지어내는 대신 아무 말도 하지 않습니다.

그 마지막 사실이 이 기능 전체를 떠받치는 설계 규칙이고, 따로 적어 둘 값어치가 있습니다. AI가 만들어 낸 것은 원본을 대체하지 않습니다. 원본 URL, 사이트 자신의 메타데이터, 당신이 넣은 텍스트는 그대로 남습니다. 요약은 그 위에 얹힌 파생 데이터입니다. 요약이 틀렸거나 쓸모없더라도, 당신이 실제로 저장한 것은 그 자리에 그대로 있습니다.

제한은 하루 할당량이고, 그것이 유일한 제한이다

Clip에는 플랜 관문이 없습니다. 양이 있을 뿐입니다.

플랜하루 저장 수하루 AI 요약 수
Free3010
Plus15050
Pro500150
Pro+2,000500

backend/config.py 의 기본값(CLIP_SCRAPE_DAILY_QUOTA_*, CLIP_SUMMARY_DAILY_QUOTA_*), 2026년 9월 5일 확인.

할당량은 하나가 아니라 둘이고, 일부러 서로 다르게 실패합니다. 저장 할당량이 떨어지면 저장이 거부됩니다. 서버가 구조화된 clip_scrape_quota_exceeded 코드와 초기화 날짜를 담아 403으로 답하죠. 요약 할당량이 떨어지면 클립은 그대로 저장되고, 요약 단계만 건너뛰며, 앱이 정확히 그렇게 말합니다. "클립을 저장했습니다. 오늘의 AI 요약 할당량을 모두 사용했습니다."

이 비대칭은 의도적입니다. 링크를 저장하는 일은 싸고, 애초에 당신이 원했던 것도 그것입니다. 비싼 쪽은 요약이죠. 언어 모델이 속도 제한에 걸렸다는 이유로 간직하려던 페이지를 잃는 건 터무니없는 거래이고, 저희는 그런 거래를 만들지 않습니다.

카운터는 평범한 UTC 달력 날짜입니다. 00:00 UTC에 당신의 하루가 초기화됩니다. 모두에게 같은 순간이고, 머릿속으로 계산해야 하는 24시간짜리 이동 창이 아닙니다.

"Save to Telli.sh"는 우클릭 한 번 거리에 있다 — 1.18이 승인되고 나면

웹 모달은 URL이 클립보드에 있다고 가정합니다. 하지만 대개는 그 페이지를 그냥 열어 두고 있죠.

Telli.sh: Every Translator 1.18은 컨텍스트 메뉴 항목 Save to Telli.sh 를 추가합니다. http://*/*https://*/* 에서 pageselection 두 컨텍스트에 모두 등록되므로, 확장 프로그램이 번역하는 30여 개 사이트뿐 아니라 어떤 웹 페이지에서든 뜹니다. 기사 아무 데서나 우클릭하면 저장됩니다. 문단 세 개를 먼저 선택해 두면 그것도 최대 2,000자까지 함께 갑니다.

피드백은 확장 프로그램이 이미 가지고 있는 툴바 배지를 탑니다. 저장 중에는 , 성공하면 , 실패하면 !, 각각의 설명은 툴바 툴팁에 붙습니다. 실패 메시지가 구체적인 이유는 서버의 오류가 구체적이기 때문입니다. 401은 토큰이 거부됐다는 뜻이고, 새 토큰이 필요합니다. 403은 서로 다른 두 가지를 뜻하는데, 확장 프로그램은 응답 본문에서 *_quota_exceeded 코드를 찾아 둘을 구분합니다. 할당량 소진("내일 다시 오세요")이냐, 클립 권한이 없는 토큰("이 토큰으로는 그걸 할 수 없습니다")이냐. 같은 상태 코드, 정반대의 조언입니다.

1.18 버전은 2026년 9월 5일 기준 Chrome 웹 스토어에 제출되어 심사 중입니다. 아직 설치할 수 없습니다. 승인되면 자동 업데이트로 도착하고, 컨텍스트 메뉴도 함께 나타납니다.

쓰기 전용 키: 이 토큰은 클립을 저장할 수 있고, 그 외에는 아무것도 못 한다

저희가 가장 신경 쓴 부분이 여기입니다. 이런 종류의 연동이 보통 틀어지는 지점이 바로 여기니까요.

"확장 프로그램을 계정에 연결한다"의 게으른 버전은 세션 토큰을 확장 프로그램에 붙여 넣게 하는 것입니다. 그 토큰은 모든 것을 엽니다. 노트를 지우고, 데이터를 내보내고, 결제에 손댑니다. 북마크 버튼 하나와 맞바꿔 계정 자격 증명 전부를 넘기는 셈이고, 그게 확장 프로그램 저장소에 영원히 앉아 있게 되죠.

그래서 Clip은 그 토큰을 쓰지 않습니다. Telli.sh는 Cloudflare의 방식을 본뜬 범위가 정해진 API 토큰 을 발급합니다. 토큰은 당신을 대신하는 대신 정책 목록을 지니고, 각 정책은 effect(allow 또는 deny, 충돌하면 deny 승), resources 집합, 권한 그룹 집합으로 이루어집니다. 오늘 존재하는 그룹은 정확히 하나, clip_write 이고 clip:writeclip:metadata 권한으로 펼쳐집니다. 리소스 모양도 정확히 하나, {"user": "self"} — 당신 자신의 데이터, 그 외에는 없습니다.

저희는 이것을 쓰기 전용 키 라고 부릅니다. 생긴 모양이 정확히 그렇기 때문입니다. 계정 안으로 무언가를 넣을 수는 있고, 밖으로 꺼내 오는 것은 하나도 없습니다.

이걸 실제로 성립시키는 보안 불변식은 설계 문서의 한 문장입니다. API 토큰은 세션 인증 경로를 절대 통과하지 않는다. 세션 쿠키와 액세스 JWT는 get_current_user_optional 을 거쳐 해석되고, 그 경로는 제품의 모든 엔드포인트에 닿습니다. API 토큰은 오직 require_permission(...) 의존성을 통해서만 해석되며, 그 의존성이 요구하는 권한이 토큰에 없으면 답은 403입니다. 이 분리가 깨지면 범위가 정해진 토큰이 조용히 다시 전체 계정 토큰이 되고, 그래서 설계에서 가장 중요한 규칙으로 못 박혀 있습니다. 도움이 되는 이차 효과도 하나 있습니다. API 토큰은 불투명한 문자열이라 JWT 디코딩이 언제나 실패합니다. 실수로 세션 코드 경로에 흘러들어 가더라도, 아무도 아닌 사람으로 인증될 뿐입니다.

토큰 API 자체는 토큰에 대해 닫혀 있습니다. 토큰을 만들고, 나열하고, 폐기하려면 진짜 로그인 세션이 필요합니다. 토큰이 다른 토큰을 발급할 수는 없습니다.

하나 만드는 데 15초쯤 걸린다

설정 → API 토큰으로 갑니다. 아직 토큰이 하나도 없을 때, 이 페이지는 당신이 곧 만들 물건이 무엇을 할 수 있는지 솔직하게 말합니다.

토큰이 아직 하나도 없는 Telli.sh API 토큰 설정 페이지: 토큰 이름 입력란과 Save clips 권한 체크박스 하나가 있는 생성 폼, 그리고 No tokens yet이라고 적힌 빈 상태

토큰이 하나도 없는 상태의 /settings/tokens API 토큰 페이지, 2026년 9월 5일 촬영. 범위를 설명하는 문장은 도움말 문서에 묻혀 있지 않고 폼 위에 놓여 있습니다. "토큰은 클립 저장만 할 수 있습니다. 노트를 읽거나, 계정을 바꾸거나, 결제 정보에 닿을 수 없습니다." 제안되는 권한이 하나뿐인 이유는, 존재하는 권한이 하나뿐이기 때문입니다.

이름을 붙이고, Save clips 에 체크하고, 만듭니다. 전체 비밀 값이 딱 한 번 나타나고, 그 패널이 빨간 글씨로 그렇다고 알려 줍니다.

지금 토큰을 복사하라고 적힌 일회성 토큰 패널: 토큰이 표시되는 것은 이번 한 번뿐이라는 경고, 일부가 가려진 tsh_ 토큰, 그리고 Copy token과 I saved it 버튼

일회성 비밀 값 패널. 이 스크린샷의 토큰은 가려져 있고, 그 토큰이 속했던 계정은 삭제됐습니다. 토큰의 형태는 tsh_<12-character prefix>_<43-character secret> 이며, 256비트 base64url 난수입니다. 평문으로 저장되는 것은 조회 키로 쓰이는 접두사뿐이고, 비밀 값은 bcrypt 해시로 저장되어 저희도 당신도 되찾을 수 없습니다. 이 패널을 닫으면 영영 사라집니다.

그 뒤로 목록에는 접두사만 남습니다. 토큰 둘을 구분하기에는 충분하고, 스크린샷을 훔쳐 간 사람에게는 쓸모가 없습니다.

My browser extension이라는 이름의 토큰 하나가 Active 배지, tsh_ 접두사, Save clips 범위, 생성 시각, Last used: Never used, 그리고 빨간 Revoke 동작과 함께 표시된 토큰 목록

비밀 값 패널을 닫은 뒤의 같은 토큰. 접두사, 범위, 생성 시각, 마지막 사용 시각, 그리고 폐기. last_used_at 은 요청마다가 아니라 길어야 한 시간에 한 번 기록되므로, 클립 하나하나를 추가 데이터베이스 쓰기로 바꾸지 않으면서도 토큰이 마지막으로 언제쯤 활동했는지는 알려 줍니다. 폐기하면 revoked_at 이 기록됩니다. 즉시, 영구적이며, 하드 삭제가 아니라서 무엇이 존재했는지에 대한 기록은 남습니다.

확장 프로그램 연결하기: 다섯 단계

  1. telli.sh에 로그인하고 설정 → API 토큰 (/settings/tokens)을 엽니다.
  2. 나중에 알아볼 수 있는 이름을 넣고 — "Browser extension"이 자리 표시자로 들어 있는 데는 이유가 있습니다 — Save clips 에 체크한 뒤 Create token 을 누릅니다.
  3. 일회성 패널이 열려 있는 동안 Copy token 을 누릅니다. 두 번째 기회는 없습니다. 잃어버렸다면 그 토큰을 폐기하고 새로 만드세요.
  4. 확장 프로그램 설정 페이지를 열고 Telli.sh Clip 섹션을 찾아, Telli.sh Clip token 에 토큰을 붙여 넣고 Connect 를 누릅니다.
  5. 아무 웹 페이지에서나 우클릭해 Save to Telli.sh 를 고릅니다. 툴바 배지에 가 번쩍이고, 클립은 전체 노트에 들어와 있습니다.

확장 프로그램 설정의 Telli.sh Clip 섹션: Clip 토큰 입력란, Connect와 Disconnect 버튼, Connected as tsh_0wjkFr24mTcX 상태, 그리고 토큰을 어디서 받는지 안내하는 링크

4단계를 마친 뒤의 확장 프로그램, 2026년 9월 5일 촬영. 상태 줄에는 접두사만 보입니다. 확장 프로그램은 토큰 목록이 보여 주는 것을 그대로 보여 줍니다. 도움말 문구는 저장 방식을 있는 그대로 말합니다. "이 기기에만 저장되며, 토큰을 넣기 전까지 클립 저장은 꺼져 있습니다." 토큰이 없으면 클리핑도 없습니다. 메뉴 항목은 존재하지만 아무 일도 하지 않습니다.

확장 프로그램이 읽는 것, 정확히

프라이버시에 관한 주장은 값이 쌉니다. 여기 코드의 실제 동작을 적습니다. 값어치가 있는 건 그 버전뿐이니까요.

Save to Telli.sh 를 누르면 확장 프로그램은 페이지에 함수 하나를 주입하고 여덟 개 필드를 읽습니다. og:title 또는 twitter:title, 없으면 document.title. og:description, twitter:description 또는 description. canonical 링크. og:image 또는 twitter:image. og:site_name 또는 application-name. article:author 또는 author. article:published_time. 그리고 window.getSelection().

이 목록을 다시 보되, 이번엔 빠진 것을 보세요. document.body 가 없습니다. 본문 추출도, readability 처리도, DOM 순회도 없습니다. 여덟 중 일곱은 페이지가 구글과 소셜 미디어 미리보기를 위해 발행하는 메타데이터입니다. 낯선 이가 읽으라고 쓰인 데이터죠. 여덟 번째는 당신이 직접 하이라이트한 텍스트입니다.

코드에서 성립하는 성질이 네 가지 더 있습니다.

클릭 없이는 아무것도 전송되지 않습니다. 메타데이터 함수는 컨텍스트 메뉴 핸들러 안에서 실행됩니다. 백그라운드 알람도, 페이지 로드 훅도, "탐색하는 동안 수집" 모드도 없습니다.

토큰이 없으면 아무 일도 일어나지 않습니다. 핸들러는 저장된 Telli.sh 토큰이 있는지부터 확인하고, 없으면 거기서 멈춰 토큰을 연결하라는 배지를 띄웁니다. 갓 설치한 상태에서 메뉴 항목은 죽어 있습니다.

당신의 세션 쿠키는 빌려 쓸 수 없습니다. 확장 프로그램은 telli.sh 에 대한 호스트 권한을 가지고 있고, 보통 그러면 fetch 호출에 로그인 쿠키가 자동으로 실립니다. 그리고 그 쿠키는 토큰보다 먼저 인증되어, 저희가 설계한 클립 전용 범위 대신 계정 전체 접근을 내주게 됩니다. 그래서 요청은 credentials: 'omit' 으로 보냅니다. 판 위에 올라간 자격 증명은 토큰 하나뿐이고, 당신이 고른 범위가 그대로 적용되는 범위입니다. 쓰기 전용 키를 실제로 쓰기 전용으로 만드는 것이 바로 그 옵션 하나입니다.

페이지 접근 권한이 없는 곳에서는 더 많이가 아니라 더 적게 보냅니다. 스크립트 주입에는 호스트 접근이 필요하고, 확장 프로그램은 매니페스트에 선언된 사이트에 대해서만 그것을 가집니다. 그 밖의 모든 곳에서는 주입이 그냥 실패하고, 클립은 URL 하나만 가지고 넘어갑니다. 그러면 서버가 페이지의 공개 메타 태그로 카드를 채웁니다. 실패 모드는 언제나 "더 적은 데이터"이고, "더 넓은 권한을 요구"가 아닙니다.

그리고 서버가 URL을 가져올 때는 크롤러가 아니라 방문자처럼 가져옵니다. localhost, 모든 .local 호스트, 그리고 사설·루프백·링크로컬·멀티캐스트·예약·미지정 IP 주소로 해석되는 모든 호스트명을 거부합니다. 패턴만 맞춰 보는 게 아니라 실제로 해석해서 확인하므로, 10.0.0.1 을 가리키는 공개 DNS 이름도 함께 거부됩니다. 리다이렉트는 최대 3회까지 따라가고, HTML은 최대 256 KB까지 읽습니다. 로그인하지 않고, 당신의 쿠키를 싣지 않으며, 로그아웃한 방문자가 가져올 수 없는 것은 시도하지 않습니다. 유료 구독 페이지와 비공개 페이지는 그대로 유료이고 비공개로 남습니다. 그런 곳에서는 대신 당신이 직접 선택한 텍스트를 저장하세요.

측정에 관한 마지막 메모 하나. 이 글을 분석 이야기로 열었으니 짚고 넘어가겠습니다. 확장 프로그램이 만든 클립은 웹 앱을 전혀 거치지 않으므로 프론트엔드가 볼 수 없습니다. 그래서 그런 클립은 서버가 clip_created 로 보고합니다. 이 이벤트에는 출처 앱, 출처 유형, 선택 텍스트를 함께 보냈는지, 요약이 생성됐는지, 그리고 플랜이 실립니다. URL도, 제목도, 선택한 텍스트도 실리지 않습니다. 클립이 몇 개 만들어졌고 어떤 경로로 만들어졌는지는 알되, 그 안에 무엇이 들어 있었는지는 결코 알지 않습니다.

결론: 말한 것만 담는 노트 앱은 기억의 절반이다

Telli.sh는 말해진 일을 담는 곳으로 시작했습니다. 회의를 녹음하고, 실제로 발화된 언어 그대로 전사하고, 번역하고, 요약하고, 네 겹을 하나의 노트에 담아 두는 것. 여기까지가 당신이 말한 것을 담습니다.

하지만 당신이 읽은 것은 담기지 않습니다. 그리고 당신이 아는 것의 대부분은 읽은 것입니다. 사흘째 닫지 못한 탭. 한 달 뒤에 다시 필요해질 문서 페이지. 진짜 답이 들어 있던 댓글 스레드. 그것들은 영영 검색하지 않을 브라우저 기록과 2019년부터 열지 않은 북마크 바에 살고 있습니다.

Clip은 그 나머지 절반이 도착한 것입니다. 같은 노트, 같은 검색, 같은 폴더, 같은 내보내기 — 마이크 대신 우클릭으로 닿을 뿐입니다. 방향은 당신의 말과 당신의 출처가 나란히 앉는 하나의 개인 데이터베이스이고, 이것이 웹을 향한 첫 번째 수집 표면입니다.

관문은 사라졌습니다. 이제 카운터에도 갈 곳이 생겼습니다.


써 보세요: 로그인해서 사이드바의 Clip을 열고, 계속 간직해야지 하면서 미뤄 두었던 것의 URL을 붙여 넣어 보세요. 무료 계정은 하루에 저장 30건과 AI 요약 10건을 씁니다. 확장 프로그램 1.18이 Chrome 웹 스토어 심사를 통과하면, 같은 일이 이미 읽고 있던 아무 페이지에서의 우클릭 한 번이 됩니다.

Telli.sh를 열고 첫 클립 저장하기

출처

  • Telli.sh 저장소, 커밋 64852ac, 2026년 9월 5일 — "feat(clip): open Clip to every signed-in user". is_master 관문과 Admin preview 배지를 제거했고, clip_createdclip_opened 가 PostHog에서 한 번도 발생하지 않았다는 사실을 기록했습니다.
  • Telli.sh 저장소, backend/config.pyCLIP_SCRAPE_DAILY_QUOTA_*CLIP_SUMMARY_DAILY_QUOTA_* 기본값, 2026년 9월 5일 확인.
  • Telli.sh 저장소, docs/SUPERAPP_BASELINE.md — Clip의 기준선과 안전 규칙. 로그인이나 유료 장벽 우회 금지, 대량 스크래핑 금지, 요약은 사용자가 제공한 텍스트와 공개 메타데이터로 한정, 그리고 AI가 만들어 낸 것이 원본을 대체하지 않는다는 규칙.
  • Telli.sh 저장소, docs/design/API_TOKEN_RBAC_DESIGN.md — 범위가 정해진 토큰 설계. 정책 구조, tsh_<prefix>_<secret> 형식, bcrypt 저장, 그리고 API 토큰이 세션 인증 경로를 통해 해석되지 않는다는 불변식.
  • Telli.sh 저장소, extension/extension/background.jsreadClipMetadataFromPage, collectClipMetadata, saveClip, 2026년 9월 5일. 여덟 개 메타데이터 필드, 클릭으로만 실행되는 트리거, 토큰이 없을 때의 조기 반환, 그리고 credentials: 'omit'.
  • Chrome 웹 스토어의 Telli.sh: Every Translator — 1.18 버전이 제출된 등록 페이지. 2026년 9월 5일 기준 심사 중.
  • Telli.sh: Every Translator 제품 페이지 — 지원 사이트, 표시 방식, 번역 제공자, 개인정보 약속을 한곳에 정리한 페이지.
  • 확장 프로그램 팝업은 엉뚱한 질문에 답하고 있었다. 1.16은 대신 당신이 보고 있는 페이지를 그린다., 2026년 9월 4일 — Clip 토큰 입력란이 놓인 그 설정 페이지에 관한, 직전 확장 프로그램 릴리스 글.

블로그로 돌아가기