Installation

No OCaml installation required.

Linux (x86_64)

Using curl:

curl -L \
  https://codeberg.org/duras/duras/releases/download/v2.0.0/duras-linux-amd64 \
  -o ~/.local/bin/duras &&
chmod +x ~/.local/bin/duras

Using wget:

wget -O ~/.local/bin/duras \
  https://codeberg.org/duras/duras/releases/download/v2.0.0/duras-linux-amd64 &&
chmod +x ~/.local/bin/duras

macOS (Apple Silicon)

curl -L \
  https://codeberg.org/duras/duras/releases/download/v2.0.0/duras-macos-arm64 \
  -o /usr/local/bin/duras &&
chmod +x /usr/local/bin/duras

macOS (Intel)

curl -L \
  https://codeberg.org/duras/duras/releases/download/v2.0.0/duras-macos-amd64 \
  -o /usr/local/bin/duras &&
chmod +x /usr/local/bin/duras

Verify

duras --version

If ~/.local/bin is not in your PATH, add this to your shell configuration file (~/.bashrc, ~/.zshrc, etc.):

export PATH="$HOME/.local/bin:$PATH"

Available binaries

File Platform
duras-linux-amd64 Linux x86_64 (Debian 12+, Ubuntu 22.04+, Fedora, Arch)
duras-macos-arm64 macOS Apple Silicon (M1 to M5)
duras-macos-amd64 macOS Intel

macOS note

macOS may block unsigned binaries downloaded from the internet. If a security warning appears, remove the quarantine attribute:

xattr -d com.apple.quarantine /usr/local/bin/duras

Build from source

Requires OCaml (4.14 or later) and dune (3.0 or later).

On Debian or Ubuntu:

sudo apt install ocaml ocaml-dune

On macOS with Homebrew:

brew install ocaml dune

Then:

git clone https://codeberg.org/duras/duras.git
cd duras
make build
make install

This installs duras to /usr/local/bin/duras and the man page to /usr/local/share/man/man1/duras.1.

To install to your home directory instead:

make install PREFIX=~/.local

OpenBSD

doas pkg_add duras

Verify

duras --version
duras today

Notes directory

By default, notes are stored in ~/Documents/Notes. To use a different location, set the DURAS_DIR environment variable:

export DURAS_DIR=~/notes

Add this to your shell configuration file to make it permanent.

Editor

duras opens notes in the editor set by the EDITOR environment variable. If EDITOR is not set, it tries nano, vi, and ed in that order.

export EDITOR=vim