← 작업실로 돌아가기
일상 도구

Threadmark

북적이는 WhatsApp 그룹을 내가 챙겨야 할 짧은 목록으로 바꿉니다. 결제, 모임, 마감일을 골라냅니다.

Threadmark는 직접 호스팅합니다. 각자 자신만의 비공개 사본을 운영합니다.

열린 항목, 결제, 모임, 지켜보는 채팅이 보이는 주의 받은편지함

앱 정보

Threadmark는 내가 고른 WhatsApp 그룹과 사람들을 위한 비공개 주의 받은편지함입니다. 새 메시지가 도착하는 대로 읽고, 결제, 모임, 마감일과 지켜보라고 한 모든 것을 골라내 그것만 보여 줍니다. 나머지는 WhatsApp에 그대로 남습니다.

WhatsApp Web처럼 연결된 기기로 접속하며, 설계상 읽기만 합니다. 메시지를 보내지 않고, 채팅을 읽음으로 표시하지 않으며, 나를 온라인으로 표시하지 않고, 지난 기록을 읽지 않습니다. 이 연결은 비공식이므로 WhatsApp이 방식을 바꾸거나 이를 쓰는 계정을 제한할 수 있습니다.

모든 그룹과 사람은 직접 켜기 전까지 꺼져 있습니다. 다른 채팅의 메시지는 확인하거나 저장하기 전에 버려지고, 선택한 채팅이라도 아무것에도 해당하지 않는 메시지는 남기지 않습니다.

갤러리

이 스크린샷의 채팅은 가상으로 만든 것입니다.

작동 원리

  1. WhatsApp을 연결합니다. QR 코드나 페어링 코드로 Threadmark를 기기로 연결합니다.
  2. 채팅을 고릅니다. 지켜볼 그룹과 사람만 켭니다. 이름이나 번호로 찾거나 휴대폰 연락처에서 가져올 수 있습니다.
  3. 분류를 맡깁니다. 내장 탐지기와 내가 만든 문구 규칙이 서버에서 새 메시지를 하나하나 확인합니다. 아무것도 맞지 않고 Jev가 켜져 있으면 AI 서비스가 한 번 더 살펴봅니다.
  4. 중요한 일을 처리합니다. 항목을 완료로 표시하거나, 미루거나, 캘린더에 추가하거나, Threadmark가 틀렸을 때 알려 줄 수 있습니다.

기능

  • 결제와 모임을 로컬에서 찾기: 내장 탐지기가 루마니아어와 영어 메시지를 읽고 금액, 통화, IBAN, 날짜, 시간, 링크를 뽑아냅니다.
  • 나만의 규칙: 문구 규칙은 지정한 단어 중 하나나 전부를 대소문자와 악센트 구분 없이 찾으며, 서버 밖으로 나가지 않습니다. 규칙마다 적용할 채팅을 정하고, 알림 여부를 고르고, 먼저 예문으로 시험해 볼 수 있습니다.
  • 일상 언어로 쓰는 모니터: 신경 써야 할 택배나 예약처럼 지켜볼 내용을 한 문장으로 적고, Jev가 얼마나 확신해야 메시지를 표시할지 정합니다.
  • AI는 보조 수단으로만: 로컬에서 아무것도 맞지 않으면 TypeSafe AI의 선택형 서비스 Jev가 결제, 모임, 알림을 찾고 긴급도를 매깁니다. Jev는 메시지 본문만 받으며, 채팅 이름, 보낸 사람, 전화번호, WhatsApp ID는 받지 않습니다.
  • 마감일과 긴급도: 마감일을 메시지에서 읽어 내고, 항목에 마감 임박과 기한 초과 배지를 붙이며, 긴급한 항목은 맨 위로 올립니다.
  • 결제 경고: 바뀐 계좌 정보, 달라진 금액, 중복 가능성, 비밀번호나 결제를 요구하는 이상한 요청에는 한 번 더 확인하라는 표시가 붙습니다.
  • 첨부 파일도 로컬에서 읽기: 사진, PDF, 음성 메시지는 서버에서 문자 인식과 음성 받아쓰기로 읽은 뒤 바로 삭제할 수 있습니다. 읽지 못한 손글씨 메모는 사진을 확인하라는 알림이 됩니다.
  • 변경과 답장: Threadmark는 계획이 정정되거나 취소된 것을 알아차리고, 내가 답장하면 답장 알림을 닫을 수 있습니다. 두 기능 모두 기본으로 꺼져 있으며 최근 본문을 최대 48시간만 보관합니다.
  • 알림과 하루 요약: 새 항목은 푸시 알림으로, 긴급한 항목은 긴급 제목으로 알려 주며, 원하면 정한 시간에 하루 요약을 보내 줍니다.
  • 짧게 보관: 찾아낸 발췌문은 항목이 아직 열려 있지 않다면 기본적으로 30일 뒤 삭제됩니다.

후드 아래

Threadmark는 두 부분으로 이루어지며, 각각 root 권한 없는 별도의 Podman 컨테이너에서 실행됩니다. 브리지는 Baileys 라이브러리로 WhatsApp 연결을 유지하고, 앱이 받을 때까지 모든 메시지를 대기열에 보관합니다. 앱은 Node.js 24와 내장 SQLite로 실행되며, server-sent events와 Web Push로 브라우저에 실시간 업데이트를 보냅니다. 브리지는 외부로 포트를 열지 않습니다. 접근은 초대로 이루어지고 PWA Invite Console에서 관리하며, 앱은 pwa-kit로 스스로 업데이트됩니다. 메시지는 중립적인 형식으로 앱에 전달되므로 나중에 Telegram이나 이메일 같은 다른 출처를 추가할 수 있습니다. 이 프로젝트는 GPL-3.0 라이선스의 오픈 소스입니다.