Show HN: Odin – the integration of LLMs with Obsidian note taking
github.com
github.com
I'm looking now to choose the obsidian plugin that helps me take advantage of the vast amount of notes I have created with obsidian over the last few years.
A YC Startup, Khoj[1], recently did a ShowHN[2]. It works and has several options, including an Obsidian Plugin and for Emacs. Unfortunately, it drags my computer, and I can't do anything else much once I run the local server. Perhaps, once I upgrade out of my Intel iMac, I will return to it.
(I'm not affiliated to Khoj.)
Does this sentence imply that some data of my vault will be sent to OpenAI? [nut sure my company will be fond of that]
tossing one's private notes to openai seems odd for such a tool that is marketed this way:
> Obsidian is the private and flexible writing app that adapts to the way you think.
> Obsidian stores notes on your device, so you can access them quickly, even offline. No one else can read them, not even us.
I think so, yeah. Kepano (CEO of Obsidian, the company) has stated that they're waiting for the technology to progress to where models can be run locally.
Anything goes with third party plugins of course
EDIT: Jumping to timestamp 50:08 is a good summarisation of their thoughts from the man himself: https://youtube.com/watch?v=TkNTuFF2t-c
Check out the post here https://ollama.ai/blog/llms-in-obsidian
and a companion video here: https://youtu.be/ubXNPHpYREE
Personally, I'm interested in this sort of functionality because I would like my notes to be densely cross-referenced whenever possible, automatically and intelligently.
And obsidian has lots of other great features, so I think it is an attractive option even for people who don’t really care about the ‘local’ angle.
I have no affiliation to Foam. It's just awesome.
I'm curious if you had any preference or reason why you went with foam.
Yeah... I don't think we need more self congratulating note taking questions /s
Given that my colleague already had a wealth of experience using Obsidian and I made some contributions to LangChain, a very nice open-source Python framework for LLM communication, we decided to unite forces - I always enjoyed creating rich user interfaces while my colleague, Patrik, dealt with the part of the project that my UI needed to render. This is how our work on ODIN began, but what is Obsidian, how did a god from Norse mythology get in here, and why is TypeScript great? Let's find out.
Although I didn’t have such extensive experience working with Obsidian, I fell in love with it at first sight - a pragmatic and user-friendly interface, nice colors, a wide and very open open-source community and other goodies - what else does a good note-taking application need? With these thoughts in mind, I began to study how Obsidian works from the inside, how it can be expanded, and how it can be connected to other technologies - such as LangChain, in our case.
I was very pleasantly surprised when I discovered a well-made Developer API that allows you to create your custom community plugins that can easily connect to the application itself. I was even more pleasantly surprised when I discovered that all this is web-based and has support for React, which I worked with, and Svelte for its fans. Although the official documentation is not too full of details and sometimes you can get lost in it, a very convenient UI styling system and strict TypeScript type definitions, coupled with IntelliSense, which I always use, is a game-changer.
What's notable is the ease of creating plugins in real time; npm scripts allow you to instantly detect code changes, and the Obsidian Hot Reload plugin speeds up development several times. In addition, Obsidian provides developer tools like popular browsers, simplifying the debugging process by accessing the console and directly inspecting elements on the screen. This flexibility in the Obsidian API allows developers to bring their creativity to life, unlocking the full potential of Obsidian to create unique note-taking experiences and more. Honestly, it feels just like making a web application in a modern and robust environment. I'll miss this when I get back to regular web development.
That’s all great, but still, why ODIN? Honestly, it’s quite simple — we liked the project naming style that has existed in Memgraph for a long time — for example, MAGE, also known as Memgraph Advanced Graph Extension, seemed to us a damn original name, sharp as volcanic glass — and so, ODIN was born, from now onwards known as Obsidian Driven Information Network, an Obsidian plugin for knowledge management. This name became the real starting point of our project, representing the goal that we were trying to comprehend and the idea that we were trying to realize.
In our R&D process, while working on ODIN, we figured out that data storage is the core of the app's architecture, without which neither the backend nor the frontend would make any sense. Even though we thought a lot about traditional databases such as PostgreSQL, the Obsidian knowledge graph was the main inspiration to try Memgraph, a graph database that excels in modeling complex relationships and connections, making it the ideal choice for creating and navigating intricate information networks.
Even I, an ordinary student with a passion for developing user interfaces, was able to play around with both Memgraph and the query language called Cypher. I highly recommend trying the visualization that Memgraph Lab provides, even if you are far from both database graphs and software development in general.
By seamless integration with LangChain, we’ve tried to leverage Memgraph's speed and efficiency to transform standard notes into interconnected knowledge graphs empowered by the flexibility of embedding search. This enables you not only to traverse your notes effortlessly but also to extract valuable insights by interacting with LLMs through LangChain implemented in the backend using Python and FastAPI. With Memgraph as our data storage solution, ODIN redefines the way we store and harness knowledge, offering a platform for building an intelligent and dynamic personal knowledge management system just from your notes. Isn’t it wonderful?
ODIN introduces a multitude of functionalities to improve your knowledge management experience. At its core, ODIN provides a chat-like prompt bar for answering questions about the data stored in your knowledge graph as if you were just chatting with your knowledge collection.
With ODIN's advanced graph visualization capabilities provided by Cytoscape, an amazing library for graph visualization with complete TypeScript compatibility, you gain a whole new view of your Obsidian vault, effortlessly navigating through the complex web of your notes. This extends to individual files view, where you can delve deep into specific topics from your markdown notes. Furthermore, ODIN expands the Obsidian native drop-down menu by adding new advanced functions. Link prediction, as its name suggests, generates connections to other markdown files in your entire vault, enriching your note's content with thematically relevant references. Moreover, you can extract thought-provoking questions from your markdown file, fostering deeper contemplation. Lastly, the node suggestion capability enhances your note-taking by highlighting thematically connected nodes, forging meaningful connections between highlighted text and related knowledge nodes, all while promoting a more comprehensive understanding of your stored information. On the other hand, clicking the node from the file view will highlight related sentences directly in your opened note. These features perfectly represent the goals we were trying to achieve and have proven to be useful in our daily lives, which means they might be of interest to other developers as well as anyone else interested in organizing their knowledge in a better way.
The Obsidian community (including you, reading this article!) is the lifeblood of the platform's evolution and continued success. At the forefront of this community-driven ecosystem are the invaluable community plugins, just like ODIN. These user-generated extensions enhance Obsidian's functionality, addressing specific user needs and preferences. Becoming a part of this thriving community is not only about reaping the benefits of these plugins but also contributing to its growth. By actively participating in discussions, providing feedback, or even crafting your own plugins, you can play a pivotal role in shaping the future of Obsidian, enriching the collective knowledge management experience, and ensuring that this vibrant community continues to flourish.
The history of the creation of this project was long (and sometimes painful to remember), but if you were to ask me if I would do it again, I would without any hesitation. Creating plugin-type interfaces is a breath of fresh air in frontend development, which still fits perfectly not only into open-source contribution but also into professional experience along with career growth. Although this project could be done better in many ways, it will remain a reliable indicator that modern technologies can and should be used in conjunction with one another. You, too, can become a part of this story — open an issue in our GitHub repository, and we will be happy to make ODIN better together!
I hope that I was able to ignite your interest in trying Obsidian or even making a more tangible contribution to this incredible open-source community and thank you for reading this story about my journey.
The writer and Patrik created ODIN using Obsidian to improve knowledge management, incorporating advanced features and technologies. They value the Obsidian community and invite GitHub contributions.
And why has a project that claims to offer new views, no example of those views? No screenshots, video, whatever to explain what it really sells.
I received two responses of people who actually produced something.
The vast majority, it seems, are professional note-taking junkies.
People in the Obsidian forum spend their lives fooling around with metadata conventions and "tagging" and "wikilinks" instead of producing work that actually matters.
Intellectual procrastination at its finest.
Now we have this... ODIN—a way to outsource your intellectual note-taking procrastination to AI.
Note: The requirement wasn't just a book. It was any "published knowledge product" which I define as book, code, course, essay, etc. (What Naval Ravikant calls Specific Knowledge).
I use my PKM to connect the ideas I've read about over time. When I come across a topic again, I can quickly review what I've learned about it in the past, and how it connects, sometimes in obscure ways, to other things that have crossed my radar.
This helps me come up with a wider variety of ideas for how to solve problems in front of me, or new connections to draw on or people to contact for feedback.
I don't care about any one topic enough to devote the necessary time to writing a book about it, but that doesn't mean the system as a whole doesn't provide me a whole lot of value.
Maybe this is just a misunderstanding between the specialist mind and generalist minds. The variety of things I can speak about and connect together intelligently is the value I bring to a company or a conversation, not the extraordinary depth I can go to on any one individual topic. I suspect there are a lot more generalists like me using PKM software like Obsidian than there are specialists.
Using a PKM frees up time for other pursuits.
Here's a real example: Just this morning I was setting up my new 13th gen framework laptop (it's amazing btw, thank you to framework for making Fedora such a great experience on it!), and I hit Ctrl+r in my terminal to find a previous command. I was surprised to see the standard bash handler instead of the fancy terminal history tool that I installed on my previous laptop. Using my notes I was able to quickly find that the tool is "atuin" and I was able to see exactly what commands I ran to set it up back in the day. This is a tool that doesn't have a great installation story for Fedora. I ended up building rom source and installing, and I'm not a rust person so I would have to look that all up had it not been in my notes. I didn't have time for a long distraction, and my notes saved me on that. It probably adds a 10% to 20% overhead of effort to the original task, but then saves me time in the future.
I have also benefitted greatly from numerous notes on customers/clients that I can pull up and see quickly what the last thing I did/said to them was. After months of not talking to them, it's very easy to forget or blend their details into other customers. The notes can be life savers.
There have also been times when I needed to do some technical task and I remembered having done it years earlier. Finding those notes can be an incredible time saver, especially when it skips me past the first couple hours of research!
My Obsidian vault is full of things like lists of hiking trails I want to check out, information on workshop dust collection, and notes on car shopping. Why would you expect that I’m trying to write a book about it?
Usually people take notes for a reason, they don't just take notes and toss them
It's not controversial to say Obsidian tool tweaking can be fun and productive, but could also tap into the exact wrong parts of peoples OCD brain.
No reason to be hostile for an observation of a community, especially as low stakes as "notetakers." I don't think they have a monopoly on taking notes?
Your definition of what "actually matters" seems to be different than mine.
For me, Obsidian is a place to dump thoughts, keep ideas for later, and a scratchpad. It lets me clear my mind of all of the random things that pop up so I can focus more on the tasks at hand. It might sound silly but writing out all the things I’ve been thinking about does wonders for freeing up mental bandwidth, which in my experience is critical for being productive — it’s a lot harder to maintain focus when you’ve got a bunch of different thoughts vying for processing power.
I might not revisit all of my notes, but that’s fine. They’re there when/if I decide to turn them into projects.
I don’t go too far on the organizational or bells and whistles aspects though, the extent of that is folders and the odd tag here and there, because neither really matters much so long as I can find my writings easily.
I think this is key here. It's the same for me. If I don't dump my thoughts int o an organized form they will nag me. When I write them down (and about most of them, I forget or delete later), it allows me to work on the task at hand. If I don't, I end up thinking about all the avenues of exploration of those ideas, todos, etc...
It's akin to how instead of keeping those thoughts in RAM I put them in my SSD. RAM is just for what's happening now.
By writing them down I no longer have to worry about them being forgotten since I can always scan over my notes when I’ve got spare mental bandwidth to work with, which stops my mind from wandering.
"Zeigarnik Effect Directs Our Focus Onto Unfinished Tasks"
PWA with Rails/React, editor is Lexical (because why markdown when you can have note looks pretty), hosted on a machine at home that I connect via tailscale.
I already added LLM integrations too.
Until then though, I’ll be keeping the tinkering to a minimum. Honestly speaking I could probably get by just fine with Sublime Text, a folder full of markdown files, and Syncthing… the main attractions of Obsidian, etc are little QoL features like separate fonts for prose and code.
At some point I switched to treating notes as a pipeline - that is, if theres nothing coming out the other end (e.g. a document, a checklist I actually follow, an email, a reminder, a blog post, a jira ticket, etc.) then the activity is pointless.
Doing this meant it actually does bring value now.
LLMs seem like a singularly pointless addition in that respect, though.
I’ve also published (and maintain) several websites using special tags and Hugo tools that compile to HTML markup complete with the requisite hyperlinks and attachments.
I don’t like Obsidian much, personally. I love to customize my tools just enough to get them out of the way.
Notes on the system: https://csh.rit.edu/~rg/productivity/20221109203834/
Example site: https://csh.rit.edu/~rg/alphasmart-3000/
I would do the opposite -- talk to people who clearly have a need for corralling large amounts of information (authors, phd students), and take a a look at what tools they used. It might not be Obsidian or LogSeq specifically, but I'm sure they have some very specific system that works for them... even if its a just a bunch of google docs.
You must write on napkins and throw it in the trash or else you are a tryhard pseudo-productivity junkie.
Apparently there are plugins for Logseq and Obsidian as well. https://github.com/vyleung/logseq-logtero-plugin
Those are two very different things.
One thing that was interesting to me was that he kept a list of amusing anecdotes. The guy was trying to move up in life, so he was doing his best to network with the wealthy elite of his town. He had a personal database of jokes and amusing stories that he could bring up, I guess hoping to gain favor or friendship with the right people.
I've thought about this kind of activity a lot. Not all writing is meant to be for distribution. This guy wasn't writing to compile a tell-all exposé of his tiny provincial town. He was writing entirely for his own selfish benefit.
As curious as it may sound, I can totally understand wanting to hook up an AI to this kind of personal database. Something to make my anecdotes a bit more funny. Or to connect rumors in a way to give me the best gossip.
It reminds me of how VIP type people often have some intern or research assistant who feeds them personal details of the people they are going to meet, so the VIP can warmly ask "How is your daughter Sally?" when shaking hands with someone who is actually a stranger to them.
Not all knowledge is a product. If you see knowledge as a service then these kind of tools make a bit more sense.
Is external visibility of some output or work product the sole marker of true utility of these tools if one is to avoid the judgement of intellectual procrastination? I’d rather think that’s not the case.
I use Obsidian with a partner to organize an archive that’s used to publish a website, a substack and a podcast. I am familiar with the YouTube obsidian note taking subculture and it’s pretty mega, but online-everything is a poor measure of the real thing in life. Just as Twitter isn’t reality, etc etc….
That's a very limited choice of options. Or poor phrasing.
> I received two responses of people who actually produced something.
So the others ignored it?
> The vast majority, it seems, are professional note-taking junkies.
I'm not sure if this is poorly phrased or an insult. And what does professional mean? Most of what I manage with Obsidian are private data, nothing work-related.
> People in the Obsidian forum spend their lives fooling around with metadata conventions and "tagging" and "wikilinks"
That's the point of a forum. Talking. Fooling around. How many will you see there talking about the boring stuff? How they use Obsidian for managing contacts, their mealplans, the other boring notes. Probably not many. You will also see the small number of shining characters and fancy solutions, but not much about casual thing people also do.
I feel like you're giving a very specific use case for production to a tool that isn't really geared for that thing. If I was going to write a book, and I may one day, I don't know whether Obsidian is the tool I'd use or if I'd be better off using tools that are designed for it?
I'm not sure but it sounds like you're scoffing at that. To me it sounds like the solution to people spending too much time tagging and linking their notes.
And also determining that if you can’t see value in “note taking”, there is none.
The piece your analysis grossly overlooks is the ability to handle many more things at once using a pkm as second brain.
It’s unfortunate you may not have enough experience with GTD and what it has evolved into.
If you approached this post again with an open mind and heart and said you expected a lot of authors and instead people seem to manage knowledge .. why, and how are people using it for value.. it might be a conversation.
It is entirely possible to publish knowledge products at any time.
In the working world they might include meeting agendas, notes, okr reports, emails and updates to projects.
All can be both specific and esoteric knowledge but many orders of magnitude better organized than their peers.
Frankly, I could do with far fewer "published knowledge products" doing the rounds, and I'm glad that most users are using it as intended, not to get some absurd "published writer" badge to flash to the easily impressed.
My humble 2 cents.
I know the sample size is small but I got similar response with Notion 2 years ago. I use Apple Notes personal note taking and plain markdown with an SSG for publishing blog posts and work. No books yet but I have published over 150+ posts in the past 3 years:
markdown files: https://github.com/rednafi/rednafi.com/tree/main/content published work: https://rednafi.com
Also, another tool written in JavaScript on my machine, I'll pass!
IMHO people taking notes for personal reasons (or building personal knowledge bases just as external memory for their personal expertise) far outnumber people who do that with the intent to compile those notes in some knowledge product for others.
Sure, some people take notes for a book or build a knowledge base that they'll summarize for others in a course or essay(s). But people with such intent are few, so these aren't the central applications of such tools, the stereotypical knowledge workers - like lawyers, doctors, engineers - all mostly apply their knowledge (including digital notes) not to produce or publish something but rather to solve a problem or provide an informed answer, and equating all this "non-producing" knowledge work to intellectual procrastination is quite insulting.
Among other things, I use them for developing design documents, both for my own use and for wider distribution. Often I’ll do the initial work in one and then convert to a pdf, word or google doc, or wiki pages for consumption by others.
I also use them just to track work that I’ve done, which helps a lot with context switching between projects.
I used to just use mostly plain text files to do this, but these tools provide a lot of additional features that make it easier to create and manage useful notes.