Stephen's Obsessive Note-Storage Engine.

Overview
# Get Sonse and tell it where your notes are...
$ pip install sonse
$ export SONSE="$HOME/notes|.txt"

# And it'll handle them for you!
$ sonse list
projects
shopping
todo-list

# You can make new notes...
$ sonse create my-new-note

# Or import them from other files!
$ sonse import groceries ~/groceries.txt

# It's all just text files underneath, so no lock-in!
$ ls $HOME/notes
projects.txt
shopping.txt
todo-list.txt

Sonse (Stephen's Obsessive Note-Storage Engine, pronounced son·say) is a command-line note management application. It allows you to create, edit and maintain your notes without sacrificing the simplicity and openness of plain text.

If you've got a bunch of loose text files lying around and you'd like to keep them organised, Sonse is for you. It'll keep them safe, sorted and sensible, forever. (And if you don't like it, you can delete Sonse without harming your data.)

Note: Sonse is designed primarily for Linux and Linux-based operating systems; in particular it uses several Linux defaults and environment variables for its basic functions. Mac OS should work (please file a bug if it doesn't), but Windows is unsupported at this time.

Installation

Sonse requires Python 3.10 and a few dependencies. You can install it one of two ways:

PyPi Package

You can get the official PyPi package with pip:

$ pip install sonse
$ sonse --help

This will install Sonse with a sonse executable you can run directly. Nice and easy.

Source Code

You can also clone this repository or download the latest release and run the source code yourself, if you're interesting in tinkering with the code:

$ git clone https://github.com/rattlerake/sonse.git
$ cd sonse
$ pip install -r requirements.txt
$ python -m sonse --help

You'll need to install the dependencies and run Sonse from the Python module, or create an alias for it.

Setup

Configuration

All Sonse needs is a single environment variable called SONSE. This variable should contain the path to your notes directory and their file extension, separated by a pipe. For example, if your notes are in $HOME/notes and they end in .txt, then use:

# Bash/Zsh
$ export SONSE="$HOME/notes|.txt"

# Csh/Tcsh
$ setenv SONSE "$HOME/notes|.txt"

# Fish (my favourite)
$ set -gx SONSE "$HOME/notes|.txt"

That's it. That's all you need to do.

Directories & Naming

Sonse keeps all your notes in your configured directory, and refers to them by their lower-case file names. For example, if your notes look like this:

$ ls $HOME/notes:
alpha.txt
bravo.txt
charlie-123.txt

Then Sonse will show them like this:

$ sonse list
alpha
bravo
charlie-123

Note names are also disambiguated, allowing you to save time by typing just enough characters to disambiguate:

$ sonse list
alpha
bravo-one
bravo-two

$ sonse read a
This is note alpha.

$ sonse read bravo
Error: ambiguous name, did you mean: 'bravo-one', 'bravo-two'?

Shell Completion

Sonse uses Click for its interface, which has optional support for shell auto-completions. I highly recommend enabling this functionality if you have a shell that supports it. (Sonse works fine without it, but it's nice to have.)

Commands

All commands have detailed help messages, use the -h/--help option to see them. The following is a quick tour of all the available commands and their general usage:

Create a note

Create a new empty note in your directory:

$ sonse create alpha

Use -e/--edit to edit the note after creation:

$ sonse create alpha --edit

Edit a note

Open a note in your default text editor, according to $VISUAL or $EDITOR:

$ sonse edit alpha

Read a note

Print an existing note to standard output:

$ sonse read alpha
This is note alpha!

List all notes

List all notes in alphabetical order:

$ sonse list
alpha
bravo
charlie

Or list all notes starting with a prefix:

$ sonse list a
alpha

Search all notes

List all notes containing a substring:

$ sonse search "candy mountain"
charlie

Use -c/--case-sensitive to search case-sensitively:

$ sonse search "Candy Mountain" --case-sensitive
charlie

Copy a note

Copy an existing note to a new name in your directory:

$ sonse copy alpha bravo

Move a note

Move an existing note to a new name in your directory:

$ sonse move alpha bravo

Delete a note

Delete a note, if it exists:

$ sonse delete alpha
Are you sure you want to delete 'alpha'? [y/N]: y

Use -f/--force to bypass the confirmation prompt:

$ sonse delete alpha --force

Export a note

Copy an existing note to a file outside your notes directory:

$ sonse export alpha some-file.txt

Import a note

Copy a file outside your notes directory to a new or existing note:

$ sonse import alpha some-file.txt

Use -e/--edit to edit the note after importing:

$ sonse import alpha some-file.txt --edit

Contribution

If you find any bugs or have any suggestions, please add them to the issue tracker with as much detail as possible. Thank you!

You might also like...
TileDB-Py is a Python interface to the TileDB Storage Engine.
TileDB-Py is a Python interface to the TileDB Storage Engine.

TileDB-Py TileDB-Py is a Python interface to the TileDB Storage Engine. Quick Links Installation Build Instructions TileDB Documentation Python API re

A command line simple note taking app

Why yet another note taking program? note was designed with a very specific target in mind: me, and my 2354 scraps of paper. It runs from the command

Markup for note taking
Markup for note taking

Subtext: markup for note-taking Subtext is a text-based, block-oriented hypertext format. It is designed with note-taking in mind. It has a simple, pe

A simple note taker CLI program written in python
A simple note taker CLI program written in python

note-taker A simple note taker program written in python This allows you to snip your todo's, notes, and your tasks easily without extra charges Requi

SongFinder Bot helps you to find song name by recognising via voice note or instagram reels shared link.

SongFinder V1.1 SongFinder to detect songs name by just sending voice note or instagram reels links to your telegram bot. FFMPEG must be installed on

Platform Tree for Xiaomi Redmi Note 7/7S (lavender)
Platform Tree for Xiaomi Redmi Note 7/7S (lavender)

The Xiaomi Redmi Note 7 (codenamed "lavender") is a mid-range smartphone from Xiaomi announced in January 2019. Device specifications Device Xiaomi Re

🌟 Python algorithm team note for programming competition or coding test

🌟 Python algorithm team note for programming competition or coding test

Reverse the infix string. Note that while reversing the string you must interchange left and right parentheses

Reverse the infix string. Note that while reversing the string you must interchange left and right parentheses. Obtain the postfix expression of the infix expression Step 1.Reverse the postfix expression to get the prefix expression

A simple, fantasy and fast note taking program.
A simple, fantasy and fast note taking program.

notes A simple, fantasy and fast note taking program Installation This program supposed to run in linux and may have some bugs on windows or any other

JoplinPdf2Images - Converts a PDF to images in Joplin and adds it to the specified note as a printout

joplinPdf2Images Converts a PDF to images in Joplin and adds it to the specified

Python client for ETAPI of Trilium Note.

Python client for ETAPI of Trilium Note.

An automated scanning, enumeration, and note taking tool for pentesters
An automated scanning, enumeration, and note taking tool for pentesters

EV1L J3ST3R An automated scanning, enumeration, and note taking tool Created by S1n1st3r Meant to help easily go through Hack The Box machine and TryH

The algorithm performs a simple user registration (Name, CPF, E-mail and Telephone) in an Amazon RDS database and also performs the storage, training and facial recognition of the user's face to identify the users already registered in the system in a next time the user is seen.
The command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage

B2 Command Line Tool The command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage. This program provides command-line a

Synchronize local directories with Tahoe-LAFS storage grids
Synchronize local directories with Tahoe-LAFS storage grids

Gridsync Gridsync aims to provide a cross-platform, graphical user interface for Tahoe-LAFS, the Least Authority File Store. It is intended to simplif

a full featured file system for online data storage

S3QL S3QL is a file system that stores all its data online using storage services like Google Storage, Amazon S3, or OpenStack. S3QL effectively provi

Project Aquarium is a SUSE-sponsored open source project aiming at becoming an easy to use, rock solid storage appliance based on Ceph.

Project Aquarium Project Aquarium is a SUSE-sponsored open source project aiming at becoming an easy to use, rock solid storage appliance based on Cep

Nerd-Storage is a simple web server for sharing files on the local network.
Nerd-Storage is a simple web server for sharing files on the local network.

Nerd-Storage is a simple web server for sharing files on the local network. It supports the download of files and directories, the upload of multiple files at once, making a directory, updates and deletions.

This is a junk file creator tool which creates junk files in Internal Storage

This is a junk file creator tool which creates junk files in Internal Storage

Releases(1.0.2)
  • 1.0.2(May 8, 2022)

  • 1.0.1(May 7, 2022)

    Version 1.0.1 is a patch version of Sonse. It fixes one bug and cleans up some non-user-facing code.

    Fixed

    • Fixed disambiguation not returning exact match on multiples.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(May 7, 2022)

    Version 1.0.0 is the first major version of Sonse. The app has been rewritten as a flat-file system (instead of using zipfile archives) and changes have been made to certain commands.

    Changed

    • Rewrote app as flat-file system.

    Removed

    • Removed --reverse and --sort options from list command.
    • Removed automatic note creation from import command.
    Source code(tar.gz)
    Source code(zip)
  • 0.3.1(Apr 18, 2022)

    Version 0.3.1 is a patch version of Sonse. It adds one new command and updates a lot of under-the-hood code. See the readme for installation instructions.

    Added

    • New command: copy.
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Apr 17, 2022)

    Version 0.3.0 is the next minor release of Sonse. It adds note name disambiguation and cleans up a lot of command code.

    Added

    • Note name disambiguation in all commands.

    Changed

    • list now uses prefixes instead of glob patterns.

    Removed

    • Unnecessary command repl.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.1(Apr 15, 2022)

    Version 0.2.1 is a patch version of Sonse. It adds a command option and Github Action workflows.

    Changed

    • import command now has --edit option.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Apr 15, 2022)

    Version 0.2.0 is a minor release of Sonse. It adds two new commands and some new command options.

    Added

    • New commands: delete, move.

    Changed

    • create command now has --edit option.
    • list command now has --reverse and --sort options.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.1(Apr 15, 2022)

  • 0.1.0(Apr 15, 2022)

    Version 0.1.0 is the first actual release of Sonse. It contains the initial codebase and basic commands.

    Added

    • Basic codebase and tests.
    • New commands: create, edit, export, import, list, read.
    Source code(tar.gz)
    Source code(zip)
  • 0.0.0(Apr 15, 2022)

