Kintara is a self-hosted document library and reader that runs in Docker and watches a folder you already have. Drop PDFs, Markdown, or text files into the directory and it indexes them automatically, extracts searchable text and metadata, generates thumbnails, and makes the whole library available through a browser or installable PWA. It has libraries, collections, tags, full-text search, highlights, favorites, reading progress, private library sharing, and GitHub OAuth.
I have been working on Kintara for a few months, and the architecture actually changed pretty dramatically while I was building it. Kintara originally had a Tauri desktop shell, but I eventually realized that isn't what I wanted at all. So I ripped the desktop layer out and rebuilt it around one Rust server that serves both the API and frontend. Now I can point Kintara at a NAS folder and open the same library from my desktop, laptop, tablet, or phone.
The thing I really love about this app is the optional AI features. I added an option to use OpenAI or Gemini, and with so few tokens being spent, it's a fraction of a cent to use most of them, aside from the cover image generation, which is bit more, but makes the library look so much prettier! 😄
Anyway, I wanted AI to be a tool inside the library rather than taking the thing over, and I wanted it to be fully optional, so if you're one of those "Ew, AI is in this app" people, you just don't turn it on and it's like it doesn't exist. What the AI can do is summarize documents, suggest metadata and fill in those blank spaces, generate cover images for docs that don't have a cover, search the library for docs, or you can just chat with it about your docs.
Find is a pretty great AI feature I think. Instead of letting the model vaguely tell you that something appears "somewhere in the document," Kintara asks for actual passages with page numbers, verifies the quote against extracted page text on the server, then verifies it again against the rendered PDF. If the quote cannot actually be located, it gets dropped.
But I think the thing I’ve ended up appreciating most is the AI metadata suggestions. A lot of my library consists of documents with incomplete, inconsistent, or completely useless embedded metadata, and fixing that manually gets old super fast. Kintara can read the document and suggest a title, author, summary, keywords, DOI, ISBN, and publication year. Then it displays the suggestions and I choose which fields I want, apply them to the form. It sounds like a stupidly small convenience until you’re staring at a library with hundreds of files. Then it’s kinda just amazing.
At this point Kintara has grown into one of those projects where I started out thinking, "I just want a nice way to organize my documents that's not overcomplicated", and somehow I ended up with filesystem watching, OAuth, multi-user permissions, and threw in image generation cause why not?
So if you have accumulated an actual ton of pdfs and markdown files, and it sounds interesting to you, try it out and let me know what ya think! It's open source I've published a Docker image too.
GitHub: https://github.com/pinkpixel-dev/kintara
Docker Hub: https://hub.docker.com/r/pinkpixeldev/kintara
Top comments (3)
It's so cool! 😸⭐
Thanks so much!!
The NAS-first pivot is the right call. Desktop shells are nice until you want the same reading state on a tablet and a laptop. I like that the AI part sits on top of the library instead of owning it.