Ebook Reader Studio is a VS Code extension for reading .txt files in a cleaner, more immersive layout. It is designed for long-form plain text, novels, notes, transcripts, and exported documents that deserve a better reading experience than the default editor.
Supported formats
- Plain text —
.txt(custom line/heading renderer, folder-based chapter list) - E-books —
.epub,.mobi,.azw,.azw3,.fb2,.fbz,.cbz, rendered with a vendored copy of foliate-js (MIT)
DRM-protected books (e.g. titles bought from the Amazon Kindle store) and the KFX format cannot be opened — the reader only handles DRM-free files.
Features
.txtfiles open directly in the custom reading view by default- E-book formats (EPUB/MOBI/AZW3/FB2/CBZ) open in a paginated reader with a real table of contents, reading-position memory, and prev/next navigation
- Focused reading panel built with a warm paper-like layout
- Built-in themes (
Paper,Sepia,Night) plus shipped presets (Kindle Sepia/Green/Black, Apple Sepia, and more) - Create, edit, and delete your own themes — pick background, text, and accent colors (with a hex input), the rest of the palette is derived automatically
- Adjustable typography: font size, line height, content width, tucked into an
Aapopover in the toolbar - Your chosen theme and typography are remembered globally and reused for every file you open
- Chapter navigation:
- Chapters — browse every
.txtin the same folder (one chapter per file); click to open it in place - In this file — auto-detected headings such as
Chapter 1,第1章,# Heading
- Chapters — browse every
- Search inside the current text, with an optional "Titles only" scope
- Friendly title extraction from file names (e.g.
第01章_雨夜灯.txtshows as雨夜灯) - Reading progress indicator
- Re-renders automatically when the source file changes
- Command to reopen the same file in the normal text editor
Usage
- Open a
.txtfile. - The file will open in
Ebook Reader Studioby default. - Use
Ebook Reader: Reopen as Text Editorif you want the normal source editor. - You can still manually use
Ebook Reader: Open in Readerfrom the command palette or explorer.
Development
npm install # install dev dependencies (vsce, ovsx)
npm run verify # syntax-check the extension entry point
Press F5 in VS Code to launch an Extension Development Host and try changes live.
Publishing
The extension ships with everything needed to build and publish: an icon, a
LICENSE (MIT), a .vscodeignore, and vsce / ovsx scripts in
package.json. Bump the version in package.json before every release.
Replace the placeholder
repositoryURL inpackage.jsonwith your real Git repository before publishing.
Option A — Build a .vsix (no account needed)
Best for private use or sharing a file directly.
npm run package # -> ebook-reader-studio-<version>.vsix
Install it with code --install-extension ebook-reader-studio-<version>.vsix,
or from the Extensions panel: … menu → Install from VSIX…
Option B — VS Code Marketplace
-
Sign in to Azure DevOps with a Microsoft account and create an organization.
-
Create a Personal Access Token (PAT): profile → Personal access tokens → New Token. Set Organization to All accessible organizations and Scopes to Marketplace → Manage. Copy the token.
-
Create a publisher at https://marketplace.visualstudio.com/manage. Its id must match
"publisher"inpackage.json(currentlyallenyang). -
Log in and publish:
npx vsce login allenyang # paste the PAT once npm run publish:vsce # = vsce publish # or let vsce bump the version + git tag for you: npx vsce publish patch # or minor / major
Option C — Open VSX (Cursor, VSCodium, Windsurf, etc.)
The official Marketplace only serves genuine VS Code. To reach VS Code-compatible IDEs, also publish to Open VSX:
-
Sign in to https://open-vsx.org with GitHub, create a namespace matching the publisher, and generate an access token.
-
Publish:
npx ovsx create-namespace allenyang -p <token> # first time only npm run publish:ovsx -- -p <token> # = ovsx publish
Next Ideas
- Full-text search inside e-books
- Scrolled (continuous) layout toggle for e-books
- Bookmarks and highlights
- Markdown-lite rendering for decorated plain text
Credits
E-book rendering is powered by foliate-js
by John Factotum (MIT). A trimmed copy is vendored under media/foliate/
(the large PDF renderer is intentionally excluded); its license is kept at
media/foliate/LICENSE.