<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Reza PiriGhadim</title>
    <description>The latest articles on DEV Community by Reza PiriGhadim (@reza_pirighadim).</description>
    <link>https://dev.to/reza_pirighadim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4219169%2F382d882a-2b66-4c77-8277-6136697555cd.png</url>
      <title>DEV Community: Reza PiriGhadim</title>
      <link>https://dev.to/reza_pirighadim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/reza_pirighadim"/>
    <language>en</language>
    <item>
      <title>Your Kindle remembers every word you looked up. Here is how to get them out.</title>
      <dc:creator>Reza PiriGhadim</dc:creator>
      <pubDate>Sat, 31 Oct 2026 14:35:04 +0000</pubDate>
      <link>https://dev.to/reza_pirighadim/your-kindle-remembers-every-word-you-looked-up-here-is-how-to-get-them-out-14ie</link>
      <guid>https://dev.to/reza_pirighadim/your-kindle-remembers-every-word-you-looked-up-here-is-how-to-get-them-out-14ie</guid>
      <description>&lt;p&gt;I read English books on a Kindle. Every time I tap a word to see what it means, the Kindle quietly writes it down. Amazon calls this list Vocabulary Builder. After one or two novels it holds a few hundred words, and each one comes with the exact sentence where I found it.&lt;/p&gt;

&lt;p&gt;The problem is that the list stays on the device. I have never found an export button in the Kindle's menus. So the words just sit there, and most of us never look at them again.&lt;/p&gt;

&lt;p&gt;This post is about getting them out. I'll show you where the file is, what is inside it, a few ways to read it, and how to turn the words into flashcards. I make a vocabulary app called Lexpad, and one of the ways is a free tool I built for this. I'll tell you when we get there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where the file is
&lt;/h3&gt;

&lt;p&gt;Plug the Kindle into your computer with its USB cable. It opens like a USB drive. You are looking for two files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;system/vocabulary/vocab.db&lt;/code&gt; holds the words you looked up. This is Vocabulary Builder.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;documents/My Clippings.txt&lt;/code&gt; holds your highlights, notes and bookmarks from every book, all in one text file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;system&lt;/code&gt; folder is hidden. On a Mac, press ⌘ ⇧ . in Finder to show hidden files. In Windows File Explorer, choose View, then Show, then Hidden items. Copy &lt;code&gt;vocab.db&lt;/code&gt; to your computer and leave the original on the Kindle alone.&lt;/p&gt;

&lt;p&gt;This only works with a Kindle e-reader. If you read in the Kindle app on a phone or a computer, I don't know of a simple way to get the list out.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is inside vocab.db
&lt;/h3&gt;

&lt;p&gt;It is a small SQLite database. Amazon doesn't document it, so what follows comes from the open-source tools that read it and from years of forum posts. Three tables matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;WORDS&lt;/code&gt; has one row per word. &lt;code&gt;word&lt;/code&gt; is what you tapped ("sturdier") and &lt;code&gt;stem&lt;/code&gt; is the dictionary form ("sturdy"). There is also the language, and a &lt;code&gt;category&lt;/code&gt; that is 0 while you are still learning the word and changes when you mark it as mastered on the Kindle.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LOOKUPS&lt;/code&gt; has one row per look-up. It says which word and which book, keeps the sentence the word was in (&lt;code&gt;usage&lt;/code&gt;), and has a timestamp in milliseconds.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;BOOK_INFO&lt;/code&gt; has the title and the authors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have &lt;code&gt;sqlite3&lt;/code&gt; on your computer, this query gives you the whole list, newest first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stem&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;looked_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;usage&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;sentence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;authors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="nb"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;timestamp&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'unixepoch'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;looked_up_on&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;LOOKUPS&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;WORDS&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;word_key&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;BOOK_INFO&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;book_key&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;timestamp&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To get a spreadsheet, save the query as &lt;code&gt;kindle.sql&lt;/code&gt; and run &lt;code&gt;sqlite3 -header -csv vocab.db &amp;lt; kindle.sql &amp;gt; kindle-words.csv&lt;/code&gt;. For many people, that is all they need.&lt;/p&gt;

&lt;p&gt;One honest note. The joins are the same ones the open-source exporters use, and I ran the query on a test file I made in the same layout. I have not run it on every Kindle model. If yours stores something differently, leave a comment and I'll fix the post.&lt;/p&gt;

&lt;h3&gt;
  
  
  A page that reads the file in your browser
&lt;/h3&gt;

&lt;p&gt;I wanted something my friends who don't use a terminal could use. So I built a page that does the same thing with nothing to install: &lt;a href="https://lexpad.app/tools/kindle-vocabulary-builder-export?ref=devto-kindle" rel="noopener noreferrer"&gt;Kindle Vocabulary Builder export&lt;/a&gt;. It is free and you don't need an account.&lt;/p&gt;

