Convert manga cbz to xtc locally on your browser! XTEink X4 optimized!
See the codeRead manga and comics on your reader.
Made with ❤️ by varo6 & sodaFMR
A free, privacy-first web app that converts your CBZ comics, PDFs, images, and videos into XTC format for your reader. XTC.js is growing beyond a single device: choose your reader to size the pages for its screen, then preview and download your files.
New: Sticky support. Convert for reTerminal Sticky running CrossPoint Reader, alongside XTEink X4, X4 Pro, and X3. Read the introduction.
No installation or account required.
| Reader | Page canvas | Notes |
|---|---|---|
| XTEink X4 / X4 Pro | 480×800 | Select X4 / Pro |
| XTEink X3 | 528×792 | Select X3 |
| Seeed Studio reTerminal Sticky | 480×800 | Requires CrossPoint Reader firmware |
Sticky's preset uses the page canvas expected by CrossPoint Reader. Generated XTC files are not compatible with the original Seeed firmware.
| Input | What it's for |
|---|---|
| CBZ / CBR | Manga and comic archives |
| Documents, scanned manga, and books | |
| Images | JPG, PNG, and WEBP wallpapers and covers |
| Video | Convert video frames to XTC pages |
The XTC.js blog covers new readers and app updates. Start with Introducing Sticky for setup instructions and the move toward supporting more devices.
The blog has its own reading layout, article cards, and responsive banners. A small Blog link beside the theme toggle keeps it accessible from the app.
| 🔒 100% Private | Everything runs in your browser. Your files never leave your device. |
| 📴 Works Offline | Once loaded, use it anywhere without internet. |
| 🎫 No Account | Just drop your files and convert. Zero friction. |
| 👁️ Live Preview | See exactly how pages will look before downloading. |
For reTerminal Sticky, install CrossPoint Reader first. The generated XTC files are not compatible with the original Seeed firmware.
| Setting | Value |
|---|---|
| Dithering | Floyd-Steinberg |
| Contrast | Medium |
| Split | Overlapping thirds |
| Orientation | Landscape |
With Split wide pages (right to left) enabled, wide CBZ/CBR images are treated as double-page spreads. Each half uses the selected thirds/halves split, starting with the right page. The first image stays whole for the cover. Uncheck this option to keep panoramic artwork together, or choose No split to keep every source page whole. This is geometric splitting, not panel detection.
| Setting | Value |
|---|---|
| Dithering | Atkinson |
| Contrast | Strong / Maximum |
| Orientation | Landscape |
| Setting | Value |
|---|---|
| Image Scaling | Cover |
| Orientation | Portrait |
| Dithering | Floyd-Steinberg |
When you convert landscape images, such as two-page manga spreads, XTC.js can split them to fit your reader. Use "No split" if you prefer full spreads. PDFs also support a "Split by columns (4-way)" option for two-column layouts.
Yes! XTC.js works on any modern browser. Large files may convert slower on mobile due to limited processing power.
XTC is a page image format for compatible e-ink readers. It contains optimized 1-bit black and white images at the device's resolution, designed for fast page turns and excellent readability.
XTCH is the 2-bit variant with 4 grayscale levels instead of pure black and white. Some content may look better in XTCH.
XTC.js started as a TypeScript port of cbz2xtc. It is maintained by varo6 and sodafmr.
Thank you to the Seeed Studio team behind reTerminal Sticky. We're happy to bring Sticky to XTC.js, and we hope to keep working with them to make reading on it even better.
bun install # Install dependencies
bun run dev # Dev server → localhost:5173
bun run build # Production build
bun run serve # Production server → localhost:3000
src/routes/, following blog.introducing-sticky.tsx.src/lib/blog.ts.BlogArticle from src/components/blog/ for the shared article layout. Pass the post's banner through its banner prop.src/routes/blog.index.tsx.bun run build to regenerate the route tree and check the production build.Blog styles live in src/styles/blog.css. Keep banners proportional and contained within the article width.
TypeScript
84.8%
CSS
14.4%
Convert manga cbz to xtc locally on your browser! XTEink X4 optimized!
See the codeRead manga and comics on your reader.
Made with ❤️ by varo6 & sodaFMR
A free, privacy-first web app that converts your CBZ comics, PDFs, images, and videos into XTC format for your reader. XTC.js is growing beyond a single device: choose your reader to size the pages for its screen, then preview and download your files.
New: Sticky support. Convert for reTerminal Sticky running CrossPoint Reader, alongside XTEink X4, X4 Pro, and X3. Read the introduction.
No installation or account required.
| Reader | Page canvas | Notes |
|---|---|---|
| XTEink X4 / X4 Pro | 480×800 | Select X4 / Pro |
| XTEink X3 | 528×792 | Select X3 |
| Seeed Studio reTerminal Sticky | 480×800 | Requires CrossPoint Reader firmware |
Sticky's preset uses the page canvas expected by CrossPoint Reader. Generated XTC files are not compatible with the original Seeed firmware.
| Input | What it's for |
|---|---|
| CBZ / CBR | Manga and comic archives |
| Documents, scanned manga, and books | |
| Images | JPG, PNG, and WEBP wallpapers and covers |
| Video | Convert video frames to XTC pages |
The XTC.js blog covers new readers and app updates. Start with Introducing Sticky for setup instructions and the move toward supporting more devices.
The blog has its own reading layout, article cards, and responsive banners. A small Blog link beside the theme toggle keeps it accessible from the app.
| 🔒 100% Private | Everything runs in your browser. Your files never leave your device. |
| 📴 Works Offline | Once loaded, use it anywhere without internet. |
| 🎫 No Account | Just drop your files and convert. Zero friction. |
| 👁️ Live Preview | See exactly how pages will look before downloading. |
For reTerminal Sticky, install CrossPoint Reader first. The generated XTC files are not compatible with the original Seeed firmware.
| Setting | Value |
|---|---|
| Dithering | Floyd-Steinberg |
| Contrast | Medium |
| Split | Overlapping thirds |
| Orientation | Landscape |
With Split wide pages (right to left) enabled, wide CBZ/CBR images are treated as double-page spreads. Each half uses the selected thirds/halves split, starting with the right page. The first image stays whole for the cover. Uncheck this option to keep panoramic artwork together, or choose No split to keep every source page whole. This is geometric splitting, not panel detection.
| Setting | Value |
|---|---|
| Dithering | Atkinson |
| Contrast | Strong / Maximum |
| Orientation | Landscape |
| Setting | Value |
|---|---|
| Image Scaling | Cover |
| Orientation | Portrait |
| Dithering | Floyd-Steinberg |
When you convert landscape images, such as two-page manga spreads, XTC.js can split them to fit your reader. Use "No split" if you prefer full spreads. PDFs also support a "Split by columns (4-way)" option for two-column layouts.
Yes! XTC.js works on any modern browser. Large files may convert slower on mobile due to limited processing power.
XTC is a page image format for compatible e-ink readers. It contains optimized 1-bit black and white images at the device's resolution, designed for fast page turns and excellent readability.
XTCH is the 2-bit variant with 4 grayscale levels instead of pure black and white. Some content may look better in XTCH.
XTC.js started as a TypeScript port of cbz2xtc. It is maintained by varo6 and sodafmr.
Thank you to the Seeed Studio team behind reTerminal Sticky. We're happy to bring Sticky to XTC.js, and we hope to keep working with them to make reading on it even better.
bun install # Install dependencies
bun run dev # Dev server → localhost:5173
bun run build # Production build
bun run serve # Production server → localhost:3000
src/routes/, following blog.introducing-sticky.tsx.src/lib/blog.ts.BlogArticle from src/components/blog/ for the shared article layout. Pass the post's banner through its banner prop.src/routes/blog.index.tsx.bun run build to regenerate the route tree and check the production build.Blog styles live in src/styles/blog.css. Keep banners proportional and contained within the article width.
TypeScript
84.8%
CSS
14.4%