Skip to content

iwe-org/iwe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About IWE

IWE is an open-source, local-first, markdown-based note-taking tool. It serves as a personal knowledge management (PKM) solution designed for developers.

IWE integrates seamlessly with popular developer text editors such as VSCode, Zed, Neovim, Helix, and others. It connects with your editor through the Language Server Protocol (LSP) to assist you in writing and maintaining your Markdown documents.

IWE offers powerful features such as search, auto-complete, go to definition, find references, rename refactoring, and more. In addition to standard Markdown, it also supports wiki-style links, tables, and other Markdown extensions.

The primary focus of IWE is to help you keep your notes tidy and structured. It understands the structure of your documents defined by headers, lists, and links and supports advanced refactorings, such as extract/embed note and many other via LSP code actions.

While IWE supports sub-directories and relative links, it also allows you to organize notes hierarchically using Map of Content (MOC) documents.

Note

The goal of the project is to make managing knowledge as seamless as managing code, enabling your PMK system to function like an IDE for Writing (IWE).

The main LSP features are:

  • 🔍 Search through your notes
  • 🧭 Navigate through markdown links
  • Auto-complete links as you type
  • 📥 Extract or inline sub-notes seamlessly
  • 📝 Format the document and refresh link titles
  • 🔄 Rename files and automatically update all the links
  • 🔗 Search for backlinks to find references to the current document
  • 💡 Display inlay hints with parent note references and link counts

You can learn more on the LPS Features page.

IWE also provides a CLI utility that allows you to process thousands of documents in just a second. With IWE, you can reformat documents and update link titles across your entire library. Additionally, you can use the CLI mode to combine multiple files into one comprehensive document. More information is available here.

Quick Demos:

Notes search

Demo

Auto-formatting

Demo

Extract note

Demo

How to install

You can find the installation instructions in the Quick Start Guide.

Check usage guide for more information.

Get Involved

IWE fully depends on community support, which is essential for its growth and development. We encourage you to participate in discussions and report any issues you encounter.

Contributions to the project documentation are also highly appreciated.

Plugins / Packages

This repository is for Rust code and crates publishing only. Plugins and packages are in separate repositories. If you are willing to help with a non-listed package type, I'm happy to add a repo for it.

We're looking for a maintainer for the dedicated Neovim plugin.

Debug Mode

IWE includes a debug mode, which can be enabled by setting the IWE_DEBUG environment variable. In debug mode, IWE LSP will generate a detailed log file named iwe.log in the directory where you started it. Including logs with your issue report will help us to resolve it faster.

export IWE_DEBUG=true; nvim

Special thanks to

  • A heartfelt thank you to Sergej Podatelew for his outstanding work on the VSCode plugin.
  • Deep appreciation to Daniel Fichtinger for his contributions to the project documentation and community.

Inspired by many other open-source projects

PS

A huge thank you to my wife, Iryna ❤️, for all her support and for giving me the time I needed to finish this over the weekends!

Thanks to the Rust community for creating such amazing software development tools. I've really enjoyed learning and using them in the process of building IWE.