A rhizomatic Zettelkasten system for atomizing and connecting notes
Project description
rhizome
A rhizomatic Zettelkasten system that atomizes notes and synthesizes connections using local LLMs
Motivation
All of this is motivated by the fear that I'll write the same thing in my notes twice, miss an important connection, or impose an artificially skewed structure on my notes. Therefore, I decided to cultivate a personal knowledge management system that does the following:
passively atomizes heterogenous, unstructured notes
Why spend my time doing what I could have automated? Instead of manually defined backlinks in a PKM system, assign them using embedding similarity
actively synthesizes new connections
Again, instead of relying on manual, human-assigned connections, let embedding models make them in the background.
enables writing with a contextual foundation
Creating a rhizomatic machine that takes a given piece of context, searches through an embedding space, and returns related ideas alleviates the fear of writing the same idea again.
A note on LLMs
While this idea was something I had a few years ago, I've relied on vibe coding (specifically, Claude Sonnet 4.5 with VSCode + Copilot) to build this system. I've looked through the code enough to feel confident using this on my own device, but please check it yourself.
Quick Start
# Install Ollama and pull a model
ollama pull llama3.1
ollama serve
# Install rhizome
source .venv/bin/activate
rhizome your_notes_folder
See USAGE.md for detailed instructions.
Output Structure
output/
├── chunks/ # Atomic ideas from your notes
│ ├── chunk-1.md # type: chunk, source: [[original-file.md]]
│ └── chunk-2.md
└── plateaus/ # Connected ideas across chunks
└── knowledge-synthesis.md # type: plateau, synthesized content
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rhizome_cli-0.1.0.tar.gz.
File metadata
- Download URL: rhizome_cli-0.1.0.tar.gz
- Upload date:
- Size: 347.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1faae826107e1906e66d07877aae45c660e88ddfa66fc736301bfdd6474c9b6e
|
|
| MD5 |
a327e56b7d3a6e5ae9de180163765640
|
|
| BLAKE2b-256 |
2accec584a019f00fd65b3fc78352526cbe27f8fff029ab6c35b6757d0a92b46
|
File details
Details for the file rhizome_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rhizome_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15825bce4a386c7800acf0c0530b8cfdc398ac6eb59d06782756bd834d84227c
|
|
| MD5 |
cb8c46f923e877658a199cb518285ecc
|
|
| BLAKE2b-256 |
4b053c58ab3c20bb3948c24b8f2662e3d5b6b3a9b93c9736fecfecfc224d427a
|