Show HN: Open OneNote Viewer in Rust

emsi2 pts0 comments

For more than 15 years, I accumulated hundreds upon hundreds of notes in OneNote. I loved the application and still consider it one of the best and most distinctive note-taking tools available. Its free-form canvas supports a way of organizing information that Markdown-based tools simply cannot reproduce.The problem was that using OneNote became increasingly inconvenient for me. Microsoft never released a native Linux client, so I kept a Windows VM and later even a separate Windows small PC largely for OneNote. The OneNote Web Clipper for Firefox eventually stopped being supported, removing one of the ways I regularly captured information.The web version did not solve the problem. In particular, it could not search across all my notebooks at once. To find a note, I first had to remember which notebook contained it, which rather defeated the purpose of having a searchable archive. I also found the web application slow and substantially more limited than the desktop client.I looked at alternative note-taking applications for some time, but migrating was difficult while so much of my history remained locked inside OneNote files. Eventually I realized that I did not need to reproduce the whole application. To begin moving on, I first needed a good viewer for the archive I already had.So I built OneNoteViewer.It is a native Linux application written in Rust with GTK4. It opens local .one, .onetoc2, and .onepkg files directly, without OneDrive, a Microsoft account, Wine, or conversion to Markdown or HTML. It reconstructs OneNote’s spatial page canvas and supports browsing and searching across multiple notebooks.I built much of it with the assistance of coding agents. The result surprised me, particularly in performance. Opening pages, moving between notes, and searching my archive feel effectively instantaneous on my system and my notebooks are 100s of MB in size. After years of friction around accessing these notes, that responsiveness has made a meaningful difference to me.On my own archive, I estimate that roughly 98–99% of notes render correctly or well enough to use. There are still occasional layout problems: an image may be missing or slightly too tall, list items may be misaligned, and some text can contain unexpected characters. Most of my web clips and the material I care about are already displayed faithfully, but there is plenty left to investigate and improve. My corpus is only one corpus, so I expect other archives to uncover cases I have not encountered.OneNoteViewer is intentionally read-only. I do not want to recreate the ecosystem I am trying to leave, and I do not intend to turn it into another proprietary-format editor. My longer-term plan is to integrate its viewing and search capabilities with a modern note-taking application, so that old OneNote material and newly created notes can be browsed through one interface.For now, I would be interested in hearing what others think, especially people with large or unusual OneNote archives. There are certainly bugs, and more eyes will help find them. Compatibility reports, minimal sanitized test files, technical criticism, and contributions are all welcome.Repository, screenshots, packages, documentation, and source:https://github.com/emsi/OneNoteViewerThank you for taking a look.

onenote notes application note taking archive

Related Articles