Owner
Stephen Malone
I like ATLA, BLTs, and CRUD.
Stephen Malone
Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Charles Tapley Hoyt 11 Feb 11, 2022
Tool for HackMyVM platform

HMV-cli It is a tool for the HackMyVM platform. With this tool you will be able to see the machines you have pending, filter by difficulty, download d

bitc0de 11 Sep 19, 2022
dsub is a command-line tool that makes it easy to submit and run batch scripts in the cloud.

Open-source command-line tool to run batch computing tasks and workflows on backend services such as Google Cloud.

Data Biosphere 233 Jan 01, 2023
🐾 Get the nftables counters easier to read

nft-stats Get the nftables counters easier to read It kind of hard to read the output of nft list ruleset so there is a small program parcising the ou

7 Oct 08, 2022
img-proof (IPA) provides a command line utility to test images in the Public Cloud

overview img-proof (IPA) provides a command line utility to test images in the Public Cloud (AWS, Azure, GCE, etc.). With img-proof you can now test c

13 Jan 07, 2022
Convert ACSM files to DRM-free EPUB files with one command on Linux

Knock Convert ACSM files to DRM-free EPUB files using one command. This software does not utilize Adobe Digital Editions nor Wine. It is completely fr

Benton Edmondson 622 Dec 09, 2022
Password manager for the CLI simps.

