[{"data":1,"prerenderedAt":179},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-simple-icons:github":8,"i-simple-icons:x":10,"i-brand:linkedin":12,"i-simple-icons:medium":16,"i-lucide:mail":18,"i-lucide:sun":20,"app:\u002Fapps\u002Fpr-sift":22,"app-more:\u002Fapps\u002Fpr-sift":154,"i-lucide:monitor":169,"i-lucide:calendar":171,"i-lucide:scale":173,"i-lucide:globe":175,"i-lucide:book-open":177},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":13,"width":14,"height":14,"rotate":4,"vFlip":6,"hFlip":6,"body":15},32,448,"\u003Cpath fill=\"currentColor\" d=\"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M4.21 0A4.2 4.2 0 0 0 0 4.21v15.58A4.2 4.2 0 0 0 4.21 24h15.58A4.2 4.2 0 0 0 24 19.79v-1.093a5 5 0 0 1-.422.02c-2.577 0-4.027-2.146-4.09-4.832a8 8 0 0 1 .022-.708c.093-1.186.475-2.241 1.105-3.022a3.9 3.9 0 0 1 1.395-1.1c.468-.237 1.127-.367 1.664-.367h.023q.151 0 .303.01V4.211A4.2 4.2 0 0 0 19.79 0Zm.198 5.583h4.165l3.588 8.435l3.59-8.435h3.864v.146l-.019.004c-.705.16-1.063.397-1.063 1.254h-.003l.003 10.274c.06.676.424.885 1.063 1.03l.02.004v.145h-4.923v-.145l.019-.005c.639-.144.994-.353 1.054-1.03V7.267l-4.745 11.15h-.261L6.15 7.569v9.445c0 .857.358 1.094 1.063 1.253l.02.004v.147H4.405v-.147l.019-.004c.705-.16 1.065-.397 1.065-1.253V6.987c0-.857-.358-1.094-1.064-1.254l-.018-.004zm19.25 3.668c-1.086.023-1.733 1.323-1.813 3.124H24V9.298a1.4 1.4 0 0 0-.342-.047m-1.862 3.632c-.1 1.756.86 3.239 2.204 3.634v-3.634z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"page":23,"app":131},{"id":24,"title":25,"body":26,"description":121,"extension":122,"meta":123,"navigation":124,"path":125,"rawbody":126,"seo":127,"sitemap":128,"stem":129,"__hash__":130},"appPages\u002Fapps\u002Fpr-sift.md","Pr Sift",{"type":27,"value":28,"toc":109},"minimark",[29,34,46,49,53,58,61,72,76,79,87,91,94,102,106],[30,31,33],"h2",{"id":32},"overview","Overview",[35,36,42],"project-shot",{":single":37,"alt":38,"height":39,"src":40,"width":41},"true","A GitHub pull request open in PR Sift: filters by file type and change across the top, a folder tree on the left, a diff with a private note on lines 20 to 22, and a counter that reads 33 left, 6 of 39 done.",2120,"\u002Fapps\u002Fpr-sift\u002Freview.webp",3200,[43,44,45],"p",{},"PR Sift on a pull request with 39 changed files.",[43,47,48],{},"PR Sift turns a long GitHub pull request into a focused review. Open any pull request, press PR Sift at the bottom right, and the files you don't need step aside. It works in Chrome and in Chromium browsers such as Edge, Brave, Arc and Dia. I started it in November 2026, and it is on its way to the Chrome Web Store.",[30,50,52],{"id":51},"what-it-does","What it does",[54,55,57],"h3",{"id":56},"show-only-the-files-you-want","Show only the files you want",[43,59,60],{},"Click a file type or a kind of change to show it. Shift-click to hide it for good.",[62,63,69],"project-video",{"alt":64,"height":65,"poster":66,"src":67,"width":68},"Clicking the file type filters in PR Sift: the list narrows to the chosen files, and a hidden type shows crossed out.",1000,"\u002Fapps\u002Fpr-sift\u002Ffilters.jpg","\u002Fapps\u002Fpr-sift\u002Ffilters.mp4",1600,[43,70,71],{},"Filters by file type and by change.",[54,73,75],{"id":74},"never-read-a-file-twice","Never read a file twice",[43,77,78],{},"Mark files or whole folders as viewed. A new push brings back only the files that changed.",[62,80,84],{"alt":81,"height":65,"poster":82,"src":83,"width":68},"Marking files and whole folders as viewed in the PR Sift folder tree.","\u002Fapps\u002Fpr-sift\u002Freview.jpg","\u002Fapps\u002Fpr-sift\u002Freview.mp4",[43,85,86],{},"Whole folders marked as viewed.",[54,88,90],{"id":89},"private-notes-for-your-ai","Private notes for your AI",[43,92,93],{},"Notes only you see. Copy them for Claude Code, Codex, Cursor or ChatGPT, or post one to GitHub.",[62,95,99],{"alt":96,"height":65,"poster":97,"src":98,"width":68},"Writing a private note on selected lines of a diff in PR Sift, then sending the notes to an AI assistant.","\u002Fapps\u002Fpr-sift\u002Fnotes.jpg","\u002Fapps\u002Fpr-sift\u002Fnotes.mp4",[43,100,101],{},"A private note, ready for an assistant.",[30,103,105],{"id":104},"privacy","Privacy",[43,107,108],{},"Your code stays in your browser. PR Sift talks only to GitHub, keeps filters, viewed marks and notes on your computer, and has no server, account or analytics.",{"title":110,"searchDepth":111,"depth":111,"links":112},"",2,[113,114,120],{"id":32,"depth":111,"text":33},{"id":51,"depth":111,"text":52,"children":115},[116,118,119],{"id":56,"depth":117,"text":57},3,{"id":74,"depth":117,"text":75},{"id":89,"depth":117,"text":90},{"id":104,"depth":111,"text":105},"PR Sift is my free Chrome extension for reviewing large GitHub pull requests: show only the files you care about, mark what you have read and keep private notes for your AI assistant.","md",{},true,"\u002Fapps\u002Fpr-sift","---\ndescription: 'PR Sift is my free Chrome extension for reviewing large GitHub pull requests: show only the files you care about, mark what you have read and keep private notes for your AI assistant.'\n---\n\n## Overview\n\n::project-shot{src=\"\u002Fapps\u002Fpr-sift\u002Freview.webp\" single alt=\"A GitHub pull request open in PR Sift: filters by file type and change across the top, a folder tree on the left, a diff with a private note on lines 20 to 22, and a counter that reads 33 left, 6 of 39 done.\" width=\"3200\" height=\"2120\"}\nPR Sift on a pull request with 39 changed files.\n::\n\nPR Sift turns a long GitHub pull request into a focused review. Open any pull request, press PR Sift at the bottom right, and the files you don't need step aside. It works in Chrome and in Chromium browsers such as Edge, Brave, Arc and Dia. I started it in November 2026, and it is on its way to the Chrome Web Store.\n\n## What it does\n\n### Show only the files you want\n\nClick a file type or a kind of change to show it. Shift-click to hide it for good.\n\n::project-video{src=\"\u002Fapps\u002Fpr-sift\u002Ffilters.mp4\" poster=\"\u002Fapps\u002Fpr-sift\u002Ffilters.jpg\" alt=\"Clicking the file type filters in PR Sift: the list narrows to the chosen files, and a hidden type shows crossed out.\" width=\"1600\" height=\"1000\"}\nFilters by file type and by change.\n::\n\n### Never read a file twice\n\nMark files or whole folders as viewed. A new push brings back only the files that changed.\n\n::project-video{src=\"\u002Fapps\u002Fpr-sift\u002Freview.mp4\" poster=\"\u002Fapps\u002Fpr-sift\u002Freview.jpg\" alt=\"Marking files and whole folders as viewed in the PR Sift folder tree.\" width=\"1600\" height=\"1000\"}\nWhole folders marked as viewed.\n::\n\n### Private notes for your AI\n\nNotes only you see. Copy them for Claude Code, Codex, Cursor or ChatGPT, or post one to GitHub.\n\n::project-video{src=\"\u002Fapps\u002Fpr-sift\u002Fnotes.mp4\" poster=\"\u002Fapps\u002Fpr-sift\u002Fnotes.jpg\" alt=\"Writing a private note on selected lines of a diff in PR Sift, then sending the notes to an AI assistant.\" width=\"1600\" height=\"1000\"}\nA private note, ready for an assistant.\n::\n\n## Privacy\n\nYour code stays in your browser. PR Sift talks only to GitHub, keeps filters, viewed marks and notes on your computer, and has no server, account or analytics.\n",{"description":121},{"loc":125},"apps\u002Fpr-sift","UiqjQ7jbbUxrGEJK9CZn-42qe_qpnIEnquO23gn-QtU",{"id":132,"description":133,"extension":134,"kind":135,"license":136,"links":137,"mark":144,"meta":146,"name":147,"order":117,"platforms":148,"repo":151,"since":152,"stem":129,"__hash__":153},"apps\u002Fapps\u002Fpr-sift.yml","Review large GitHub pull requests without the noise: show only the files you care about, mark what you have read and keep private notes for your AI assistant. Free, with no account and no server.","yml","Chrome extension for pull request reviews","PolyForm Shield",[138,141],{"label":139,"to":140},"Website","https:\u002F\u002Fhaythamasalama.github.io\u002Fpr-sift\u002F",{"label":142,"to":143},"User guide","https:\u002F\u002Fgithub.com\u002Fhaythamasalama\u002Fpr-sift\u002Fblob\u002Fmain\u002Fdocs\u002FUSAGE.md",{"logo":145},"pr-sift",{},"PR Sift",[149,150],"Chrome","Edge, Brave, Arc, Dia","https:\u002F\u002Fgithub.com\u002Fhaythamasalama\u002Fpr-sift","Nov 2026","EC2c7yWp-EBWYDnWzs_O4rKxhqeacBCTXtoZMUYDvS4",[155,162],{"to":156,"name":157,"kind":158,"description":159,"mark":160},"\u002Fapps\u002Feasyshoot","EasyShoot","Screenshot app for macOS","Capture, mark up and frame screenshots on your Mac, with blur for private details and Arabic right-to-left text. No account, and nothing is uploaded. Free on the Mac App Store.",{"logo":161},"easyshoot",{"to":163,"name":164,"kind":165,"description":166,"mark":167},"\u002Fapps\u002Fwhatsapp-business-monitor","WhatsApp Business Monitor","Dashboard for WhatsApp Business","Your WhatsApp templates, how they perform and what they cost, on one screen. It runs on your own machine, so your tokens never leave it.",{"logo":168},"whatsapp-manager",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":170},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M8 21h8m-4-4v4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":172},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 2v3m8-3v3\"\u002F>\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M3 9h18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":174},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 3v18m7-13l3 8a5 5 0 0 1-6 0zV7\"\u002F>\u003Cpath d=\"M3 7h1a17 17 0 0 0 8-2a17 17 0 0 0 8 2h1M5 8l3 8a5 5 0 0 1-6 0zV7m2 14h10\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":176},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 2a14.5 14.5 0 0 0 0 20a14.5 14.5 0 0 0 0-20M2 12h20\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":178},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",1794356860381]