Skip to main content

Simple cli that creates and manages text-based journals

Project description

🖋️ Pen - your command line diary

PyPI github build

Pen allows you to quickly jot down your thoughts right from the command line. All your journals will be stored as text, which means you can simply put them into cloud storage or on a USB flash drive and access them from anywhere, even without Pen itself. It takes a lot of inspiration from jrnl and tries to create a similar interface that is just as easy to use, but Pen is rewritten from the ground up in modern Python, aiming for a more stable and enhanced experience. Currently, Pen is still in an early stage, but some nice additional features are planned. If you want to try Pen out now, don't be afraid! If you run into any problems or bugs, please be sure to create an issue describing your problem.

Windows is currently not supported. If you want to use Pen on Windows, you can leave a request for Windows support on the the issue tracker or upvote an existing thread. Pen does work and is being tested on the WSL, though.

Journaling

Writing about your daily routine has been linked to therapeutic health benefits like stress reduction [1] [2]. For years, practitioners have used logs, questionnaires, journals and other writing forms to help people heal from stresses and traumas. It's not necessary to journal every single day, because it should not become a burden. However, when you feel like it would help get things off your mind, when you feel stressed by something or when you just want to go through an experience in your head again before forgetting too many details, writing it down can be a very relieving and helpful experience.

Pen is also great just as a simple note-keeping app. You could for example create a journal called 'code' where you briefly describe the cool new library you learnt about today so you can go back to it later, or to describe how you solved a difficult programming problem.

You can also use Pen to track progress in your work, in the gym or on the race track. Having a place to note your achievements, personal records or how much weight you lost over time is a great motivator, as you can always look back and see how fast you progressed.

Installing Pen

It is recommend to install Pen using pipx:

pipx install pen

If you don't want to use pipx, you can also use pip:

pip install --user pen

To upgrade, either use pipx upgrade pen or pip install --user --upgrade pen depending on how you installed Pen.

Using Pen

To write your first entry, just type pen into your command line and hit enter! If you are transitioning from jrnl, you can instead import your old jrnls using pen import /path/to/journals/*. If you haven't run Pen on this machine before, a short setup dialog will start, asking about your preferences like which editor you want to use. Pen will always try to infer these settings from your environment variables and only ask when necessary. You can always change the way Pen behaves by changing its configuration which is by default located at $HOME/.config/pen. You can also change the config file's location by exporting the PEN_HOME environment variable before running pen. This is especially useful if you want to sync your config using Dropbox, Google Cloud or a different cloud storage service.

(Planned) Features

To see all currently supported commands, type pen --help. To see more information about a specific command type pen <command> --help.

The following list also gives a broad overview over the current features of Pen. Implemented features are marked with a ✔. The list is ordered by their planned implementation order, but the order may change at any time.

Feature ? Note
Fully text based
Uses your OS settings when possible
(from environment variables)
$EDITOR, $VISUAL, $LC_TIME
and more!
Multiple Journals One can be set as default
Writing/Deleting/Editing entries
Journals as single file
Plugin System ✔* (*still being extended)
based on pluggy
Extendable Import System supports imports from jrnl
Filtering by date, tag, starred
Fast Search
Tags
Star entries (favourite)
git sync Can use cloud
to sync (Dropbox, etc.)
Journals as hierarchical directory
Encryption
Custom Prompts
Store in custom file formats ✔ (1) plugins can extend this!
currently implemented:
Markdown
Imports from other sources None planned
plugins possible

References

[1]: Smyth, Joshua M. (1999). Written emotional expression: Effect sizes, outcome types, and moderating variables.

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

pen-0.1.0a4.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

pen-0.1.0a4-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file pen-0.1.0a4.tar.gz.

File metadata

  • Download URL: pen-0.1.0a4.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.5

File hashes

Hashes for pen-0.1.0a4.tar.gz
Algorithm Hash digest
SHA256 af2c53a309d0ae190a8394cbf235a632bc5e408567d59f3f10a588314ca92e69
MD5 0ae565ec6db6010fdbb7c54298841d63
BLAKE2b-256 01196ea4d9f42161aa2c3d3ba05923fdf8e3eea4e75367f2e7b4a2bd496e3e5e

See more details on using hashes here.

File details

Details for the file pen-0.1.0a4-py3-none-any.whl.

File metadata

  • Download URL: pen-0.1.0a4-py3-none-any.whl
  • Upload date:
  • Size: 24.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.5

File hashes

Hashes for pen-0.1.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 4c7164bae5fa89cb8ec539e29fd1cf5487bd9878af25e510d8ebf85043f9f28f
MD5 b7648ed99989da66319bc2c38d5d89bc
BLAKE2b-256 d2d661de4a612e9d74e5cee9f074f19ab0b30bbb87c55a2accd91979c734dd3c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page