Privacy Policy
LoopWatch — Auto Refresh & Change Alerts
This Privacy Policy explains how the LoopWatch browser extension (“the extension”, “we”) handles information. The short version: there is no server of ours, the developer collects nothing about you, and everything the extension remembers stays on your device. The only outbound requests it makes go to destinations you type in yourself, and only when you turn those features on.
Effective date: 2026-08-11
This document is provided in English and Korean. (이 문서는 영어와 한국어로 제공됩니다.)
English
1. Summary
LoopWatch reloads the web pages you choose on a cadence you set, and tells you when a word appears or disappears, a number crosses a threshold, or the content is edited. It does not collect, store off-device, sell, or transmit any personal or browsing data to the developer. There are no analytics, no tracking, no account, and no backend server operated by us.
2. Data we collect
None. The developer does not collect, request, or receive any personally identifiable information, authentication data, financial data, location, web history, or user activity. There is no sign-up and no login, because there is nothing to sign in to.
3. How information is processed
Local only. To decide whether a page matches your conditions, a content script reads the rendered text or the HTML source of the page — or of the smaller area you selected — inside your own browser. That text is compared against the words or expressions you typed and is not sent anywhere.
Settings on your device. Your cadence, timers and schedules, watch conditions, alert preferences, and per-site overrides are stored in chrome.storage.local on the device where you set them.
Change log and value history. If you leave the change log enabled, the extension saves a short excerpt of the watched text at the moment a detection fires, so it can show you what changed rather than only that something did. If you enable number tracking, the readings are kept as a time series. Both are size-capped, stored only in chrome.storage.local, and you can export them to CSV or delete them at any time from the extension.
Optional settings sync. If you switch sync on, your settings are copied into chrome.storage.sync. That storage belongs to your own Google account and the developer has no access to it. API keys are deliberately excluded from sync and never leave the device where you entered them.
Outbound requests you configure. The extension reaches the internet only for destinations you enter yourself: a webhook URL (Discord, Slack, Telegram, Ntfy, or any URL of your own), an e-mail delivery endpoint or provider you supply a key for, and an AI provider you select for the expression generator. What travels is limited to the alert itself — the matched text, the address of the page, and the time it happened. The developer is not a party to that traffic and cannot see it. If you never enable those features, the extension makes no outbound requests at all.
Nothing is sent to us or to third parties. The package contains no analytics SDK, no telemetry, no crash reporting, and no advertising code.
4. Permissions and why they are used
storage — to keep your settings, change log, and value history on your device. Nothing here is transmitted to the developer.
alarms — to run the cadence, countdown, and schedule timers. An MV3 service worker is shut down when idle, so a durable alarm is what keeps a scheduled reload from being missed.
tabs — to identify the tab to reload, to reload it, and to show you the list of tabs currently being watched. Tab titles and addresses are used for that list and for deciding what to reload; they are not transmitted anywhere.
scripting — to run the in-page parts of the extension: the on-page countdown, keyword detection, highlighting and scrolling to a match, and picking a watch area. No remotely fetched code is executed; everything that runs ships inside the package.
notifications — to tell you when a condition you set is met, or when a captcha or an error page is detected.
power — only when you enable “block sleep while running”, so a long watch is not cut short by the machine suspending. With the option off, this API is never called.
webNavigation — to notice network errors (DNS failure, refused connection) so error-page detection works. Only the error event is observed; browsing history is neither stored nor transmitted.
webRequest — to observe the HTTP status code of the top-level document, so the extension can detect 404/500 pages and honour a server that answers 429 or 503. This is observation only: requests are never blocked, modified, or redirected, and neither request bodies nor response bodies are read.
contextMenus — to offer right-click controls for starting, stopping, and setting the cadence.
offscreen — to play the alert sound. An MV3 service worker has no audio API, so Chrome’s offscreen document is used for that single purpose.
Site access — the extension requests no site access when you install it. When you press “Allow & start” on a page, the browser asks only about that one site (e.g. https://example.com/*), and the extension works only on the sites you have allowed. Scope is limited to http and https, excluding file:// and ftp://. You can review the allowed sites in the extension’s settings and revoke them individually or all at once. Page content is read inside the browser solely to test it against your conditions.
5. Data sharing and sale
We do not share, sell, rent, or transfer any user data to third parties, for the simple reason that we hold none. No data is used for advertising, profiling, creditworthiness, or lending.
6. Data retention and deletion
Settings remain on your device until you change or clear them. Change log entries and value readings are capped — the oldest are dropped automatically once the limit is reached — and you can export or erase them at any time from the extension’s Advanced settings, or per site from the Log panel. Removing the extension deletes everything it stored. If you enabled sync, clearing it in the extension also clears the copy in your own Google account storage. Because nothing is stored off your device by us, there is no server-side data for us to delete.
7. Children’s privacy
The extension is a general-purpose utility, collects no data, and is not directed at children.
8. Responsible use
Please watch pages in a way the site can live with. Very short intervals across many tabs put real load on a server, and some sites prohibit automated reloading in their terms of service — check before you set one. The extension’s adaptive cadence exists for this reason: it slows down on its own while nothing changes and steps back when a server answers 429 or 503 or asks for a wait with Retry-After. Please leave it on unless you have a reason not to.
9. Changes to this policy
If this policy changes, we will update the effective date above and post the revised policy at the hosting URL below.
10. Contact
Developer: swz@kakao.com
Policy URL: https://sites.google.com/view/loopwatch-privacy
한국어 (Korean)
1. 요약
LoopWatch 는 사용자가 지정한 웹페이지를 사용자가 정한 주기로 다시 불러오고, 특정 문구가 나타나거나 사라질 때, 숫자가 정해 둔 기준을 넘을 때, 또는 내용이 바뀌었을 때 알려 줍니다. 어떤 개인정보나 브라우징 데이터도 개발자에게 수집·기기 외 저장·판매·전송하지 않습니다. 분석·추적·계정·개발자가 운영하는 서버가 모두 없습니다.
2. 수집하는 데이터
없음. 개발자는 개인 식별 정보, 인증 정보, 금융 정보, 위치, 웹 기록, 사용자 활동 등 어떤 데이터도 수집·요청·수신하지 않습니다. 로그인할 대상 자체가 없으므로 가입도 로그인도 없습니다.
3. 정보 처리 방식
로컬 전용. 페이지가 사용자의 조건에 맞는지 판단하기 위해, 콘텐츠 스크립트가 페이지(또는 사용자가 지정한 더 좁은 영역)의 화면에 보이는 글자나 HTML 소스를 사용자의 브라우저 안에서 읽습니다. 이 텍스트는 사용자가 입력한 단어·표현식과 대조하는 데에만 쓰이며 어디로도 전송되지 않습니다.
기기 내 설정. 주기, 타이머·일정, 감시 조건, 알림 설정, 사이트별 개별 설정은 설정한 그 기기의 chrome.storage.local 에 저장됩니다.
변경 기록과 값 이력. 변경 기록을 켜 두면, 감지가 발생한 그 순간의 감시 대상 텍스트를 짧게 잘라 저장합니다. “무언가 바뀌었다”가 아니라 무엇이 바뀌었는지 보여주기 위해서입니다. 숫자 추적을 켜면 읽은 값이 시계열로 남습니다. 둘 다 용량 상한이 있고 chrome.storage.local 에만 저장되며, 확장 안에서 언제든 CSV 로 내보내거나 삭제할 수 있습니다.
선택적 설정 동기화. 동기화를 켜면 설정이 chrome.storage.sync 로 복사됩니다. 이 저장소는 사용자 본인의 Google 계정에 속하며 개발자는 접근할 수 없습니다. API 키는 설계상 동기화 대상에서 제외되어 입력한 기기 밖으로 나가지 않습니다.
사용자가 설정한 외부 요청. 이 확장이 인터넷에 접속하는 경우는 사용자가 직접 입력한 곳뿐입니다 — 웹훅 URL(Discord, Slack, Telegram, Ntfy 또는 임의의 URL), 사용자가 지정한 이메일 전달 엔드포인트 또는 본인 키를 넣은 발송 서비스, 표현식 생성기에서 사용자가 고른 AI 제공자입니다. 이때 전송되는 내용은 알림에 필요한 정보 — 일치한 문구, 대상 페이지 주소, 발생 시각 — 로 한정됩니다. 개발자는 이 통신의 당사자가 아니며 내용을 볼 수 없습니다. 해당 기능들을 켜지 않으면 이 확장은 어떠한 외부 요청도 하지 않습니다.
개발자·제3자로 전송 없음. 패키지에는 애널리틱스 SDK, 텔레메트리, 오류 수집, 광고 코드가 들어 있지 않습니다.
4. 권한과 사용 목적
storage — 설정·변경 기록·값 이력을 기기에 저장. 이 중 어떤 것도 개발자에게 전송되지 않습니다.
alarms — 주기·카운트다운·일정 타이머 동작. MV3 서비스 워커는 유휴 시 종료되므로, 예정된 갱신이 누락되지 않게 내구성 있는 알람이 필요합니다.
tabs — 갱신할 탭을 식별하고 다시 불러오며, 현재 감시 중인 탭 목록을 보여주기 위해 사용. 탭 제목·주소는 그 목록 표시와 대상 판별에만 쓰이고 외부로 전송되지 않습니다.
scripting — 페이지 안에서 동작해야 하는 부분(화면 위 카운터, 조건 감지, 일치 지점 하이라이트·이동, 감시 영역 선택)을 위해 사용. 원격에서 받아온 코드는 실행하지 않으며, 실행되는 모든 코드는 패키지에 포함되어 있습니다.
notifications — 설정한 조건이 충족되었을 때, 또는 캡차·오류 페이지가 감지되었을 때 알리기 위해 사용.
power — “절전 진입 차단”을 켠 경우에만, 장시간 감시가 절전 전환으로 끊기지 않도록 호출합니다. 옵션이 꺼져 있으면 이 API 를 전혀 사용하지 않습니다.
webNavigation — 네트워크 오류(DNS 실패, 연결 거부)를 확인해 오류 페이지 감지를 동작시키기 위해 사용. 오류 이벤트만 관찰하며 탐색 기록을 저장·전송하지 않습니다.
webRequest — 최상위 문서의 HTTP 응답 코드를 관찰해 404·500 을 감지하고, 서버가 429·503 으로 응답하면 물러서기 위해 사용. 관찰 전용이며 요청을 차단·변조·리디렉션하지 않고 요청·응답 본문도 읽지 않습니다.
contextMenus — 우클릭으로 시작·중지·주기 선택을 제공하기 위해 사용.
offscreen — 알림음 재생. MV3 서비스 워커에는 오디오 API 가 없어 Chrome 의 오프스크린 문서를 이 용도로만 사용합니다.
사이트 접근 — 설치할 때는 어떤 사이트에도 접근하지 않습니다. 사용자가 특정 페이지에서 “허용하고 시작”을 누르면 그 사이트 하나에 대해서만 브라우저가 허용을 묻고, 허용한 사이트에서만 동작합니다. 범위는 http·https 로 한정하며 file:// 과 ftp:// 는 제외합니다. 허용한 사이트 목록은 확장 설정 화면에서 확인하고 개별 또는 전체 해제할 수 있습니다. 페이지 내용은 오직 사용자의 조건과 대조하기 위해 브라우저 안에서만 읽습니다.
5. 데이터 공유 및 판매
어떤 사용자 데이터도 제3자에게 공유·판매·대여·이전하지 않습니다. 애초에 개발자가 보유하는 데이터가 없기 때문입니다. 광고, 프로파일링, 신용도 평가, 대출 목적으로 데이터를 사용하지 않습니다.
6. 데이터 보관 및 삭제
설정은 사용자가 바꾸거나 지우기 전까지 기기에 남습니다. 변경 기록과 값 이력은 용량 상한이 있어 한도를 넘으면 오래된 것부터 자동으로 삭제되며, 확장의 “고급” 설정에서 전체를, 기록 화면에서 사이트별로 언제든 내보내거나 지울 수 있습니다. 확장을 삭제하면 저장된 모든 것이 함께 지워집니다. 동기화를 켰던 경우 확장에서 동기화를 정리하면 본인 Google 계정 저장소의 사본도 정리됩니다. 개발자 쪽에 저장되는 데이터가 없으므로 서버 측에서 삭제할 데이터도 없습니다.
7. 아동 개인정보
본 확장은 범용 유틸리티로서 어떤 데이터도 수집하지 않으며 아동을 대상으로 하지 않습니다.
8. 올바른 사용
대상 사이트가 감당할 수 있는 방식으로 사용해 주세요. 아주 짧은 주기를 여러 탭에 걸어 두면 서버에 실제 부하가 되고, 일부 사이트는 이용약관에서 자동 재요청을 금지합니다. 설정 전에 확인하시기 바랍니다. 이 확장의 적응형 주기는 바로 그 때문에 있습니다 — 변화가 없으면 스스로 느려지고, 서버가 429·503 으로 응답하거나 Retry-After 로 대기를 요청하면 그만큼 물러섭니다. 특별한 이유가 없다면 켜 두시길 권합니다.
9. 방침 변경
방침이 변경되면 위 시행일을 갱신하고 아래 호스팅 URL 에 개정된 방침을 게시합니다.
10. 연락처
개발자: swz@kakao.com
방침 URL: https://sites.google.com/view/loopwatch-privacy