Proving a Human Wrote Something with Semoi and Keystroke Tracking

I use AI daily for coding but prefer writing my own words to keep my mind sharp. To address the question of how to prove human authorship, I created Semoi, an Obsidian plugin that cryptographically signs the time and keystrokes used to write a document. This system verifies that a piece was typed by a human over time rather than generated instantly by an LLM, offering a simple, privacy-focused way to distinguish genuine effort from automated output.
When I engage with an AI to produce written words, the outcome is often calibrated to produce a response I didn't decide on.
- alexpotato
> “I didn’t think anyone would care” prevented me from writing, though
A few years ago I started writing Twitter threads [0]. A few weeks ago I passed 200 total threads.
When I started writing them, my thought process was: "Is anyone going to be interested in my stories/ideas??"
Dear HN comment reader, I can 100% assure you of two things:
1. If you write things, at least one person will read them.
2. It is VERY hard to predict what people will find interesting
e.g. some of the threads I thought people would find the least interesting got the most traction and vice versa. The only way to find out is to write it down.
I would also add that just writing, a LOT, helps you become a better thinker and writer. Twitter threads in particular are great as they force you to distill a story down into bite sized chunks.
One additional benefit: you meet amazing people when you write about what you are interested in. Why? Because if someone likes your writing, they would probably like talking to you and you to them.
0 - https://x.com/alexpotato/status/2012723178577985948?s=20
- linehedonist
sounds a bit like Grammarly Authorship https://www.grammarly.com/authorship
"Authorship creates an originality report you can share with your professor, boss, or editor. It also lets you replay your document’s creation from the first word to the last punctuation mark so you can double-check your process."
- ninjagoo
> how do you prove a human wrote something? Forget about the why or the value in it, just: how?
> Semoi is a plugin (currently only available for Obsidian) which tracks the length of time it took for a document to be written up
Trying to mechanistically prove that a human created some content as opposed to ai, in the age of LLMs and style transfer when you can just ask for something to be written in the style of Mark Twain or drawn in a style of van Gogh and get a great output, is a fool's errand.
All solutions to this end are going to be some form of attestation.
Even the proposed approach of tracking keystrokes and timing as a form of mechanical attestation, is going to be short lived because someone will train an AI on a corpus of human keystrokes and get a replication. May not even need an ai for this, a stochastic program could conceivably reproduce this behavior.
- naet
I think we are reaching a point where some kind of solid attestation that things are not AI generated would be very valuable, for all kinds of different media (printed word, photo, video, etc).
I'm not sure how you would actually do any of that attestation, if it's even possible. Text seems especially difficult. Maybe photo/video could be achieved with specialized hardware and cryptographic signing though I don't know much about either so I'm not sure how it would work. Maybe all that attestation would also tie in to some kind of universal personal identifier online, so that bad actors can be tracked or excluded and can't repeatedly spin up new accounts.
It might mean a big reduction in privacy for certain online spaces that opt in to such a system... but the alternative of all trust being eroded and voices drowned out by a sea of bots or generated content seems potentially worse.
- tlhunter
I had a similar idea for take-home tests for software interviews. Run a bash script to commit all changes in a repo every 5 seconds. The candidate then submits a tarball of the git repo.
#!/usr/bin/env bash
while true; do
git add -A
if ! git diff --cached --quiet; then
git commit -m "$(date --iso-8601=seconds)"
fi
sleep 5
done