Convert Figma logo to code with AI

jrnl-org logojrnl

Collect your thoughts and notes without leaving the command line.

6,440
520
6,440
140

Top Related Projects

8,734

Personal Wiki for Vim

5,241

Think fearlessly with end-to-end encrypted notes and files. For issues, visit https://standardnotes.com/forum or https://standardnotes.com/help.

31,960

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: http://trello.com/b/8txSM12G/roadmap

Community plugins list, theme list, and releases of Obsidian.

26,755

Build your personal knowledge base with Trilium Notes

2,744

A simple command line notebook for programmers

Quick Overview

jrnl is a simple command-line journaling application. It allows users to quickly create, search, and manage journal entries directly from the terminal. jrnl is designed to be lightweight, flexible, and easy to use, making it an ideal tool for developers and command-line enthusiasts who want to maintain a digital journal.

Pros

  • Simple and intuitive command-line interface
  • Supports encryption for privacy
  • Flexible configuration options (multiple journals, custom date formats)
  • Exports to various formats (JSON, Markdown, TXT)

Cons

  • Limited rich text formatting options
  • No built-in synchronization across devices
  • Lacks a graphical user interface for non-technical users
  • May require some initial setup and configuration

Code Examples

  1. Creating a new journal entry:
jrnl Today I learned about the jrnl application. It's pretty cool!
  1. Searching for entries containing a specific word:
jrnl @search "python"
  1. Viewing entries from a specific date range:
jrnl -from "last sunday" -to "today"
  1. Exporting journal to Markdown format:
jrnl --export markdown

Getting Started

To get started with jrnl, follow these steps:

  1. Install jrnl using pip:

    pip install jrnl
    
  2. Create your first entry:

    jrnl My first journal entry with jrnl!
    
  3. Configure jrnl (optional):

    jrnl --config
    
  4. View your journal:

    jrnl -n 5
    

This will display your last 5 entries. Explore more features using jrnl --help.

Competitor Comparisons

8,734

Personal Wiki for Vim

Pros of vimwiki

  • Integrated with Vim, providing a familiar environment for Vim users
  • Supports complex wiki structures with interlinking and nested pages
  • Offers powerful text formatting and organization features within Vim

Cons of vimwiki

  • Steeper learning curve, especially for those not familiar with Vim
  • Limited portability outside of the Vim ecosystem
  • Requires more setup and configuration compared to simpler journaling tools

Code comparison

vimwiki:

:VimwikiIndex
:VimwikiFollowLink
:VimwikiGoBackLink
:VimwikiDiaryIndex
:VimwikiMakeDiaryNote

jrnl:

jrnl "This is a new entry"
jrnl -n 5
jrnl @tag
jrnl -from "last week"
jrnl --edit

Summary

vimwiki is a powerful wiki system integrated into Vim, offering extensive organization and linking capabilities. It's ideal for users comfortable with Vim and seeking a comprehensive personal knowledge management system. jrnl, on the other hand, is a simpler command-line journaling tool focused on quick entry and retrieval of journal entries. While vimwiki provides more advanced features within Vim, jrnl offers greater simplicity and ease of use for basic journaling needs.

5,241

Think fearlessly with end-to-end encrypted notes and files. For issues, visit https://standardnotes.com/forum or https://standardnotes.com/help.

Pros of Standard Notes

  • Cross-platform support with web, desktop, and mobile apps
  • End-to-end encryption for enhanced security and privacy
  • Rich text editing and support for various note types (text, lists, spreadsheets)

Cons of Standard Notes

  • More complex setup and usage compared to jrnl's simplicity
  • Requires an account and internet connection for syncing
  • Larger codebase and potentially steeper learning curve for contributors

Code Comparison

Standard Notes (TypeScript):

export function decryptString(base64CipherText: string, key: string): string {
  const cipherText = Base64.decode(base64CipherText);
  const iv = cipherText.slice(0, 16);
  const encrypted = cipherText.slice(16);
  const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
  return decipher.update(encrypted, 'binary', 'utf8') + decipher.final('utf8');
}

jrnl (Python):

def decrypt(cipher, passphrase):
    """Decrypts a cipher using a passphrase."""
    salt = cipher[:8]
    key, iv = get_key_and_iv(passphrase, salt)
    cipher = cipher[8:]
    return unpad_and_decrypt(cipher, key, iv)

Both projects implement encryption/decryption functions, but Standard Notes uses TypeScript and Node.js crypto libraries, while jrnl uses Python and custom cryptography functions.

31,960

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: http://trello.com/b/8txSM12G/roadmap

Pros of Logseq

  • Rich graphical user interface with a modern, interactive design
  • Supports bi-directional linking and graph visualization
  • Offers offline-first functionality and local-first data storage

Cons of Logseq

  • Steeper learning curve due to more complex features
  • Requires more system resources compared to lightweight CLI tools
  • Less suitable for quick, simple journal entries

Code Comparison

Logseq (ClojureScript):

