Inspired by my blog post on how to build a bloat-free Zettelkasten I decided to write a simple CLI tool that contains all the commands I usually do manually.
This is a toy project. Feel free to use it, report bugs in the issues page, suggest features there, or even contribute
with code. The whole concept is heavily inspired in @rwxrob zet
scripts.
The development of this project will always go in-line with my needs of a zettelkasten.
After installing the CLI with go install github.com/gsilvapt/pmz
, you will have access to pmz new|search
commands. Each command has its own set of flags, according to what makes sense. It leverages cobra
framework, so
there are helpers for all commands.
To maximize productivity, this project is configuration based, hence you can find a .pmz.yaml.example
file with
variables you will need to update to your own use case. Make a copy in your home directory and remove the .example
suffix.
pmz new
adds a new note - it creates a directory with the current timestamp and aREADME.md
file inside.pmz search
allows searching for keywords in notes' titles. Afterwards, user can either open or request more to display file contents.pmz update
pulls changes from the remote repository into your local copy. Only selected branch is supported.pmz save
pushes the changes to the remote repository. Only selected branch is supported.
The program supports a custom template for a new note. It can have the format you want, as long as it contains the
{{.Title}}
variable. If in doubt of what that looks like, please check the template that exists
in this repository.
You are free to use it too, either by cloning this project or by copying it manually to file in your system.
To use your custom template, please provide its full path in the configuration file. Check the sample configuration file for an example.
When I started building this, I wanted a way to keep a Zettelkasten simple and bloat free -
let's keep it that way! Nowadays, there are too many options, full of features I don't use or need. Plus, being able to
integrate with everyday tools to me is key (things like grep
for searching, pandoc
to generate reports, etc).
To contribute with code, please check the issues tab and find an issue to work on. Either a bug or a feature, please start by opening an issue. This will help keep things organised.
This project is licensed using Apache 2. For more information, read the license.