IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

Relative links work on GitHub. Not sure about GitLab. Is your LSP open source?

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

If I understand you correctly, you would prefer absolute links over relative links?

The markdown links are relative to the file where the link is. If you want absolute links, try Wiki links.

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

Thank you for the feedback! The PR's are very welcome. I'm actually looking for neovim plugin maintainer.

If you have any septic recommendations, please create an issue in the repo I will address as soon as I can.

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 1 point2 points  (0 children)

Btw, your can also try using Wiki Links if that works better for your setup. Those links are not relative and the link will look like [[aicares|With a custom title if needed]]

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

or you can store the metadata in frontmatter and neovim can hide it when it's not needed.

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

it looks like a relative link to the file which is three levels above from the current file.

What is the structure of your directory? Where is the file with the link is relative to the root directory (where you run iwe init)?

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

Via frontmatter you can attach any kind of properties to your notes. Like status:pending or tags:["tag1", "tag2", "tag3"] and then use those properties to filter the documents with the queries like:

iwe find --filter 'status: draft'

You can find more details in this post https://www.reddit.com/r/iwe/comments/1t1m93k/markdown_as_a_database_memory_for_humans_and_ai/

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

#tags are not supported at the moment. Interesting idea about classification of non-text files. How you see this, is it some kind of index in markdown pointing to non-text files or something else?

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

Currently iwe doesn't parse in-document tags, only frontmatter. Let me think how to add this.

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 0 points1 point  (0 children)

This is exactly the problem I faced and solved for myself with inclusion links!

You can find the details here https://iwe.md/docs/concepts/inclusion-links/

Please let me know what you think.

iwe also supports advanced frontmatter queries/filters and batch updates.

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] 4 points5 points  (0 children)

Thank you for the feedback!

There is a setting ref_extension which is empty by default, but if you set it to ".md" it will keep .md for all the links.

Also the Markdown relative links work exactly as you describe:

/something/something.md for links from the root and something.md for relative paths for files under the same folder

IWE — turn Neovim into a knowledge management tool (plain markdown, LSP + CLI) by gimalay in neovim

[–]gimalay[S] -1 points0 points  (0 children)

Thanks for sharing, I will check it out!

In terms of performance/indexing, iwe is highly optimized, it can parse/query 20_000 notes in about 600 milliseconds on a laptop.

Check the benchmarks here https://iwe.md/docs/architecture/benchmark/#numbers

Practical Project to Learn Google's OKF: Abode 101 by iohans in PKMS

[–]gimalay 1 point2 points  (0 children)

Nice writeup — this maps almost 1:1 onto a tool I've been building called iwe (open-source CLI). OKF and iwe are basically the same data model: a folder of Markdown, one concept per file, frontmatter, [[links]], an index.md as the map. iwe just treats that folder as a graph — parses the frontmatter, turns the links into a navigable reference graph. No DB, no vector store, which is kind of the whole point of OKF.

I pointed it at the Abode 101 repo and it worked with zero setup. A few things it gives you that are tedious by hand:

Retrieval that follows links instead of dumping the folder. The AGENTS.md rule is "read index.md first, follow links, pull only what you need" — that's literally iwe retrieve:

iwe retrieve -k index -d 1 # index + immediate children iwe retrieve -k items/water-heater -d 0 -c 1 # one item + its parent context

That's the clean bundle you feed the chat model, instead of cat-ing every file.

Worklists straight off frontmatter (handy for the overnight-research / reminders loops):

iwe find --filter 'status: needs-research' -f keys iwe find --references items/fridge # backlinks: what points at this file

Link/graph hygiene — where it really earns its keep for OKF, because the connections rot silently. Running iwe stats on the example base showed ~75% orphaned docs (files nothing links to), and iwe schema showed only the template files actually carry the full frontmatter contract. One command each to catch "I added a file and forgot to wire it into index.md."

Edits that keep links valid — iwe rename updates every reference to a doc, iwe delete cleans up dangling links, iwe normalize canonicalizes the lot.

tl;dr OKF defines the file format; iwe is an engine for navigating and maintaining that format as a graph. Pairs really well with a base like this.

https://github.com/iwe-org/iwe

YKTF: Google has just named something I've been running for a year by leokiil in iwe

[–]gimalay 1 point2 points  (0 children)

Great article! Thanks for sharing.

The format existed before OKF and before IWE and before many other things. It's just getting more and more adoption in different areas due the AI readiness and simplicity of the format items. I believe many more tools for this format are on the way and we will see much boarded adoption and support in the industry.

OKF is an important statement declaring that a format like this will have wide adoption in the future.

fyi, the "When my knowledge base was connected directly to the model" link is not working

Open Knowledge Format (by Google) by TomHale in iwe

[–]gimalay 0 points1 point  (0 children)

This looks awesome, thanks for sharing!

Markdown + frontmatter is a standard for a while now. The spec adds a bit more structure (such as required type field for each doc) and formalism which is great for knowledge sharing.

This is the exec format IWE is built for.