Skip to main content

Simple note-taking with CLI & Git integration.

Project description

pyzet

Tests

"I, of course, do not think everything by myself. It happens mainly within the Zettelkasten".

pyzet is a CLI tool targeted at note-taking and personal knowledge management loosely inspired by the Zettelkasten approach, hence the name. The whole workflow is centered around Git repos where notes are stored.

Installation

Prerequisites:

  • Python 3.10+
  • Git 2.25+ (but older also should be fine)

Unix and Windows are supported. You can install pyzet with pip:

pip install pyzet

Tutorial

For the quick setup for the either platform (make sure to create missing folders):

pyzet sample-config unix > ~/.config/pyzet/pyzet.yaml
pyzet sample-config windows | Set-Content ~/.config/pyzet/pyzet.yaml

Run pyzet init to create Git repo.

You can read the more detailed tutorial in docs.

Configuration

A config file should be placed inside ~/.config/pyzet/pyzet.yaml, and looks like this:

repo: ~/zet
editor: /usr/bin/vim
editor_args: []
  • repo: the location of the ZK Git repo

  • editor: use it to overwrite the default editor (by default we refer to EDITOR and VISUAL env variables)

  • editor_args (default: empty): optional list of CLI arguments which should be passed to the editor

Support for multiple ZK repos

You can have multiple repos, and only a single config file, because there is --repo flag that you can always set to point to a custom repo (and possibly, create an alias that includes it). If --repo flag is used, the value from YAML is ignored.

Supported editors

See docs.

Writing parsable zettels

See docs.

Development installation

Development dependencies are stored in requirements-dev.txt. To install the package in editable mode with the dev dependencies run the following after cloning the repo:

pip install -e .
pip install -r requirements-dev.txt

For running tests more easily, you might also want to install tox:

pip install tox

Then you can easily run:

tox -e coverage    # pytest with test coverage
tox -e pre-commit  # run pre-commit checks on all files

Building

tox                  # runs all tox envs making sure tests pass
pyproject-build      # builds both the wheel and source dist
twine check dist/*   # checks if the build isn't completely broken
twine upload dist/*  # asks for username and password

Make sure to generate an API token in PyPI.org in order to upload the new version.

Inspiration and further reading

@rwxrob inspired me to write a stand-alone tool for note taking rather than use a ready solution. He posted a good summary in this video.

See also:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyzet-0.13.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyzet-0.13.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file pyzet-0.13.0.tar.gz.

File metadata

  • Download URL: pyzet-0.13.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for pyzet-0.13.0.tar.gz
Algorithm Hash digest
SHA256 763be158e14d5b7f3b77643eee4d42c821b887bd169381a57ab7d7eb21d8dba8
MD5 469d2abfebdaee8c87309a2c01ea188b
BLAKE2b-256 009150275a7eee38ca8bb9d6ab6a3620d17423c0dadf954b43c55afc9c8bed5f

See more details on using hashes here.

File details

Details for the file pyzet-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: pyzet-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for pyzet-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 204c013e61839fc65a3988f3bd352080bcdbb787ba7054e38edaa177fda3771a
MD5 960bce991eb24a9952b83f008d278c81
BLAKE2b-256 8fe262dab9d077543eb79e7780e8bc94f8b7eb2b48fbb666bc2de6bffefab149

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page