All Projects → posce → Posce

posce / Posce

Licence: other
A note-taking toolkit for your command line.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Posce

Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+3633.98%)
Mutual labels:  note-taking, cli, notes
Stup
Daily notes in the terminal 🐧
Stars: ✭ 340 (+230.1%)
Mutual labels:  note-taking, cli, notes
Jrnl
Collect your thoughts and notes without leaving the command line.
Stars: ✭ 5,126 (+4876.7%)
Mutual labels:  note-taking, cli, notes
Takenote
TakeNote is a note-taking app for the web. You can use the demo app at takenote.dev. It is a static site without a database and does not sync your notes to the cloud. The notes are persisted temporarily in local storage, but you can download all notes in markdown format as a zip.
Stars: ✭ 5,180 (+4929.13%)
Mutual labels:  note-taking, notes
Lifelong Learning
✅ ✅ ✅ A massive repo filled with notes on everything from coding to philosophy to psychology to marketing to product
Stars: ✭ 297 (+188.35%)
Mutual labels:  note-taking, notes
Issue Tracker Zh
中文GitHub反馈区
Stars: ✭ 267 (+159.22%)
Mutual labels:  note-taking, notes
notes-app-cli
A command line interface for Notes.app on macOS.
Stars: ✭ 32 (-68.93%)
Mutual labels:  notes, note-taking
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+753.4%)
Mutual labels:  note-taking, notes
Vscodenotebook
📝 Use VS Code as a reliable note-taking/journal application
Stars: ✭ 584 (+466.99%)
Mutual labels:  note-taking, notes
Notes
📝 Simple delightful note taking, with more unix and less lock-in.
Stars: ✭ 939 (+811.65%)
Mutual labels:  note-taking, notes
Notemarks
A git based labeling app to manage notes, documents, and bookmarks.
Stars: ✭ 61 (-40.78%)
Mutual labels:  note-taking, notes
Deer
✏️A modern, fast, beautiful note taking app, built on Electron and React
Stars: ✭ 267 (+159.22%)
Mutual labels:  note-taking, notes
Notational Fzf Vim
Notational velocity for vim.
Stars: ✭ 975 (+846.6%)
Mutual labels:  note-taking, notes
Notes
A zero dependency shell script that makes it really simple to manage your text notes.
Stars: ✭ 62 (-39.81%)
Mutual labels:  note-taking, notes
Piece
📜 Less equals more. A neat and elegant app for temporary note-taking.
Stars: ✭ 86 (-16.5%)
Mutual labels:  note-taking, notes
Instanote
Note keeping done in PHP 5.2 and JSON
Stars: ✭ 11 (-89.32%)
Mutual labels:  note-taking, notes
flawesome
Productivity Tool
Stars: ✭ 56 (-45.63%)
Mutual labels:  notes, note-taking
uwunote
Kinda like Windows 10 Sticky notes but subjectively better - Written in go and GTK3+
Stars: ✭ 16 (-84.47%)
Mutual labels:  notes, note-taking
Geekbook
G33KB00K3 - fun to read & fun to write -- 🤓 eXtreme eXtendable note taking system for nerds/geeks (including scientists!) docs: http://geekbook.rtfd.io = beautiful html generator of your markdown-based notes
Stars: ✭ 31 (-69.9%)
Mutual labels:  note-taking, notes
Gitjournal
Mobile first Note Taking integrated with Git
Stars: ✭ 1,138 (+1004.85%)
Mutual labels:  note-taking, notes

Posce

Posce (pronounced posh·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.

Table of Contents

Installation

Posce required Python 3.8 or higher. To install, you can:

Configuration

Posce 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).

Usage

Notes 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.txt

Then your notes will look like this:

$ posce list
alpha
bravo
charlie

$ posce show c
Charliiiiiiieeeeeee!

And you can abbreviate commands like this:

$ posce l
alpha
bravo
charlie

$ posce s c
Charliiiiiiieeeeeee!

I recommend aliasing posce to p for maximum brevity.

Commands

clip NAME

Copy the existing note NAME to the clipboard.

$ posce clip alpha
# Copy "alpha.txt" to clipboard.

copy NAME DEST

Copy the existing note NAME to the new note DEST.

$ posce copy alpha delta
# Copy "alpha.txt" to new file "delta.txt".

drop NAME

Move the existing note NAME to the system trash/recycle bin.

$ posce drop alpha
# Move "alpha.txt" to trash/recycle bin.

dump FILE [-l]

Create a zip archive of the notes directory at FILE.

  • -l --level INT: Compression level from 0 to 9 (default 5).
$ posce dump notes.zip
# Create zip archive "notes.zip".

$ posce dump notes.zip --level 9
# Create "notes.zip" with maximum compression.

edit NAME [-e]

Edit the existing note NAME in your default editor.

  • e --editor PROG: Open the note in the program PROG instead.
$ posce edit alpha
# Open "alpha.txt" in default "txt" editor.

$ posce edit alpha --editor notepad
# Open "alpha.txt" in "notepad".

find TERM [-r]

List all notes containing the substring or regular expression TERM.

  • r --regex: Use search term as regex.
$ posce find "Charliiiiiiieeeeeee!"
charlie

$ posce find "Charli{7}e{7}!" --regex
charlie

list [GLOB] [-rs]

List all notes with names matching GLOB (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.
$ posce list
alpha
bravo
charlie

$ posce list al*
alpha

$ posce list --reverse --sort name
charlie
bravo
alpha

make NAME [-f]

Create the new empty note NAME.

  • -f --file FILE: Copy the note's contents from a file.
$ posce make delta
# Create empty file "delta.txt" in notes directory.

$ posce make delta --file ~/temp.txt
# Create "delta.txt" with contents from "~/temp.txt".

move NAME DEST

Move the existing note NAME to the new note DEST.

$ posce move alpha delta
# Move "alpha.txt" to "delta.txt".

show NAME [-w]

Print the contents of the existing note NAME.

  • -w --wrap COLS: Wrap text to this width.
$ posce show alpha
This is the note Alpha!

$ posce show bravo --wrap 40
This is the much longer note Bravo, and
will be wrapped across two lines.

wget NAME URL

Download a URL into the existing note NAME.

$ posce wget alpha example.com
# Download "https://example.com" and write contents to "alpha.txt".

F.A.Q.

Why use this instead of ls/grep/wget/etc?

Posce is one program using one codebase on one directory. 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 can use disambiguated names and get incredible brevity when entering commands.

Why environment variables? Why not a config file?

The last thing you or I need is another configuration 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 will never, ever, under any circumstances implement file deletion. If you want to delete your files, do it yourself.

Contribution

Bugs, suggestions, and feature requests are welcome! Please add them to the issue tracker with an appropriate label.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].