Your journal app if you live in a terminal
TUI-Journal is a terminal-based application written in Rust that allows you to write and manage your journal/notes from within the comfort of your terminal. It provides a simple and efficient interface for creating and organizing your thoughts, ideas, and reflections. TUI-Journal supports three local back-ends: plain-text JSON, SQLite, and an iCalendar VJOURNAL directory.
Before opening a PR, please read the Contribution and AI Policy.
Fuzzy Finder
VJOURNAL files.VJOURNAL directory back-end for use with external CalDAV sync clients.Grab the most recent pre-built binaries for your platform from the Releases page, or utilize the available package managers.
On Arch Linux, you can install TUI-Journal by using pacman:
pacman -S tui-journalTUI-Journal is available for Alpine Edge. It can be installed via apk after enabling the testing repository.
apk add tui-journalOn FreeBSD, you can install TUI-Journal by using pkg:
pkg install -y tui-journalOn NetBSD a pre-compiled binary built with default features is available from the official repositories. To install it, simply run:
pkgin install tui-journalTUI-Journal is available on the Nix package manager. You can install it using the following commands:
# On NixOS:
nix-env -iA nixos.tui-journal
# On Non NixOS:
nix-env -iA nixpkgs.tui-journalFor more information, visit the TUI-Journal package page on Nix.
For macOS and Linux users, TUI-Journal can be installed via Homebrew using a direct installation method:
brew install AmmarAbouZor/homebrew-tui-journal/tui-journalEnsure you have Rust installed on your system.
To install TUI-Journal with the default JSON, SQLite, and VJOURNAL back-ends, you can use cargo to install directly from crates.io:
cargo install tui-journal --lockedTo use the current nightly version, you can install it directly from the GitHub repository
cargo install --git https://github.com/AmmarAbouZor/tui-journalYou can choose to install TUI-Journal with specific features enabled or disabled by customizing the cargo installation command. To install TUI-Journal with only the JSON back-end feature, use the following command:
cargo install tui-journal --locked --no-default-features --features jsonTo install TUI-Journal with only the SQLite back-end feature, use the following command:
cargo install tui-journal --locked --no-default-features --features sqliteTo install TUI-Journal with only the VJOURNAL back-end feature, use the following command:
cargo install tui-journal --locked --no-default-features --features vjournalOnce installed, you can run TUI-Journal by typing tjournal in your terminal:
$ tjournalTo view the available arguments and commands, you can use the --help or -h flag:
…The configuration for TUI-Journal can be found in the config.toml file located in the configuration folder within the TUI-Journal directory.
Here is a sample of the settings in the config.toml file:
…The VJOURNAL back-end stores journal entries as iCalendar .ics files in the configured directory. To use it with CalDAV, point the directory to one managed by an external synchronization client. TUI-Journal does not connect to a CalDAV server or monitor external file changes while running, so restart it after the directory is changed externally.
Please refer to the Themes Page for a detailed guide on customizing colors and styles within the app.
For detailed information about the TUI Journal app, including usage guide, keymaps, and configuration details, please refer to the Wiki.
TUI-Journal would not have been possible without the following open-source crates:
tui-rs and its revival ratatui: TUI-Journal utilizes the tui-rs and ratatui crates, which provide a framework for building terminal user interfaces in Rust. They offer a wide range of components and utilities to create interactive and responsive TUI applications.
tui-texteditor: TUI-Journal leverages the tui-texteditor crate, which offers a text editor widget specifically designed for terminal-based applications. It provides functionalities such as text manipulation, cursor movement, and scrolling within the TUI environment.
sqlx: TUI-Journal benefits from the sqlx crate, which is a Rust library for interacting with databases. It enables seamless integration with SQLite, allowing TUI-Journal to store journal entries and notes in a reliable and efficient manner.
These crates have greatly contributed to the development of TUI-Journal, and the project extends its gratitude to the maintainers and contributors of these fantastic open-source libraries.
Thank you for considering contributing to TUI-Journal. Your support is highly appreciated!
In the age of powerful AI agents, we need to specify clear rules for contributions in this repository to save my time and yours:
No open issues yet, or sync has not completed.