&lt;p&gt;You choose &lt;code&gt;vocab.db&lt;/code&gt; (or &lt;code&gt;My Clippings.txt&lt;/code&gt;), and it lists every word with its sentence and its book. You can search, filter by book or by language, and hide the words you already marked as mastered. You can also choose between the dictionary form and the form you actually tapped. Tick the words you want and download a CSV.&lt;/p&gt;

&lt;p&gt;Your file never leaves your computer. The page opens the database with sql.js, which is SQLite compiled to WebAssembly, so all the reading happens inside the browser tab. If you open the network panel after you choose a file, the only new requests are for the sql.js script and its &lt;code&gt;.wasm&lt;/code&gt; file, both from lexpad.app. The page stores nothing, and when you close the tab the file is gone. I made it this way because what you read is private, and because I didn't want to run a server for it.&lt;/p&gt;

&lt;p&gt;The Anki file starts with the four header lines that Anki reads by itself (&lt;code&gt;#separator&lt;/code&gt;, &lt;code&gt;#html&lt;/code&gt;, &lt;code&gt;#tags&lt;/code&gt;, &lt;code&gt;#columns&lt;/code&gt;), so the import window opens with the columns already matched. There is also a checkbox that makes the word bold inside its sentence. I like that on the back of a card.&lt;/p&gt;

&lt;p&gt;I tested the page with test files written in the Kindle's own formats. If a real file from your Kindle doesn't open, I want to hear about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tools other people made
&lt;/h3&gt;

&lt;p&gt;These came before mine, and you may like one of them better.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fluentcards&lt;/strong&gt; is a web app. You drop in &lt;code&gt;vocab.db&lt;/code&gt; and get cards for Anki or Memrise. It has been around the longest, and most blog posts point to it. Its code is open source, and it also reads the file in the browser with sql.js. It can look up definitions for you through online dictionaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;kindle-export&lt;/strong&gt; on npm is a command-line tool that turns &lt;code&gt;vocab.db&lt;/code&gt; into a CSV. It's handy if you already live in a terminal. &lt;strong&gt;kindle-vocab&lt;/strong&gt;, also on npm, is a small library for reading the file from your own code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;KMate&lt;/strong&gt;, the new version of the old Windows app Kindle Mate, runs on Windows and Mac. It manages highlights as well as words and exports to Anki, Excel, Word and more.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Kindle Vocab&lt;/strong&gt; plugin for Obsidian turns the database into one Markdown note with all your words.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Turning the words into flashcards
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;In Anki:&lt;/strong&gt; choose File, then Import, and pick the CSV. If the file came from my browser tool, Anki reads the header lines and shows six columns: Word, Sentence, Book, Author, Language and Date. Every note gets the tag &lt;code&gt;kindle&lt;/code&gt;. Pick a deck and a note type. With the Basic type, I map Word to Front and Sentence to Back. Some people put the sentence on the front with the word blanked out, which is closer to how they first met it. If you want to write the headers yourself, the Anki manual explains them on its &lt;a href="https://docs.ankiweb.net/importing/text-files.html" rel="noopener noreferrer"&gt;text file import page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Good to know: a Kindle file has no meanings in it. The Kindle showed you a dictionary entry when you tapped, but it didn't save it. So your cards arrive with the word and its sentence, and you add the meaning yourself or let a tool do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Lexpad&lt;/strong&gt;, which is my app, you can import the CSV or the original &lt;code&gt;vocab.db&lt;/code&gt;. The &lt;code&gt;vocab.db&lt;/code&gt; import is read on Lexpad's server, unlike the browser tool. Each word arrives bare, without the sentence, and the book's title becomes its topic, so you can practise one book at a time. One tap then fills in meanings with AI, which uses your AI allowance. After that, each word you know waits 1, 3, 7 and then 21 days before it comes back. The import itself is free. I built Lexpad because I had a Kindle full of words and no habit of going back to them. So this is the part I actually use.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I would do tonight
&lt;/h3&gt;

&lt;p&gt;Copy &lt;code&gt;vocab.db&lt;/code&gt; off your Kindle. Open it whichever way you like. Delete the words you already know, and the ones you only looked up because you tapped the wrong word. Keep the fifty that really mattered, with their sentences. Review that short list a few times over the next month. It will teach you more than the four hundred words that stay on the device.&lt;/p&gt;

&lt;p&gt;If a file from your Kindle won't open in the tool, or your model doesn't show the &lt;code&gt;system&lt;/code&gt; folder, leave a comment with the model name and I'll look into it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I make Lexpad, and the browser tool above is part of it. I used an AI assistant to check facts and the SQL and to tidy my English. The steps, the tool and the opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kindle</category>
      <category>sqlite</category>
      <category>languagelearning</category>
      <category>anki</category>
    </item>
  </channel>
</rss>