CLI Password Manager Password manager for the CLI simps. Free software: MIT license

1 Dec 30, 2021
Arithmos cipher on CLI based

Arithmos Cipher CLI This is the CLI version of Arithmos Cipher. Install pip inst

LyQuid :3 1 Jan 16, 2022
Play videos in the terminal.

Termvideo Play videos in the terminal (stdout). python main.py /path/to/video.mp4 Terminal size: -x output_width, -y output_height. Default autodetect

Patrick 11 Jun 13, 2022
py-image-dedup is a tool to sort out or remove duplicates within a photo library

py-image-dedup is a tool to sort out or remove duplicates within a photo library. Unlike most other solutions, py-image-dedup intentionally uses an approximate image comparison to also detect duplica

Markus Ressel 96 Jan 02, 2023
Aurornis - The Command Line Program Test Helper

Aurornis - The Command Line Program Test Helper Aurornis is a small, yet powerful library designed to help testing command line programs. The name is

Jérôme Deuchnord 1 Mar 08, 2022
Stream comments, submissions from subreddits and users across reddit right in your terminal

reddit_from_terminal stream comments, submissions from subreddits and users across reddit right in your terminal Alert! : Can't watch media contents(p

Pritam Dhara 2 Dec 30, 2021
Tmux Based Dropdown Dashboard For Python

sextans It's a private configuration and an ongoing experiment while I use Archlinux. A simple drop down dashboard based on tmux. It includes followin

秋葉 4 Dec 22, 2021
A minimal and ridiculously good looking command-line-interface toolkit.

Pyceo Pyceo is a Python package for creating beautiful, composable, and ridiculously good looking command-line-user-interfaces without having to write

Juan-Pablo Scaletti 21 Mar 25, 2022
Proman is a simple tool for managing projects through cli.

proman proman is a project manager. It helps you manage your projects from a terminal. The features are listed below. Installation Step 1: Download or

Arjun Somvanshi 2 Dec 06, 2021
Juniper Command System is a Micro CLI Tool that allows you to manage your files, launch applications, as well as providing extra tools for OS Management.

Juniper Command System is a Micro CLI Tool that allows you to manage your files, launch applications, as well as providing extra tools for OS Management.

Juan Carlos Juárez 1 Feb 02, 2022
Postgres CLI with autocompletion and syntax highlighting

A REPL for Postgres This is a postgres client that does auto-completion and syntax highlighting. Home Page: http://pgcli.com MySQL Equivalent: http://

dbcli 10.8k Jan 02, 2023
CLI for SQLite Databases with auto-completion and syntax highlighting

litecli Docs A command-line client for SQLite databases that has auto-completion and syntax highlighting. Installation If you already know how to inst

dbcli 1.8k Dec 31, 2022
A Python package for Misty II development

Misty2py Misty2py is a Python 3 package for Misty II development using Misty's REST API. Read the full documentation here! Installation Poetry To inst

Chris Scarred 1 Mar 07, 2022
Command line tool for interacting and testing warehouse components

Warehouse debug CLI Example usage for Zumo debugging See all messages queued and handled. Enable by compiling the zumo-controller with -DDEBUG_MODE_EN

1 Jan 03, 2022