(defn get-journal-day
  [journal-name]
  (let [date (date/parse journal-name)]
    (when (and date (date/valid? date))
      (let [fmt (get-date-formatter (state/get-date-formatter))]
        (date/format date fmt)))))

jrnl (Python):

def parse_date(date_string):
    try:
        return datetime.strptime(date_string, "%Y-%m-%d").date()
    except ValueError:
        return None

Both projects handle date parsing, but Logseq's implementation is more complex due to its advanced features and customization options, while jrnl's approach is simpler and more straightforward.

Community plugins list, theme list, and releases of Obsidian.

Pros of Obsidian-releases

  • Rich graphical user interface with customizable themes and plugins
  • Supports linking between notes and visualization of connections
  • Offers local storage and optional sync across devices

Cons of Obsidian-releases

  • Steeper learning curve due to more complex features
  • Requires installation and setup, not as lightweight as jrnl
  • Less suitable for quick command-line journaling

Code Comparison

jrnl:

from jrnl import Journal

journal = Journal.open_journal("default")
journal.new_entry("Today was a good day.")

Obsidian (no direct coding, uses Markdown):

# Journal Entry
[[2023-05-10]]
Today was a good day.

Summary

Obsidian-releases offers a feature-rich, graphical note-taking experience with powerful organization tools, while jrnl provides a simpler, command-line based journaling solution. Obsidian excels in creating complex knowledge bases with interconnected notes, whereas jrnl is ideal for quick, text-based journal entries. The choice between them depends on the user's preference for simplicity versus advanced features, and command-line versus graphical interfaces.

26,755

Build your personal knowledge base with Trilium Notes

Pros of Trilium

  • Rich text editing with support for images, tables, and code blocks
  • Hierarchical note organization with powerful tagging and search capabilities
  • Self-hosted solution with synchronization across devices

Cons of Trilium

  • More complex setup and maintenance compared to jrnl's simplicity
  • Steeper learning curve due to its extensive features
  • Requires a graphical interface, unlike jrnl's command-line approach

Code Comparison

Trilium (JavaScript):

const note = await becca.createNote(parentNote, 'New note', 'This is the content');
note.setLabel('myLabel', 'myValue');
await note.save();

jrnl (Python):

journal.new_entry("This is a new entry", date=datetime.now())
journal.write()

Trilium offers a more feature-rich API for note manipulation, while jrnl focuses on simplicity and ease of use for basic journaling tasks.

2,744

A simple command line notebook for programmers

Pros of dnote

  • Web-based interface for easy access across devices
  • Supports collaboration and sharing notes with team members
  • Built-in encryption for enhanced security

Cons of dnote

  • More complex setup and maintenance (requires server)
  • Less focused on journaling, more general note-taking tool
  • Steeper learning curve for non-technical users

Code comparison

jrnl:

from jrnl import Journal

journal = Journal.open_journal("default")
journal.new_entry("Today was a great day!")

dnote:

package main

import "github.com/dnote/dnote/pkg/cli"

func main() {
    cli.Execute()
}

Key differences

  • jrnl is a command-line journaling tool, while dnote is a more comprehensive note-taking system
  • jrnl focuses on simplicity and ease of use, dnote offers more features but with added complexity
  • jrnl stores entries locally, dnote can sync across devices and supports collaboration
  • jrnl is written in Python, dnote is primarily written in Go
  • jrnl is better suited for personal journaling, dnote is more versatile for various note-taking needs

Both tools have their strengths, and the choice between them depends on individual preferences and requirements. jrnl is ideal for those who want a straightforward journaling experience, while dnote caters to users looking for a more feature-rich note-taking solution with collaboration capabilities.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

jrnl Testing Downloads Version Homebrew Gitter Changelog

To get help, submit an issue on GitHub.

jrnl is a simple journal application for the command line.

You can use it to easily create, search, and view journal entries. Journals are stored as human-readable plain text, and can also be encrypted using AES encryption.

In a Nutshell

To make a new entry, just enter

jrnl yesterday: Called in sick. Used the time to clean the house and write my
book.

yesterday: is interpreted by jrnl as a timestamp. Everything until the first sentence ending (either ., ?, or !) is interpreted as the title, and the rest as the body. In your journal file, the result will look like this:

[2012-03-29 09:00] Called in sick.
Used the time to clean the house and write my book.

If you just call jrnl, you will be prompted to compose your entry - but you can also configure jrnl to use your external editor.

For more information, please read the documentation.

Contributors

Maintainers

Our maintainers help keep the lights on for the project:

Please thank them if you like jrnl!

Code Contributors

This project is made with love by the many fabulous people who have contributed. jrnl couldn't exist without each and every one of you!

If you'd also like to help make jrnl better, please see our contributing documentation.

Financial Backers

Another way show support is through direct financial contributions. These funds go to covering our costs, and are a quick way to show your appreciation for jrnl.

Become a financial contributor and help us sustain our community.