[{"data":1,"prerenderedAt":274},["ShallowReactive",2],{"project-46799402":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":69,"maker_in_thread":152,"shape":157,"grid":162,"attempts":235,"same_week":236,"maker_shows":202,"maker_hidden":266,"reader_version":267,"card":268},"46799402","auth-auth","I'm building an AI-proof writing tool. How would you defeat it?","title","Show HN: I'm building an AI-proof writing tool. How would you defeat it?","https:\u002F\u002Fauth-auth.vercel.app\u002F","auth-auth.vercel.app","callmeed",1769624296,2026,24,30,1827,4366,42,"shown","productivity","writing tool","web_app",[24,25,26,27],"ai detection","keystroke telemetry","authenticity score","human writing verification","roasted",-0.803,{"positive":31,"neutral":32,"mixed":31,"critical":33},0,2,20,22,{"performance":36,"idea":38,"design":40},{"positive":31,"critical":37},12,{"positive":31,"critical":39},7,{"positive":31,"critical":41},1,[41,31,43,41,41,31,41,41,31,41,41,41,41,41,41,31,31,41,41,31,41,31,43,41,41,41,31,41,41,41],3,null,{"problem":46,"audience":57,"pricing":44,"motivation":62,"time_to_build":44,"stack":66,"openness":67,"stage":68,"team_size":67},{"value":47,"source":48,"evidence":49},"Detecting whether written text was typed by a human rather than generated by AI","inferred",[50,54],{"id":51,"by":52,"text":53},"46801735","dpoloncsak",">Pasting and DOM manipulation are disabled to ensure all writing is original. >We track telemetry such as typing speed, pauses, tab changes, and window focus events. People…",{"id":55,"by":11,"text":56},"46816421","School\u002Fstudents were my target user when I created this. But also mostly just a fun toy.",{"value":58,"source":59,"evidence":60},"Students and schools, per the maker","maker",[61],{"id":55,"by":11,"text":56},{"value":63,"source":59,"evidence":64},"Fun toy aimed at school use",[65],{"id":55,"by":11,"text":56},[],"unknown","launched",{"praise":70,"objections":71,"requests":121,"questions":134,"alternatives":139},[],[72,96,107],{"value":73,"source":74,"evidence":75},"Keystroke telemetry is easily defeated with scripts, retyping, or hardware USB keyboards","commenter",[76,80,84,88,92],{"id":77,"by":78,"text":79},"46801833","ephou7","I used this: #!\u002Fusr\u002Fbin\u002Fpython3 import subprocess import time import random with open(\"\u002Ftmp\u002Fx\") as f: t = f.read() for c in t: subprocess.call([ \"xdotool\", \"type\", c ])…",{"id":81,"by":82,"text":83},"46830427","majorchord","Every OS has a similar facility for emulating keystrokes, and then there's the hardware solutions, e.g. raspberry pi that masquerades as a keyboard. It's practically impossible…",{"id":85,"by":86,"text":87},"46801788","yjftsjthsd-h","> I get this is the extreme end, but if this gets popular enough, can't you write like a custom 'keyboard' driver that just takes AI input and 'types' it? Random delay between…",{"id":89,"by":90,"text":91},"46820133","gibybo","I clicked begin and immediately alt tabbed to ChatGPT. I took a screenshot of the prompt and pasted to ChatGPT, with the instruction \"Write a 1 paragraph response as if you were…",{"id":93,"by":94,"text":95},"46805360","jryan49","I pulled up a 2nd browser next to your site. I typed the prompt into Gemini, and manually typed what Gemini said and removed em dashes as I typed. It said it was 100% genuine.",{"value":97,"source":74,"evidence":98},"Statistical timing checks can be spoofed by replaying human-like distributions",[99,103],{"id":100,"by":101,"text":102},"46820749","abetusk","I think your approach is pretty much fundamentally flawed. Put it this way, let's say someone recorded typing in the paragraph that you presented but saved the keystrokes,…",{"id":104,"by":105,"text":106},"46805517","hackingonempty","A paper on this was just submitted. \"We demonstrate that this class of defenses is insecure against two practical attack classes: the copy-type attack, in which a human…",{"value":108,"source":74,"evidence":109},"Tab and window switch penalties are weak or circumventable",[110,114,118],{"id":111,"by":112,"text":113},"46803813","kibibu","No need for a second tab (focus switch is trackable) when you have a phone.",{"id":115,"by":116,"text":117},"46820284","goodmythical","focus switch tracking is irrelevant when one doesn't disqualify and you can put windows side by side",{"id":119,"by":94,"text":120},"46817212","I only switched tab\u002Fwindows once (to input the question). So I'm not sure how severely you'd want to rate that. The webcam doing eye tracking might help if the person isn't good…",[122,128],{"value":123,"source":74,"evidence":124},"Add eye tracking or webcam monitoring",[125],{"id":126,"by":11,"text":127},"46816439","Maybe I need to punish tab\u002Fwindows switches more severely? Or perhaps require webcam and do eye tracking?",{"value":129,"source":74,"evidence":130},"Tell how to detect scripted typing",[131],{"id":132,"by":11,"text":133},"46816403","That's cool, thanks for sharing. Is there a way to detect this approach?",[135],{"value":136,"source":74,"evidence":137},"Is there any real-world use for verifying existing work?",[138],{"id":51,"by":52,"text":53},[140,145],{"value":141,"source":74,"evidence":142},"xdotool and Auto-HotKey for scripted typing",[143,144],{"id":77,"by":78,"text":79},{"id":51,"by":52,"text":53},{"value":146,"source":74,"evidence":147},"Paste-as-human-typing tools like Multilogin",[148],{"id":149,"by":150,"text":151},"46799915","ticulatedspline","- Screencap and OCR the prompt - feed it to an llm to answer - use a tool [1] to emulate human typing cadence. - Use a tool to send mouse events to the browser window. [1]…",{"comments":43,"answered":41,"key":153},[154,155,156],{"id":132,"text":133},{"id":55,"text":56},{"id":126,"text":127},{"commenters":158,"max_depth":159,"maker_replies":43,"first_comment_mins":160,"lifespan_hours":161},23,4,35,53,[163,165,167,171,173,174,177,180,181,184,185,186,189,192,194,195,198,200,204,205,207,208,210,211,213,216,220,224,228,232],[77,31,41,164,78,31],"project\u002Fcritical\u002Fperformance",[132,31,31,166,11,41],"commenter\u002Fneutral\u002Fprivacy",[168,31,43,169,170,31],"46820253","project\u002Fneutral\u002Fperformance","cyode",[100,31,41,172,101,31],"project\u002Fcritical\u002Fidea",[81,31,41,172,82,31],[175,31,31,176,101,31],"46820771","commenter\u002Fneutral\u002Fnone",[178,41,41,164,179,31],"46804307","JoshuaDavid",[89,32,41,164,90,31],[182,32,31,176,183,31],"46821010","nemosaltat",[104,43,41,172,105,31],[149,159,41,172,150,31],[187,159,41,164,188,31],"46801712","forgotpwd16",[190,159,41,172,191,31],"46801916","nine_k",[51,193,41,172,52,31],5,[85,193,41,164,86,31],[196,193,31,197,52,31],"46801822","other\u002Fneutral\u002Fnone",[55,193,31,199,11,41],"maker\u002Fneutral\u002Fidea",[201,202,41,172,203,31],"46802013",6,"stupidgeek314",[111,202,41,164,112,31],[115,202,31,206,116,31],"commenter\u002Fcritical\u002Fperformance",[93,39,41,164,94,31],[126,39,31,209,11,41],"maker\u002Fneutral\u002Fperformance",[119,39,43,169,94,31],[212,39,41,164,116,31],"46820297",[214,39,41,215,116,31],"46820291","project\u002Fcritical\u002Fdesign",[217,218,41,164,219,31],"46826186",8,"PeterStuer",[221,222,31,197,223,31],"46820272",9,"duncangh",[225,226,41,164,227,31],"46821083",10,"mudkipdev",[229,230,41,164,231,31],"46820898",11,"protocolture",[233,37,41,164,234,31],"46831363","kn100",[],[237,242,247,252,256,261],{"id":238,"name":239,"points":240,"category":241},"46721802","isometric.nyc",1325,"ai",{"id":243,"name":244,"points":245,"category":246},"46793693","HN Arcade",352,"consumer_social",{"id":248,"name":249,"points":250,"category":251},"46779522","one-agent-one-browser",324,"dev_tools",{"id":253,"name":254,"points":255,"category":246},"46802254","Moltbook",287,{"id":257,"name":258,"points":259,"category":260},"46731432","Whosthere",278,"infrastructure",{"id":262,"name":263,"points":264,"category":265},"46753301","Bonsplit",245,"languages",false,"v2",{"id":269,"name":5,"line":6,"ai":266,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":270,"top":18,"kw":271,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":272,"url":9,"mix":273,"praise":-1,"objection":73,"sub":21},46799402,-0.8,[24,25,26,27],"103110110111111001101031110111",[31,32,31,33],1793991142162]