SlopScore
00 crowd

eevee

eevee - A vibe-coded eBook reader app.
Open repo on GitHubgithub.com/gammadevv/eevee
JavaScript · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 12 hours ago by gammadevv · last checked 12 hours ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-18: eevee - A vibe-coded eBook reader app.; its own README says "eevee - A vibe-coded eBook reader app". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as gammadevv. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
eevee - A vibe-coded eBook reader app.
created
2026-07-31 · pushed 1 month ago · 26 commits · 2 contributors
release
v1.0.1 · 2026-08-06
languages
JavaScript 88%CSS 11%HTML 1%Shell 0%Java 0%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 12 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
csshtmljavajavascriptshell
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: eevee - A vibe-coded eBook reader app.; its own README says "eevee - A vibe-coded eBook reader app". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Eevee

A local-first ebook reader, writer and library for your own machine. EPUB, PDF, Markdown, comics, Word, FictionBook and plain text — 33 file types, one library. Find books online, write your own, export five ways. Linux, macOS and Windows.


Eevee scans folders you choose, builds a library out of whatever it finds, and gets out of the way. Nothing is uploaded, no account is needed, and it works with the network unplugged. It runs as a Node server with a browser front end, so it opens in its own desktop window on the machine it runs on — and, if you want, from a phone on the same network.

It is built to be light. There is no Electron, no bundler and no build step: the browser loads ES modules directly. That keeps the install small enough to be comfortable on a Raspberry Pi.

The shelf

Most readers show a grid of cover thumbnails. Eevee shows spines, because that is what a library actually looks like.

Each spine takes its colour from the book's own cover art, sampled once in the browser. Height follows length and width follows file size, so a row is uneven the way a real shelf is. Reading progress rises up the spine like a ribbon left in place, which means you can see how far through you are on every book at once rather than one badge at a time. Hovering tips a book out and shows its cover.

Books flow onto stacked shelves as the window allows, so a library of five hundred fills the page like a bookcase instead of scrolling sideways forever. A cover grid and a dense list are one keystroke away if you would rather see the art.

What it reads

Family Extensions Notes
EPUB .epub EPUB 2 and 3 via epub.js. Nav docs and NCX, five cover fallbacks
PDF .pdf pdf.js, lazily rendered with byte-range fetches. Full-text search
Markdown .md .markdown .mdown .mkd .mkdn .mdx .qmd .rmd YAML front matter, GFM tables, highlighted code
Comics .cbz .cbr .cb7 .cbt Single, spread or continuous strip. Reads ComicInfo.xml
Plain text .txt .text .log .nfo .me .asc Infers chapters; strips Project Gutenberg boilerplate
HTML .html .htm .xhtml .xht Extracts the article, drops navigation and banners
FictionBook .fb2 .fb2z Poetry, epigraphs and inline images preserved
Word .docx Styles mapped to semantic HTML
Rich text .rtf Paragraphs, emphasis and Unicode escapes
Kindle .mobi .azw .azw3 .prc .kfx Metadata and covers read directly; converts to EPUB with Calibre

.cbr and .cb7 need unar or p7zip-full. Kindle conversion needs calibre. Everything else works out of the box.

Find books

Discover searches five services at once, with no key needed for four of them:

Source What it gives you
Project Gutenberg 70,000 public-domain books, downloaded as EPUB straight into your library
MangaDex Manga, a chapter at a time, packed as CBZ that Eevee already reads
Google Books Huge catalogue; public-domain volumes download. Rate-limits without a free key
AniList The light novel and manga index — volumes, status, what exists
Open Library Nearly everything published, with links to borrow or read free at the Internet Archive

Sources that only catalogue a work link out to it. Eevee does not pretend to host what it cannot legitimately fetch.

Remote covers are proxied through Eevee, so the page keeps img-src 'self' and browsing Discover does not report what you are looking at to five CDNs.

Write

The Studio is a Markdown editor with a live typeset preview. Books save into your library as ordinary files, so they are immediately readable, searchable and reopenable.

Export to EPUB (built here, with a real contents list), PDF (via WeasyPrint), standalone HTML, Markdown or plain text.

AI, if you want it

Off until you configure it, and you bring your own endpoint and key: Anthropic, OpenAI, OpenRouter, Z.ai, Groq, a local Ollama, or anything OpenAI-compatible. Base URL, key and model are per provider; models are fetched live and there is a Test button so you can tell a bad key from an outage.

  • Summarise a book. A 67,000-word novel is read in passes and comes back as two accurate paragraphs.
  • Ask questions answered only from the book's text — if it is not in there, Eevee says so.
  • Explain a difficult passage.
  • Write a book: describe it, review the plan, then watch chapters land.

Keys are stored on the machine and are never sent back to the browser.

