+
Skip to content

iwe-org/iwe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About IWE

Graphviz Example

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, Neovim, Zed, 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 be your ultimate writing assistant and 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).

LSP Features

The main LSP features are:

  • 🔍 Search through your notes
  • 🧭 Navigate through markdown links
  • 📃 Templates for automated notes creation (e.g. daily notes)
  • Auto-complete links as you type
  • 📥 Extract or inline sub-notes seamlessly
  • 📝 Format the document and update link titles automatically
  • 🔄 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
  • 🤖 Generate or Modify text using custom AI commands
  • 🔹 Change outline type from headers to list and vice-versa

You can learn more on the LSP Features page.

Quick Demos:

Notes search

Demo

Auto-formatting

Demo

Extract note

Demo

CLI Features

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 and export your note structure as a graph in DOT format for visualization.

The main CLI features are:

  • 🏗️ Initialize workspace with init command
  • 🗒️ Normalize documents and update link titles automatically
  • 🔍 List paths of all markdown files in the workspace
  • 📋 Extract contents from specific notes and sections
  • 🔗 Squash multiple files into one comprehensive document
  • 📊 Export note structure as DOT graph for visualization
  • 🎯 Filter exports by key to focus on specific topics

More information is available in:

CLI Features Documentation

An example of squash command output converted to PDF using typst rendering, see /docs/Makefile for details.

Compact graph visualization example

Graphviz Example

How to install

You can find the installation instructions in the Quick Start Guide or see local installation docs.

Check usage guide for more information.

Documentation

For comprehensive documentation, see the docs directory:

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.

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

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载