NextCloud Notes Command Line Interface

PyPI - License Daniel Moch CI PyPI

nncli is a Python application that gives you access to your NextCloud Notes account via the command line. It’s a “hard” fork of sncli. You can access your notes via a customizable console GUI that implements vi-like keybinds or via a simple command line interface that you can script.

Notes can be viewed/created/edited in both an online and offline mode. All changes are saved to a local cache on disk and automatically sync’ed when nncli is brought online.

More detailed documentation can be found at the homepage.

Requirements

Installation

  • Via pip (latest release):
    • pip3 install nncli
  • Manually:
    • If you don’t already have it, install Flit: pip3 install flit
    • Clone this repository to your hard disk: git clone https://git.danielmoch.com/nncli.git
    • Install nncli: flit install --deps production
  • Development:
    • Clone the repo
    • Install Pipenv: pip3 install pipenv
    • Stand up development virtualenv: pipenv install --dev

Features

  • Console GUI
    • full two-way sync with NextCloud Notes performed dynamically in the background
    • all actions logged and easily reviewed
    • list note titles (configurable format w/ title, date, flags, category, keys, etc)
    • sort notes by date, alpha by title, category, favorite on top
    • search for notes using a Google style search pattern or Regular Expression
    • view note contents and meta data
    • pipe note contents to external command
    • create and edit notes (using your editor)
    • edit note category
    • delete notes
    • favorite/unfavorite notes
    • vi-like keybinds (fully configurable)
    • Colors! (fully configurable)
  • Command Line (scripting)
    • force a full two-way sync with NextCloud Notes
    • all actions logged and easily reviewed
    • list note titles and keys
    • search for notes using a Google style search pattern or Regular Expression
    • dump note contents
    • create a new note (via stdin or editor)
    • import a note with raw json data (stdin or editor)
    • edit a note (via editor)
    • delete a note
    • favorite/unfavorite a note
    • view and edit note category

Contributing

Pull requests are welcome, preferably via emailed output of git request-pull sent to the maintainer (see here for more information). Bug reports should also be directed to the maintainer via email.

If you aren’t hosting a fork anywhere online, you can also send patches using git format-patch (again, see the official documentation ).

Releases

Release tags will always be signed with the maintainer’s PGP key (also available on any public keyserver). PGP-signed versions of release tarballs and pre-built wheel packages are available on PyPI, with the signature files living alongside the corresponding artifact (simply append an .asc extension). Because the maintainers of PyPI do not consider PGP signatures to be a user-facing feature, the extension must be added manually in your browser’s URL bar in order to download the signature files.

Acknowledgements

nncli is a fork of sncli by Eric Davis. This application further pulls in and uses modified versions of the simplenote.py module by Daniel Schauenberg and the notes_db.py module from nvpy by Charl P. Botha.

Indices and tables