API 키로 대화: ChatGPT(OpenAI)·Claude·Gemini·Grok·Mistral·DeepSeek·Qwen(通义千问)·Kimi·GLM(智谱)·Doubao(豆包)·ERNIE(文心)·MiniMax·Perplexity·Groq·Solar(업스테이지)·OpenRouter·Ollama(내 PC)·OpenAI 호환 서버까지 18종. 최대 4개 AI에 한 번에 물어보고 답을 나란히 비교합니다. 한글·오피스·PDF 문서나 클립보드 내용을 함께 보낼 수 있습니다.
로그인된 AI: ChatGPT·Claude·Gemini·Grok·Copilot·Perplexity·Le Chat·DeepSeek·Qwen·Kimi·豆包·文心一言·Z.ai·CLOVA X·뤼튼 15종의 공식 웹을 로그인이 유지되는 앱 창이나 평소 쓰는 브라우저로 엽니다.
질문과 답은 PC와 AI 회사 사이에서 곧바로 오가며 운영자 서버를 거치지 않습니다. API 키는 Windows 자격 증명 관리자에만 저장됩니다.
TURN 중계 인증정보 발급 제한 (제보: Krishu): 랑데부 서버의 /v1/turn이 인증정보를 제한 없이 발급하던 문제를 고쳤습니다. 이제 접속 IP별 한도(20회, 1시간에 걸쳐 회복)와 서비스 전체 일일 한도 안에서만 발급하며, 판단은 서버 메모리에서만 하고 IP는 저장·기록하지 않습니다. 브라우저는 personaldevicebridge.com(링크 받기 페이지)에서만 요청할 수 있습니다. 중계 트래픽은 종단 간 암호화라 사용자 데이터 노출은 없었습니다.
접속 주소 서명 (자체 후속 점검에서 발견): 랑데부 서버가 Cloudflare에서 온 X-PDB-Client-IP를 그대로 믿어, 다른 사람의 Cloudflare Worker로 IP를 위조하면 모든 IP별 한도를 피할 수 있었습니다. 이제 우리 프록시가 Ed25519 키로 서명한 주소만 인정합니다.
관리자 화면 파일 우회 열람 (2026-09-26 제보): /admin%2fadmin.js처럼 /를 인코딩하면 Cloudflare Access 로그인을 거치지 않고 관리자 화면의 JS·CSS 파일을 볼 수 있었습니다(데이터·비밀값 없음, /api/admin은 계속 보호됨). 이제 인코딩된 /·\가 들어간 주소는 모두 거절(400)하고, 관리자 응답은 캐시하지 않습니다.
Android 앱이 정식(릴리스) 빌드가 되었습니다. 하나의 고정 서명 키로 서명되므로 다음 버전부터는 기존 앱 위에 그대로 업데이트됩니다. 파일 이름은 PersonalDeviceBridge-<버전>-android.apk입니다.
이전 테스트 APK(v0.3.1 이하)를 설치했다면, 서명 키가 바뀌어 이번 한 번만 앱을 지우고 다시 설치해야 합니다.
앱 크기가 약 83MB → 67MB로 줄었습니다.
Windows 무설치 ZIP에 데스크톱 앱이 들어갑니다.…-windows-x64-portable.zip 안의 Personal Device Bridge.exe(코드 서명됨)를 설치 없이 실행하면 됩니다. 명령줄 도구는 …-windows-x64-cli.zip으로 따로 제공합니다.
고친 점
인터넷 없이 페이지를 열면 오프라인 안내 페이지가 제대로 나옵니다.
연락처 이메일이 Cloudflare에 의해 숨김 링크로 바뀌던 문제를 고쳤습니다.
Cloudflare가 몰래 넣던 분석 스크립트가 더 이상 들어가지 않습니다(“분석 도구 없음” 약속 유지).
공동인증서 PC↔휴대폰 이동, 사진 자동 백업, PC에서 문자 답장, 휴대폰을 웹캠으로, TURN 중계(어디서든 연결), 휴대폰으로 PC 잠금·자리 비움 자동 잠금, 화면 가장자리 넘기기(마우스·키보드 공유), 폴더 양방향 동기화(30일 이전 버전 보관), 통합 검색(HWP·HWPX·Office 본문, 한글 검색), 브라우저 확장(Chrome·Edge), 문서 스캐너(한국어 OCR), HWP 인쇄·미리보기, 대용량 링크(앱 없는 사람에게), 팀·가족 관리(서명된 정책), 기업 보안 정책·감사 로그, 개발자 SDK(TypeScript·Python), 공유기 없이 연결(휴대폰 핫스팟), 내 기기 찾기(무음이어도 벨), 클립보드 기록·스니펫, 공개 보안 정책·재현 가능한 빌드.
단축키 전달: 화면 넘기기·원격 입력에서 Ctrl·Alt·Shift·Win 조합과 F1–F12가 상대 PC로 전달됩니다.
TURN 중계 가동: 방화벽·공유기 때문에 직접 연결이 안 될 때도 중계 서버를 통해 연결됩니다(종단 간 암호화 유지).
고친 점
새 버전 기기가 보낸 모르는 입력 종류 때문에 세션이 끊기지 않습니다.
폴더 동기화가 앱 자체 데이터 폴더와 겹치는 폴더를 거부합니다(Windows 대소문자 문제).
SmartPrint (pdb-print): list a device's printers with a recommendation and print PDF/PNG/JPEG/text there (CUPS lp; Windows via SumatraPDF or shell print paths, with an honest applied/ignored report). CLI pdb printers / pdb print, desktop card, Android "Print on PC". Real-CUPS end-to-end test in CI.
Internet P2P (ADR-0006): WebRTC data-channel transport (conformance-tested) and the rendezvous service (services/rendezvous, Railway + PostgreSQL) with per-pair, end-to-end encrypted mailboxes. PDB_RENDEZVOUS=off keeps everything on the LAN.
Extended capabilities (pdb-extended), all default-deny: read-only file browser for shared folders, notification mirroring with per-app privacy on the phone, phone as touchpad/keyboard for the PC, and phone camera viewing — remote input and camera require consent every session and show an indicator with Stop. CLI pdb share / browse / fetch / notify; desktop and Android UIs.