How we read two cipher letters
A human-led research project, with an AI doing the hands-on work. By Thomas Leeming, with Claude Opus 5.5.
Over two days in October 2026 we read one historical cipher letter and about half of a second. The first is a sheet of numbers sent to a man in Amsterdam, kept in the Swedish National Archives and listed in a database of historical ciphers as unsolved. The second is a passage of drawn signs in a letter from the French ambassador in Lisbon, written in December 1558. We found no published reading of either.
This page is the full account of how we did it: who decided what, what worked, what failed, and what is still uncertain. It is drawn from the lab notebook we kept as we went. Claude drafted it from that notebook. Thomas's review of each notebook entry is recorded in the project's review log.
How we worked together
Thomas led the project. Claude, an AI model made by Anthropic, did the hands-on work under that lead. "We" in this account means the two of us. Where it matters who did a thing, we say so. At most turning points the pattern was the same: Claude laid out the options and recommended one, and Thomas decided.
| Thomas Leeming | Claude Opus 5.5 |
|---|---|
| Set the aim: find a message no one can read, and read it | Surveyed what was out there and put candidates forward |
| Set the working rules: work like scientists, record everything, be open about the AI | Kept the lab notebook and wrote the code |
| Chose the targets, and stopped the first one when it drifted from the aim | Prepared the page images and ran the AI transcribers |
| Decided what could be downloaded and kept, what was sent to whom, and when to publish | Worked out the two keys and ran the tests |
| Did the steps that needed a person: the archive database account and the archive site's human check | Drafted the readings and these pages |
| Pushed the work towards a readable, publishable result, and asked for the key to be firmed up | Recorded its own mistakes and corrected them |
| Reviewed the work and approved it for publication |
Neither of us is a specialist in old handwriting. No palaeographer has checked the readings yet. We say what that means at the end.
The rules we set at the start
Thomas set these on the first day, and they shaped everything after.
- Write everything down. A lab notebook, added to and not rewritten. Mistakes are corrected by a new dated entry.
- Be open about the AI. Every entry says who did what.
- Ask before taking anything. Every download needed Thomas's approval, with the file's name, source and size, until Thomas gave a general approval late on the first day.
- Tell no one until it is done. Nothing was sent or published before Thomas said so.
Claude proposed further rules of method, and we kept to them:
- Transcribe without the answer. The readers who copy signs from the page are not given the key or any text the page is expected to contain.
- Test a key on text it has not seen.
- Let code do the counting, and make every count show what it counted.
- Report failures with the same care as successes.
A false start: Linear A
Thomas's first brief was "an unsolved cryptic message, something mankind has lost the ability to comprehend". Claude surveyed twelve candidates, checked six, and recommended Linear A, the undeciphered script of Minoan Crete. Thomas chose it.
A literature review then showed how crowded and how hard that field is. At least seven AI-assisted Linear A projects had been published in the previous three months. Claude narrowed the plan, step by step, until it had become an audit of the numbers on the clay tablets against the printed edition. Each step was put to Thomas and approved. What Claude did not do was ask whether the target itself should change. It was careful work with a written protocol, and it was no longer a decipherment.
Thomas read the protocol and said so:
"I feel like we aren't solving the cryptic message by doing this? I wanted something like the things in the news recently where people have deciphered enigma codes, or messages that no one understood before."
Thomas was right, and stopped it. This was the decisive call of the project. We adopted a rule from it: if the stated goal cannot be reached, ask whether to change the target, and do not quietly shrink the goal.
Finding messages that could be read
Claude sent out four scouts: unread cipher letters in archives, unbroken wartime ciphers, the famous unsolved ciphers, and what had been read recently. Five candidates were then checked by separate agents told not to trust the scouts.
What they reported changed our picture of the field. The famous ciphers are mostly dead ends. By our scouts' account, one researcher, D. Bourdeau, working with an AI, had worked through about 285 archive cipher targets in the previous weeks, and the well-known lists were close to exhausted. What remained fell into three groups: codes with too little text, items locked away, and items where the obstacle was the transcription and not the cipher. The third group is where the real targets were.
Claude showed Thomas three kinds of target: a letter in numbers to Amsterdam that looked nearly ready to read, the Lisbon letters of 1558 as a harder job with good odds, and a wartime cipher as a long shot. Claude recommended the Amsterdam letter first and then Lisbon. Thomas decided on that order.
The Amsterdam letter
The obstacle was a single digit
The letter is 35 lines of numbers. Bourdeau had transcribed it and noticed that the numbers behaved like one language, but no language came out. One of Claude's scouts found why. This writer's 8 has a second loop, like an 8 lying on its side, and it had been read as 0. Every 38 and 48 had become 30 and 40, so the letters i and t had vanished.
With that corrected, the alphabet is as simple as a key can be: the letters in order, starting at 30. Numbers under 30 mean nothing and are there to mislead.
A fresh transcription, made without the key
A key found from someone else's transcription is not enough. Claude cut the page into enlarged strips and had two AI readers transcribe all of it independently, one from the top and one from the bottom. They were told how this writer forms each digit. They were not told the key or the language. They agreed on 462 of 471 positions. Eleven places were settled on a second look, each with its reason written down.
The key, applied by code, gave Dutch on every one of the 35 lines.
Reading the Dutch
Three AI readers of early modern Dutch then worked on the decoded letters: two independently, and one told to attack Claude's reading. All three judged the key correct. Two put about nine words in ten as certain; the sceptic put about five-sixths of the text as secure in sense. The letter is a short political report: the writer will answer in person, two envoys have left, mistrust is beginning between two parties, and "I rest neither night nor day".
A check we did not plan
The Dutch readers noticed that the meaningless numbers never fall between two words. Claude counted by code: 22 runs of them, all 22 inside a word. By chance that would happen about once in 360 tries. The transcribers knew nothing of this habit, so it supports both the transcription and the key. One limit: where the words divide is our own reading of the Dutch.
The names we could not find
Five numbers in the letter (101, 105, 106, 113, 114) stand for people or powers. Their key is not in the letter. Here the work needed a person. Thomas created an account with the DECODE database, to try the locked records of the archive box, and passed the human check on the Swedish National Archives' site so that its catalogue could be searched. Both gave a clear negative. The new account unlocked nothing: 21 records could be viewed, all of them public. By our one search of the archive's catalogue, none of the collection is online, and the card index of 1934 that should list the key is in the reading room.
So the letter is read, and the writer, the recipient and the five names are not known. The year is open too: three lines of evidence point three ways.
The Lisbon letter
What was on the pages
The volume holds several letters from Michel de Seure, French ambassador in Lisbon, written in December 1558 and partly in cipher. For two of the letters to the King, a clerk of the period wrote out the deciphered text, and those sheets are bound in. The clerk even marked the cipher passages A, B and C. For the letter to the secretary of state, de Fresne, we found no such sheet. That passage was our target.
We worked from the library's online scans of black-and-white microfilm, not from the original, and looked only at the openings around these letters.
Naming the signs
This cipher is not numbers. It is a stream of drawn signs with no spaces: hash shapes, crosses, loops, letter-like forms. Before anything could be decoded, each sign needed a name, so that two readers copying the same line would write the same thing. Two AI cataloguers worked independently on different pages. One listed 61 signs and the other 78. The transcribers ended up using about ninety names; how many truly distinct signs there are is not settled.
Running out of allowance, twice
Twice the work stopped dead because the AI usage allowance ran out while agents were mid-task, and their unfinished work was lost. We changed the method: jobs of six to ten lines each, so that each agent finishes quickly and its result is saved as it lands.
The automatic method failed
Claude wrote a program to recover the key by lining the cipher up against the clerk's text. Tested first on made-up data, it recovered most of an invented key. On the real letter it failed. A key built from passage B alone read passage C no better than shuffled signs did. Keys built from two different passages agreed on only 16 signs of 53; on made-up data shaped like the real letter, the same comparison gave 53 of 57 and 53 of 58.
That gap was informative. The real letter differed from the made-up one in two ways we had not allowed for: the clerk wrote the deciphered text in the clerk's own spelling, and the cipher has stretches the clerk's text does not follow sign for sign.
Reading a clean stretch by hand
In the middle of passage B the program's line-up showed whole words standing together: sont mal armez de toutes choses, qui partit dicy en octobre. From those lines Claude wrote down 37 sign values. That was the step that opened the cipher. It is a homophonic cipher: each common letter has several signs, a few signs stand for whole words, and numbers are padding. When the key was later fitted to more text, 32 of those 37 values held and five were corrected.
Testing the key on text it had not seen
Before using a key on the unknown letter, we tested it on a passage that had played no part in building it. After the first reading, Thomas asked for the key to be firmed up, and we ran three more such tests. In each, the passage tested played no part in building the key applied to it, and each has the clerk's own text to compare against.
| Passage, and the key applied unchanged | Signs | Decoded letters found, in order, in the clerk's text | Same signs shuffled: best of 200 |
|---|---|---|---|
| C (first reader), with the 37 values from B | 386 | 222 of 295 (75%) | 160 (54%) |
| C (second reader), with the 37 values from B | 386 | 208 of 287 (72%) | 162 (56%) |
| A, with the key from B and C | 1,157 | 745 of 1,022 (73%) | 504 (49%) |
| Letter no. 40 to the King, with the key from B and C | 1,084 | 682 of 906 (75%) | 458 (51%) |
| Its postscript, with the key from B and C | 352 | 242 of 317 (76%) | 156 (49%) |
The measure is generous, since shuffled signs already score about half. What counts is that the true order beats every one of 200 shuffles by a wide margin, every time. Here is the start of the postscript as the code decoded it, above the clerk's text, to show the real quality:
ieoub?bio?ysa?ssqueimaisadi?s?luatre?g?miees?uzmorciit?amentauroy
ioublioysauousdirequelaroynemaryelaissaplusdequatrecensmilescuzenortestamentauroy
What the tests show: the common sign values are right far beyond chance, and all five passages are in one cipher. What they do not show: that any single sign value is right, or that any one reading in the unknown letter is right. That also depends on its transcription and on the letters we supplied. Limits of the first test: the 37 values were chosen by reading and not by a fixed rule, and passage C had already been used in the automatic attempts that failed. It was first run before one reader's last six lines had come back, with the other reader's lines standing in (77% and 72%, against 55% for shuffles); the first two rows are the re-run on the complete transcription. The measure in the table was adopted after that failure, which had been scored on a different one.
The letter with no known plaintext
Each line of the target passage was transcribed by four independent AI readers, who were not given the key or any expected text, and merged by vote: 407 signs, with all four agreeing on 348. There were four readers because Claude re-ran the two-reader job by mistake; the second pair was independent, so we kept it. The key was applied by code, with nothing adjusted to make sense. French came out.
Three AI readers of sixteenth-century French then read it, one of them told to attack our reading. They agreed on the outline. The firmest sentence, first as the code printed it and then as we read it:
i e neu / e u cx Pl u s DE m eure ric y [?]u / ieres l o n g ue ment DE au Pis / ale r ny u eu g queache uer mes / DE[?] u g ansIe ne ueu[l]x plus demeurer icy [g]uieres longuement … au pis aler n'y ueu[x] que acheuer mes deu[x] ans.
I do not wish to stay here much longer … at worst I want only to finish my two years here.
Letters in square brackets were supplied or changed against the decoded signs. The x of ueux and deux is from sense: the known passages give that sign the value g more often than x. One sign with no value, inside deux, is passed over.
About seven weeks later, on 30 January 1559, Seure asked the King for a successor, in a letter printed in 1895. This passage shows the same wish already put in cipher to the secretary of state in December. We have not read Seure's other despatches of 1558, so we cannot say it is the first time.
About half of the passage is read. Most of lines 2 to 4, a few words in lines 8 to 10 and the last line are not.
How independent the AI readers are
Every transcriber and reader was a separate run of the same model, Claude Opus 5.5, given the same images and instructions. They are independent of each other's answers, not of each other's habits. The French readers had been told that Seure asked for a successor in January 1559; the sentence above was already legible in the code's output before they saw it.
What went wrong, and what we changed
We kept a record of mistakes because Thomas's rules required it, and because a reader should be able to see them.
- The goal drifted. Claude turned a decipherment into an audit, one approved step at a time. Thomas caught it.
- Image strips were cut in the wrong place. Claude estimated line positions by eye, and by the foot of the page they were about four lines out. Fixed by measuring the ink row by row.
- A crop was upside down. The transcribers said so themselves. Recut.
- Files were saved without approval. A tool saved 50 files to disk by itself when pointed at PDFs. Claude noticed late and reported it, and Thomas decided to keep them.
- A personal detail went into one web request. Claude added part of Thomas's email address to a request to a library server, meaning to be courteous. It should not have. Reported and not repeated.
- Three faults in the key-recovery code. One was caught by testing on made-up data before the code was used. Two showed up on the real letter, one of them a perfect and meaningless answer.
- A transcription job was run twice by mistake. The extra readings were independent, so they were kept and used.
- A test was run on an incomplete transcription. The first held-out test ran before one transcriber's last six lines had come back, with the other reader's lines standing in, and the notebook did not say so. It was found during the review before publication, re-run on the complete passage, and the re-run is what the table shows.
- A display fault printed one reader's choice as if it were decided when readers tied. Fixed, and ties are now shown.
- Wrong claims, each corrected in the notebook: a "code number" in the Amsterdam letter that was a stroke and a letter; counts that were off; a statement that nobody had audited something when somebody had.
- This account itself. Three reviewing agents checked the first draft of this page against the notebook and found two wrong figures and several claims that went further than the record. They were corrected before publication.
Where the AI stopped, and two judgement calls
Claude does not create accounts or type passwords for a person. Thomas created the account and signed in. No messages were sent to anyone during the work. Claude would not tick an "I am not a robot" box, even with Thomas's permission. Where a site asked for a human, the human was Thomas.
Two judgement calls are on the record.
- The library's image service. It turned away the tool's default identification, and Claude then fetched the 17 page images with a browser-style identification. The library's ordinary web pages were showing a human check, which nobody attempted. Claude reported this to Thomas and will not repeat it without asking.
- The archive database account. Its terms say an account is personal. At Thomas's direction, Claude worked in Thomas's signed-in browser and asked the site for one image from each record in the box. We took that to be Thomas using a tool, and we say so here so that others can judge.
What we are not claiming
- Not a finished edition. The transcriptions and the readings were made by AI models and reviewed by Thomas. No specialist in early modern Dutch or in French hands of the 1550s has checked them.
- Not the whole of the Lisbon passage. About half is read.
- Not the people in the Amsterdam letter. The writer, the recipient, the year and five names are unknown.
- Not that no one read these before. We found no reading of either in print or online, in about a day of searching. For the Lisbon letter, one four-page article of 1969 (J. V. Serrão) is reported to print some of Seure's despatches of late 1558 from this same manuscript, and we could not see it. Two other works on the embassy (Matos 1952, Chichkine 2021) were not available to us, and Potter (2014) was seen only in preview.
- Not that the volume holds no decipherment. We found none in the openings around the letter, and the library's notice mentions none. We did not examine the rest of the volume.
By the numbers
| Days of work | 2 (2 and 3 October 2026) |
|---|---|
| Lab notebook entries | 32 |
| Amsterdam letter | 35 lines, 468 signs, 2 independent transcribers |
| Lisbon: text with a clerk's plaintext | 5 passages, 3,402 signs |
| Lisbon: the unread passage | 20 lines, 407 signs, 4 independent transcribers |
| Held-out tests of the Lisbon key | 4 passages; each beat all 200 shuffles |
| Sign values in the key from passages B and C | 65 held in at least half of a sign's occurrences; 59 keep the same value when all five passages are used |
Credit
- Riksarkivet, the Swedish National Archives, holds the Amsterdam letter. The DECODE database published its images and record.
- The Bibliothèque nationale de France holds the Lisbon letters. Images: source gallica.bnf.fr / BnF.
- D. Bourdeau made the first transcription of the Amsterdam letter and saw that it behaved like a language. Bourdeau's catalogue of unsolved ciphers also pointed to the Lisbon letters.
- E. Falgairolle printed Seure's later letters in 1895, which gave us a check on the sense.
Corrections
If you read early modern Dutch or sixteenth-century French hands and can correct a reading, we would be glad to hear it. Write to rightaboutnothing@gmail.com with CORRECTIONS in the subject line. Every doubtful place is marked on the two letter pages.