settle

settle is a CLI tool that helps you manage your digital Zettelkasten.

Getting started

Requirements

  - cargo/rust toolchain (for building)
  - SQLite (for running)

Installation

There's a Rust crate available, so you can simply run:

cargo install settle

Overview

  - full usage manual, contains more technical descriptions
  - project motivation
  - design principles
  - configuration
  - tags and subtags
  - links and backlinks
  - creating new notes (with templates as well)
  - keeping the database up to date
  - projects
      - moving notes between projects
  - renaming notes
  - query, search and filter
      - making a graph of your Zettelkasten

Roadmap

  - [x] generate the database from existing files
  - [x] create Zettel
  - [x] list Zettel
  - [x] tags
      - [x] recognize hashtag-tags (e.g. #interesting-tag)
      - [x] search for tags
      - [x] list all tags
  - [x] configuration
      - [x] custom Zettelkasten directory
      - [x] custom database file path
      - [x] be able to use templates
  - [x] list mentioned but non-existent Zettel ("ghosts")
  - [x] search for text inside notes
  - [x] update Zettel metadata individually
  - [x] projects (subdirectories within the main Zettelkasten folder)
      - [x] add notes to projects
      - [x] create an inbox project by default
      - [x] generate the database with projects included
      - [x] start with an 'inbox' project by default
      - [x] move notes from project to project
  - [x] rename notes
      - [x] update all links to the renamed note
  - [x] simplify command structure
  - [x] query: filter notes based on various criteria (title, tags, etc.)
      - [x] support regex
      - [x] print according to a format
      - [x] put custom separator between links, both forward and backward
      - [x] add option to print DOT graphs, which can be read with e.g. graphviz
  - [ ] writing experience (help deal with writer's block)
      - [ ] find related notes

Contributing

Pull requests are welcome. For any minor or major changes, you can open an issue
to discuss what you would like to change.

License

MIT
