Top Related Projects
Personal Wiki for Vim
Think fearlessly with end-to-end encrypted notes and files. For issues, visit https://standardnotes.com/forum or https://standardnotes.com/help.
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.
Build your personal knowledge base with Trilium Notes
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
- Creating a new journal entry:
jrnl Today I learned about the jrnl application. It's pretty cool!
- Searching for entries containing a specific word:
jrnl @search "python"
- Viewing entries from a specific date range:
jrnl -from "last sunday" -to "today"
- Exporting journal to Markdown format:
jrnl --export markdown
Getting Started
To get started with jrnl, follow these steps:
-
Install jrnl using pip:
pip install jrnl
-
Create your first entry:
jrnl My first journal entry with jrnl!
-
Configure jrnl (optional):
jrnl --config
-
View your journal:
jrnl -n 5
This will display your last 5 entries. Explore more features using jrnl --help
.
Competitor Comparisons
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.
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
jrnl
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:
- Jonathan Wren (wren)
- Micah Ellison (micahellison)
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.
Top Related Projects
Personal Wiki for Vim
Think fearlessly with end-to-end encrypted notes and files. For issues, visit https://standardnotes.com/forum or https://standardnotes.com/help.
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.
Build your personal knowledge base with Trilium Notes
A simple command line notebook for programmers
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot