#note-taking #command-line #productivity #utility

app zkt

A note-taking tool based on the famous Zettelkasten method

3 releases

0.0.3 Dec 26, 2021
0.0.2 Jul 3, 2021
0.0.1 Jul 2, 2021

#14 in #note-taking

CC0 license

330KB
852 lines

zk

Build crates.io

A note-taking tool based on the famous Zettelkasten method with support for fuzzy searching, tags & link exploration, in Rust!

What is a Zettelkasten?

A zettelkasten, or 'slip box' is a method of note-taking famously used by the sociologist Niklas Luhmann. Notes essentially contain metadata such as tags that describe key aspects of the note or links to other notes. The goal is to enhance creativity by exploring the relationships between notes and making new connections between seemingly unrelated ideas.

Features

  • Fast fuzzy search and link exploration powered by skim
  • Works with a flat directory of markdown files
  • Minimal configuration with sensible defaults

Demo

Here is a quick demo showcasing the new, search, tag, link and explore features.

asciicast

Installation

You can install zk using cargo (note the zkt crate name):

$ cargo install zkt

Usage

zk 0.0.3

USAGE:
    zk <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    dir                    Output the Zettelkasten directory path
    explore <name>         Explore a notes links recursively
    find    <tag>          Find notes by tag
    link    <left> <right> Link two notes
    new     <name>         Create a new note
    open    <name>         Open a note
    rm      <name>         Remove a note
    rmlink  <left> <right> Remove a link between two notes
    rmtag   <name> <tag>   Remove a tag from a note
    search                 Fuzzy search notes
    tag     <name> <tag>   Add a tag to a note
    help                   Prints this message or the help of the given subcommand(s)

Configuration

zk currently looks for a configuration file called .zk.toml using the rust-xdg crate.

If a configuration file is found it must have the following key-value pairs set (default values are shown below if no configuration file is present):

# .zk.toml

# The Zettelkasten directory path.
path = '~/.zk'

# The preferred editor of choice when opening
# and editing notes.
editor = 'vim'

Keybindings

The fuzzy finder skim supports the implementation of custom keybindings, this section documents the custom keybindings that are implemented when using various commands.

Command Keybindings
explore <C-e> - Edit the selected note
Enter - Explore the selected notes links

srid/neuron - Future-proof note-taking and publishing based on Zettelkasten

AndrewCopeland/zettelkasten - Creating notes with the zettelkasten note taking method and storing all notes on github

sirupsen/zk - Zettelkasten on the command-line 📚 🔍

Dependencies

~13–22MB
~327K SLoC