package duras
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=c382e7da9ca02a1aa1ec151761793b741b399c1ef3a6df889e641440d8b9dc0c
sha512=ebdc955b2379a5e50b3e463968061488ef287f1e529098ecfb058a201d6c0039d581def3b99adbc27ab1574ab74deb5e83db56fedf204175959702f7d4341524
doc/README.html
duras
Daily notes as plain text files, with search and optional GPG encryption.
duras append "started work on new feature #project"
duras search project
duras showOne file per day:
~/Documents/Notes/YYYY/MM/YYYY-MM-DD.dnNo database. No index. No background processes. Writes are atomic. If duras is removed, the notes remain readable with any text editor.
duras is a standalone tool, but most effectively used together with duras.vim plugin that integrates the CLI directly into the ubiquitous text editor.
Install
Linux (x86_64)
Using curl:
curl -L \
https://codeberg.org/duras/duras/releases/download/v2.1.0/duras-linux-amd64 \
-o ~/.local/bin/duras &&
chmod +x ~/.local/bin/durasUsing wget:
wget -O ~/.local/bin/duras \
https://codeberg.org/duras/duras/releases/download/v2.1.0/duras-linux-amd64 &&
chmod +x ~/.local/bin/durasmacOS (Apple Silicon)
curl -L \
https://codeberg.org/duras/duras/releases/download/v2.1.0/duras-macos-arm64 \
-o /usr/local/bin/duras &&
chmod +x /usr/local/bin/durasmacOS (Intel)
curl -L \
https://codeberg.org/duras/duras/releases/download/v2.1.0/duras-macos-amd64 \
-o /usr/local/bin/duras &&
chmod +x /usr/local/bin/durasVerify
duras --versionIf ~/.local/bin is not in your PATH, add to your shell configuration file:
export PATH="$HOME/.local/bin:$PATH"Build from source
Requires OCaml and dune.
git clone https://codeberg.org/duras/duras.git
cd duras
make installmacOS note
macOS may block unsigned binaries. If a security warning appears:
xattr -d com.apple.quarantine /usr/local/bin/durasCommands
duras open today's note in $EDITOR
duras append [TEXT] append timestamped entry; reads stdin if no text
duras show [DATE] print note to stdout
duras list [-n N] list notes, newest first (default: 10)
duras search KEYWORD [-i] search notes for literal string
duras tags [TAG] list #tags with counts, or notes for a tag
duras stats counts, size, date range, streak
duras export [DIR] create tar.gz archive
duras audit validate notes directory structure
duras path [DATE] print absolute path of note file
duras dir print notes directory
duras today print today's date
duras echo [DATE] notes on this month-day across all years
duras near [DATE] notes within ±3 days
duras mv FROM TO move a note to a different dateGlobal flag: -c — use GPG-encrypted note (applies to open, append, show, path).
Dates
YYYY-MM-DD absolute
0 today
-1 yesterday
-7 one week agoEnvironment
Variable | Default | Purpose |
|---|---|---|
|
| Notes directory |
| nano, vi, or ed | Editor for |
| self | GPG recipient for |
Exit codes
Code | Meaning |
|---|---|
0 | Success |
1 | Generic error |
2 | Not found |
3 | Invalid input |
4 | External tool failure |
Documentation
man duras
duras --helpSpecification: spec/
Other implementations
- Python (maintained, PyPI): duras-python
- C (frozen at v1.1.4-c): c-frozen branch
See HISTORY.md for implementation history and benchmarks.
License
ISC. See LICENSE.