Package: posce
PoscePosce(pronouncedposhÂ·ee) is a note-taking toolkit for your command line. It takes a single directory of plaintext note files and lets you create, edit, manipulate, and organise them to your heart's content; all in a single unified interface.Seechanges.mdfor a complete changelog.Seelicense.mdfor licensing information.Table of ContentsInstallationConfigurationUsageCommandsclip NAMEcopy NAME DESTdrop NAMEdump FILE [-l]edit NAME [-e]find TERM [-r]list [GLOB] [-rs]make NAME [-f]move NAME DESTshow NAME [-w]wget NAME URLF.A.Q.ContributionInstallationPosce requiredPython 3.8or higher. To install, you can:Runpip install posce, orDownload and install thelatest release.ConfigurationPosce only requires you to set two environment variables:# The path to your notes directory.POSCE_DIR="~/notes"# The extension your note files use (no dot).POSCE_EXT="txt"On macOS and Linux, these variables can be set in your shell profile script, most likely$HOME/.profile. On Windows, you can set them in the "Environment Variables" subscreen in System Properties (search "environment" in your Start Menu).UsageNotes are always referred to by their pure name, no extension or filepath. In addition, notes and commands are disambiguated, which means you can write abbreviated versions and â€” if it's unambiguous â€” Posce will automatically expand them for you.For example, if you have a directory that looks like this:- ~/notes
    - alpha.txt
    - bravo.txt
    - charlie.txtThen your notes will look like this:$poscelist
alpha
bravo
charlie

$posceshowc
Charliiiiiiieeeeeee!And you can abbreviate commands like this:$poscel
alpha
bravo
charlie

$poscesc
Charliiiiiiieeeeeee!I recommend aliasingposcetopfor maximum brevity.Commandsclip NAMECopy the existing noteNAMEto the clipboard.$posceclipalpha# Copy "alpha.txt" to clipboard.copy NAME DESTCopy the existing noteNAMEto the new noteDEST.$poscecopyalphadelta# Copy "alpha.txt" to new file "delta.txt".drop NAMEMove the existing noteNAMEto the system trash/recycle bin.$poscedropalpha# Move "alpha.txt" to trash/recycle bin.dump FILE [-l]Create a zip archive of the notes directory atFILE.-l--level INT: Compression level from0to9(default5).$poscedumpnotes.zip# Create zip archive "notes.zip".$poscedumpnotes.zip--level9# Create "notes.zip" with maximum compression.edit NAME [-e]Edit the existing noteNAMEin your default editor.e--editor PROG: Open the note in the programPROGinstead.$posceeditalpha# Open "alpha.txt" in default "txt" editor.$posceeditalpha--editornotepad# Open "alpha.txt" in "notepad".find TERM [-r]List all notes containing the substring or regular expressionTERM.r--regex: Use search term as regex.$poscefind"Charliiiiiiieeeeeee!"charlie

$poscefind"Charli{7}e{7}!"--regex
charlielist [GLOB] [-rs]List all notes with names matchingGLOB(default*).-r--reverse: Reverse sorting order.-s--sort ATTR: Sort notes by one of these attributes:name: Note name, alphabetically.size: Note size in bytes.time: Note file modification time.$poscelist
alpha
bravo
charlie

$poscelistal*
alpha

$poscelist--reverse--sortname
charlie
bravo
alphamake NAME [-f]Create the new empty noteNAME.-f--file FILE: Copy the note's contents from a file.$poscemakedelta# Create empty file "delta.txt" in notes directory.$poscemakedelta--file~/temp.txt# Create "delta.txt" with contents from "~/temp.txt".move NAME DESTMove the existing noteNAMEto the new noteDEST.$poscemovealphadelta# Move "alpha.txt" to "delta.txt".show NAME [-w]Print the contents of the existing noteNAME.-w--wrap COLS: Wrap text to this width.$posceshowalpha
ThisisthenoteAlpha!

$posceshowbravo--wrap40ThisisthemuchlongernoteBravo,and
willbewrappedacrosstwolines.wget NAME URLDownload a URL into the existing noteNAME.$poscewgetalphaexample.com# Download "https://example.com" and write contents to "alpha.txt".F.A.Q.Why use this instead ofls/grep/wget/etc?Posce isoneprogram usingonecodebase ononedirectory. It's a very focused app, and that focus gives it a level of stability and uniformity I enjoy. Also, by using a single notes directory, you canuse disambiguated namesand get incredible brevity when entering commands.Why environment variables? Why not a config file?The last thing you or I need isanotherconfiguration file clogging up our home directories. Environment variables are simpler, lighter, and can be overriden much easier. Also, if Posce did use a config file, it would only have those two variables anyway!Why do I have to make a new note before editing it?It makes the code simpler and more robust, it allows for disambiguation of names, and I just prefer that kind of explicit operation.Why can I only trash notes and not delete them?I'm paranoid about data loss, which means Posce willnever, ever, under any circumstancesimplement file deletion. If you want to delete your files, do it yourself.ContributionBugs, suggestions, and feature requests are welcome! Please add them to theissue trackerwith an appropriate label.