A Windows desktop app that lets researchers read scanned and handwritten documents, transcribe interviews and analyse texts with the AI provider of their choice, or offline, without Python, Colab or the command line. Every result is checked against its source side by side: where models disagree is highlighted, and corrections never overwrite the AI's text.
Kalamu is Swahili for pen, from the Arabic qalam. The test releases up to 0.2 were called Scriptorium; a newer version moves their jobs, settings and keys over on its first start.
Windows 11 · x64 and ARM64 · English interface (French and German planned) · MIT licence
Status: early development. Test builds (unsigned installers for x64 and ARM64) are on the releases page. Text extraction, transcription and analyses have run against the live OpenAI, Claude and Mistral APIs; Gemini, offline Whisper and the cheaper batch mode still await a live run. A Microsoft Store release is in preparation. See the roadmap.
What it does
- Extract text from PDFs and images, printed or handwritten, with Gemini, OpenAI, Claude or Mistral. Lines kept as on the page, or joined into running text.
- Transcribe audio and video, with speakers and timestamps, in the cloud or offline with Whisper. Speakers can be given their real names. Public YouTube videos are transcribed from their link with Gemini, without downloading them.
- Analyse texts with fields you define: a summary, the people, places and organisations a document names, its tone with a reason, themes from your own list. Ready-made analyses cover the common needs, including the question, argument, methods and findings of a scholarly publication for a literature review.
- Make a detailed table of contents of a long document: a newspaper or magazine issue, an archival file scanned in one piece, a book or report. One model reads each page, another, cheaper one (from any provider) combines the pages into one entry per article or item, with its pages, authors, date or summary.
- Correct existing text: the noisy OCR of a PDF's text layer or of a digital library's text file, corrected page by page with its spelling of the time kept, every change shown against the original.
- Check every result against its source, side by side, with corrections kept apart from the AI output, which is never overwritten.
- Compare models on the same documents, with their differences highlighted in the text and error rates against corrected pages.
- Never pay twice: work is saved piece by piece, interrupted jobs resume, and nothing is sent again with the same settings.
- Pay half for large collections: send a job to the provider's batch service, answered within a day, and close the app in the meantime.
- Save a job's settings as a pipeline and start the next batch in one click. Export it, with its models, settings and full prompts, to cite in a methods section or share with colleagues.
- Export to text, Markdown, Word, JSON, CSV, subtitles and searchable PDF, each with a
provenance.jsonrecording the model, prompt and settings.
Files go straight from your PC to the provider you choose, with your own API key, kept in Windows Credential Manager. Offline, nothing leaves the PC. AI output can be fluent and wrong: check a sample against the source before relying on it.
Documentation
- Specification: what the app must do, and why.
- Roadmap: what is built and what is next.
- Development: building, checks, the browser preview.
- Output formats, decisions, design, and everything else.
- Privacy policy and security policy.
Development
npm install
npm run tauri dev
Requirements, checks and the sample-data preview are in docs/development.md.
Support development
Kalamu is free, and every feature stays free. If it is useful to you, you can help fund its development on Buy Me a Coffee. Supporting is entirely optional and does not unlock additional features; AI providers bill their own usage separately. The same link is in the app, at the foot of the sidebar and at the end of Settings.
Author and licence
By Frédérick Madore, University of Bayreuth. An independent project. MIT licence.