Reading

  • Typography that applies live — Literata, Atkinson Hyperlegible (designed by the Braille Institute for low vision), Public Sans, Fraunces or your system faces; size, leading, measure, margins, letter spacing, justification and hyphenation.
  • Five reading surfaces — paper, sepia, grey, slate and true black.
  • Pages or scroll, one column or a two-page spread.
  • Highlights and notes in five colours, with bookmarks, exportable to Markdown, JSON or plain text. Your words never get stuck in here.
  • Full-text search inside any book.
  • Read aloud, a sentence at a time, through your device's own voices or an online service with 301 of them. Chunking is the point: a whole chapter in one utterance is flat, cannot be paused mid-paragraph, and takes an age to start.
  • Reading statistics — time, words, streaks and ninety days of activity.
  • Command palette on Ctrl+K for every book and every command.
  • Progress, position and notes are saved continuously and survive a crash.

Install

Needs Node 18 or newer. Works on Linux, macOS and Windows, per-user, with no administrator rights.

git clone https://github.com/gammadevv/eevee
cd eevee
npm install
node bin/eevee.js install

That adds Eevee to your applications menu, installs an eevee command, registers the ebook and comic types your system has no entry for, and makes Eevee the default for .epub, FictionBook, comics and Kindle files.

Two platform notes, because they are not Eevee's choice:

  • macOS cannot have its default handler set from a script. Install duti (brew install duti) and rerun, or set it once via Get Info.
  • Windows does not let an application silently become the default for a type another program owns. Eevee registers itself properly and appears in Open with; you tick "Always use this app" once per format.

It deliberately does not take over .pdf, .txt, .html, .docx or .rtf — those already have an application you chose. Eevee still appears in "Open with" for them. Pass --all if you want it to claim those too, or --no-default to change no associations at all.

Everything Eevee stores lives in one folder, ~/.eevee — findable, backup-able and deletable in one go. An older install is migrated on first start.

Remove it with eevee uninstall, or eevee uninstall --purge to delete your library index and notes too. Your book files are never touched.

Use

eevee                          # open the library
eevee ~/Books/tidewrack.epub   # open a book straight away
eevee --no-window              # serve only; print the address
eevee --host 0.0.0.0           # reach it from a phone on your network
eevee --port 4000

eevee install                  add it to this machine
eevee uninstall [--purge]      remove it
eevee update [--check]         pull a newer version from the repository
eevee --help

Opening a book while Eevee is already running hands it to the window that is already open rather than starting a second copy.

Keyboard

Ctrl+K Command palette
/ Search the library
Ctrl+D Find books online
Ctrl+E Write a book
S G L Shelf, grid, list
Space Turn the page
T Contents
N Highlights and notes
A Text settings
D Bookmark this spot
V Read aloud
F Fullscreen
Ctrl+F Search in this book
? Every shortcut

How it is put together

bin/eevee.js           CLI: arguments, the app window, single-instance handoff
src/config.js          XDG paths and defaults
src/server/
  index.js             Express app, CSP, WebSocket for live library updates
  routes/              library, book, progress, annotations, settings, stats
  library/             JSON store with atomic writes, scanner, cover cache
  formats/             one adapter per family, registered by extension
  sources/             the online catalogues, one module each
  ai/                  providers, prompts, text extraction, saving
  export.js            Markdown, text, HTML, EPUB and PDF out
  update.js            git-based self-update
  util/                zip, HTML sanitiser, logger
src/web/
  index.html           the shell and the icon sprite
  css/                 tokens, base, components, library, reader
  js/                  plain ES modules: readers, views, state, router
  vendor/              committed third-party client libraries and fonts
install/               cross-platform installer: linux, macos, windows
test/                  81 tests over the adapters, shortcuts and the whole API

Book content is untrusted, so it is sanitised on the server before it reaches the page — scripts, event handlers, javascript: URLs and any CSS that could escape the reading column are stripped — and a Content Security Policy without unsafe-inline backs that up. The server binds to loopback unless you tell it otherwise, and says so out loud when you do.

SPEC.md is the interface contract every module is written against.

Development

npm run fixtures    # build the test corpus
npm test            # 81 tests, plus static checks
npm run check       # every client import resolves, nothing used unimported
npm run serve       # run without opening a window
npm run vendor      # refresh vendored client libraries from node_modules
node scripts/make-icons.js
node scripts/probe-formats.js   # run every adapter over the corpus

A note on what is not here

Eevee will not scrape a pirate mirror, and there is no source in it that does. The honest answer to "where do I read this light novel" is the publisher, and where a service only catalogues a work, Eevee links out to it rather than pretending otherwise.

Licence

MIT.

Read the rest on GitHub

Scan report · 2026-09-18
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review

0 comments

log in to comment.

report this listinglog in to report