Skip to main content

CLI program to manage your notes.

Project description

Description

CLI note manager for Zettelkasten-like note-taking.

This tool allows you to keep track of your notes and of the links between them. You can easily create, delete, list and filter and browse your notes. You can also set up a git repository to keep track of changes and setup a remote repository.

You'll need an editor of your choice to edit the notes. You can set this by modifying the EDITOR or VISUAL environment variable, or by setting the ---editor flag.

Future versions will support a configuration TOML file.

This is also a library that you can import with import appunti. The main packages are appunti.zettelkasten.notes and appunti.zettelkasten.zettelkasten

Commands

You can see all the flags and commands available by typing

appunti --help
usage: appunti [-h] [--vault VAULT] [--author AUTHOR] [--autocommit]
              [--autosync] [--editor EDITOR] [--version]
              {initialize,new,edit,open,delete,print,list,reindex,next,sync,commit,info,browse}
            ...

Zettelkasten manager

positional arguments:
  {initialize,new,edit,open,delete,print,list,reindex,next,sync,commit,info,browse}
    initialize          Initialize the vault.
    new                 Create a new note.
    edit                Open an existing note by ID to edit.
    open                Open the selected notes without affecting index and
                      .last
    delete              Delete a note by ID.
    print               Print the note by ID.
    list                List all the notes.
    reindex             Reindex the vault.
    next                Create new note continuing from last one.
    sync                Commit and sync with remote repository if available.
    commit              Commit current changes to repo.
    info                Show metadata for a note.
    browse              Browse the Zettelkasten.

options:
  -h, --help            show this help message and exit
  --vault VAULT         Location of the vault.
  --author AUTHOR       Author name.
  --autocommit          Whether to commit the git repo at every action.
  --autosync            Whether to push to remote origin at every action.
  --editor EDITOR       Editor to use.
  --version             show program's version number and exit

To drill down and see the flags and use of a single command, you can call for help directly on that command:

appunti browse --help
usage: appunti browse [-h] [zk_id ...]

positional arguments:
  zk_id       ID of the note to show.

options:
  -h, --help  show this help message and exit

Each note is attributed with a hash which represents it uniquely. This means that notes don't need to have unique titles (but that helps).

A newly created note will look like this:

---
title: Hello World
author: Lorenzo Drumond
date: 2023-11-29T01:16:21
last: 2023-11-29T01:16:21
zk_id: 56681eea01d3435a3349cf3ee659c20a
tags:
---


# Hello World

# References

Links are surrounded by double square brackets. They are parsed independently on where they are inserted inside the note (as long as it's after the frontmatter)

Tags are identified by a leading # and can only contain _ as special character.

Notes are indexed in a sqlite database. If you make changes to notes without using appunti, you'll have to reindex the database in order to make sure it reflects the most recent changes.

Interactive selection

This selection is supported by almost all commands if you don't provide them with their argument.

  • You can filter the selection by title by just typing normally, or you can exclude titles by preprending ! in front of what you're typing.
  • You can filter by tag by prepending #, or exclude tags by prepending #!
  • You can filter by link by surrounding the text inside double brackets, or you can exclude links by surrounding with double brackets and prepending with !

You can select multiple notes by pressing *. You can select/deselect all notes by pressing CTRL-A.

Pressing ENTER will select the note under the cursor if multi-selection is activated, or the notes marked with *, and trigger the command with the notes selected.

Pager

The pager is activated with the command appunti browse. This is an easy way to scroll through your notes and follow links as you read.

Keybindings

Key Action Description
s Launch interactive selection Select notes and append them to the current note stack
r Reload note Reload current note, showing any pending change
d Delete note Delete note from current stack (not from zettelkasten)
D Delete stack Delete everything except current note
1 - 9 Follow link Follow link denoted by number, replacing the stack ahead with new note
# Select link Prompts you to select link by number higher than 9
n Next note Create a new note using same links and tags as current note, and edit it
N New note Create a new note and edit it
j Scroll Down
J Scroll links list down
k Scroll up
K Scroll links list up
g Top of note
G End of note
CTRL-D Half-page down
CTRL_U Half-page up
h move to left of note stack
l move to right of note stack
H move to start of stack
L move to end of stack

N.B. Links supported for now are only sluggified versions of link title. Future versions will support full title and file name as well.

Roadmap

Core

  • Support for tags
  • Support for backlinks
  • Search for tags, links, words, title, date
  • SQLite caching of indexed notes
  • Support for reindexing
  • pager to navigate between notes by following links
  • interactive search
  • support filename reference and full title reference for links
  • Find broken links
  • Knowledge graph creation
  • Support for using external or internal tool for fuzzy finding/searching
  • Support for TOML configuration
  • Plugin system

Plugins

  • AI for categorisation and grouping of notes
  • AI for tag creation
  • AI for summarisation of notes
  • Select multiple notes and summarise them into one
  • PDF summarizer
  • flashcards
  • Daily/Weekly/Monthly knowledge summarization (using git/langchain)

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

appunti-1.3.0.tar.gz (44.4 kB view details)

Uploaded Source

Built Distribution

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

appunti-1.3.0-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

Details for the file appunti-1.3.0.tar.gz.

File metadata

  • Download URL: appunti-1.3.0.tar.gz
  • Upload date:
  • Size: 44.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.8-300.fc40.x86_64

File hashes

Hashes for appunti-1.3.0.tar.gz
Algorithm Hash digest
SHA256 159cf3a33cceea44643e68fdff406e6ddc311603c53829c5201665d0cd42268f
MD5 2839d1460bf4bdcca50240df4c488bfb
BLAKE2b-256 dac31ea8e14cb87a0768ff2f06ae903afaf41ff83687ba598e9a372c5df525fe

See more details on using hashes here.

File details

Details for the file appunti-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: appunti-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 49.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.8-300.fc40.x86_64

File hashes

Hashes for appunti-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6b3c017c962d11af618e6a355b8b45fb224b54a4e4b2a71bea73da341a4d705
MD5 61aec55301d4103c917dc57c9c24fbcb
BLAKE2b-256 96ff809a40d1d30bdd034af8fe40fa57e92c044921db5a305c707b153ee927d3

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