eden

module
v0.0.0-...-432af0c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 15, 2026 License: Apache-2.0

README

eden

eden is a command line tool for creating and manipulating daily log notes. It started life as a series of different bash script that did various tasks, but have been brought together as one tool.

Enjoy using this awesome tool!

Functionality

Adding an entry to the journal

A journal is a database, or registry, of entries. An entry is like a line in a daily journal, that is date/time-stamped to the moment of creation. In its most basic form, an entry is just a line of text. Associated with the timestamp, that in itself could be considered useful. You can record what you are doing at any time of the day (when you are in the terminal, anyway), and then output a list of each entry for a particular day. That is the basic functionality we are going to go for first. Things like tags and stuff come later.

To add a new entry to the journal:

eden add "ENTRY"

The program will confirm that the entry was saved and that's it.

Deleting entries

Delete a single journal entry by ID:

eden delete ID

Delete an entire journal and all its entries:

eden journal delete NAME

Use --confirm to skip the confirmation prompt, or --dry-run to see what would be deleted without making changes.

Exporting and importing journals

Export a journal to a compressed archive (.tgz):

eden journal export NAME

Options:

  • -o, --output PATH: Specify output file path (default: NAME-YYYY-MM-DD.tgz)
  • -e, --encrypt: Encrypt the archive with GPG (will prompt for passphrase)
  • -p, --passphrase PASS: Provide passphrase for encryption
Encrypting individual entries

Use --encrypt when adding or editing entries to store them encrypted with GPG symmetric encryption:

eden add "ENTRY" --encrypt

You will be prompted for a passphrase when encrypting and decrypting entries. For legacy entries encrypted with a GPG key, leave the passphrase blank when prompted to use your keyring.

  • --keep-db: Keep journal in database after export (default: removes it)
  • --dry-run: Show export plan without executing

Import a journal from an archive:

eden journal import ARCHIVE

Options:

  • -j, --journal NAME: Specify journal name to create (default: from archive)
  • -p, --passphrase PASS: Provide passphrase for decryption (if encrypted)
  • --dry-run: Show import plan without executing

Archives are stored as tar.gz files containing one markdown file per day. Encrypted archives use GPG symmetric encryption. When importing a journal with a name that already exists, a unique name will be generated by appending -N (e.g., journal-1, journal-2).

Exporting entries by journal, search query, or date range

Export all entries from a specific journal:

eden export --journal NAME

Export entries matching a search query:

eden export "SEARCH_QUERY"

Options:

  • -f, --format FORMAT: Export format (markdown or text, default: markdown)
  • -o, --output PATH: Output file path (writes to stdout if not specified)
  • -j, --journal NAME: Filter by journal name (exports all entries if no query or date range specified)
Date range exports

Export all entries within a date range (entries are grouped by date in the output):

eden export --start START_DATE --end END_DATE

Date formats supported:

  • Specific day: eden export --start 2025-12-10 --end 2025-12-12
  • Full month: eden export --start 2025-12 --end 2025-12
  • Full year: eden export --start 2025 --end 2025

You can combine date range with a search query to filter entries:

eden export "meeting notes" --start 2025-12 --end 2025-12 --journal work

Options for date range exports:

  • -s, --start DATE: Start date (YYYY, YYYY-MM, or YYYY-MM-DD)
  • -e, --end DATE: End date (YYYY, YYYY-MM, or YYYY-MM-DD)

Examples:

# Export all entries from a specific journal
eden export --journal tech-tips --output tech-tips.md

# Export all entries for December 2025 to a file
eden export --start 2025-12 --end 2025-12 --output december-2025.md

# Export all entries for 2025
eden export --start 2025 --end 2025 --output 2025-journal.md

# Export entries matching "meeting" in December 2025
eden export meeting --start 2025-12 --end 2025-12

# Export entries from a specific journal for a date range
eden export --start 2025-12-01 --end 2025-12-31 --journal work
Exporting search results directly

Export search results to markdown or text format without using the export command:

eden search "QUERY" --export

Options:

  • -e, --export: Export to stdout in markdown format
  • -o, --output PATH: Export to file (automatically enables export mode)
  • --export-format FORMAT: Export format (markdown or text, default: markdown)

Examples:

# Export search results to stdout
eden search "meeting" --export

# Export search results to a file
eden search "project" --output notes.md

# Export in text format
eden search "standup" --export --export-format text

# Combine with date filters
eden search "standup" --since 2025-12 --until 2025-12 --output december-standups.md
Exporting entries by tag

Export all entries with a specific tag:

eden tag show TAG --export

Examples:

# Export all entries tagged "work" to stdout
eden tag show work --export

# Export to file in text format
eden tag show important --output important.txt --export-format text

Directories

Path Synopsis
cmd
eden command
internal
crypto
Package crypto provides encryption utilities for eden entries using GPG.
Package crypto provides encryption utilities for eden entries using GPG.
syncthing
Package syncthing provides a client for the Syncthing REST API to check file synchronization status before database operations.
Package syncthing provides a client for the Syncthing REST API to check file synchronization status before database operations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL