Command Line Interface (CLI)

Instructions for installing and using CLI with Day One

Note: The following information applies to Day One Mac 2.1.2 and later.


dayone2 – Command line interface for the Day One journaling application.


Use this to install the CLI tool (You only ever need to do this once, even for future versions):

sudo bash /Applications/Day\

Note: You may need to enter your macOS device login password.


The dayone2 tool provides a way to interact with your Day One journal file through the command line. It is typically used for custom import scripts and utilities to create a new entry. It can not be used to export data

dayone2 will only work properly if you have purchased the Day One application and have run it at least one time on your computer.

A command must always be specified. Supported command is new. The entry text is read from stdin.

Run dayone2 -h in Terminal for these instructions as well.


dayone2 [options] command


new [text] [text]

Creates new entry with optional text. Every text argument will be separated by a single space when placed into the new entry. If no text arguments are provided then standard input is used by default for the entry text. Use –no-stdin to override this behavior.


The options must come before the command (new). For example:

dayone2 --journal [journal name] --photos [photo1][photo2]-- new [text]


-p, –photos:

Path to one or more photo file(s). If desired you can use [{photo}] in entry text to position photo. Multiple photos are supported with the Plus account status (up to 10) and Premium account status (up to 30).

If multiple photos are added. a — must be placed at the end of the list prior to the command, otherwise the command would be considered a photo path instead.


-p photo1 photo2


-z, –time-zone:

Time zone to use, for a list see /usr/share/zoneinfo. The name is expected to be a name from the IANA Time Zone Database. (see or /usr/share/zoneinfo) Alternatively, you can specify the name as a GMT offset.


-z America/Anchorage
-z Australia/Victoria
-z GMT-0700


-s, –starred:

Star entry if flag is present.




-d, –date:

Date to use, otherwise will use today/now. Example Format (time/seconds are optional):

yyyy-mm-dd [hh:mm[:ss]] [AM|PM]

Uses current system time zone unless you use the –timeZone option. Other formats are possible, such as ‘Next Tuesday’ or ’12/30/2016′, etc.

Example Use:

--date='2015-06-01 15:53:10'



Coordinate of entry location, must provide two numbers with the first a latitude, and the second a longitude.


--coordinate 32.513 35.621



Date to use in ISO 8601 format. Format:


Always interprets the time in the UTC time zone in the gregorian calendar. Entry its self will still use current system time zone unless –timeZone option is used.




-j, –journal:

Name of journal for entry. Journal must already exist. If not specified then the default journal will be used.


-t, –tags:

One or more tags for entry.


--tags Soccer Match Win

This example would assign the tags ‘Soccer Match’ and ‘Win’ to the entry.

Using — will stop parsing options, you can use this at the end of a list of tags if needed.


If the DAYONE_APP_PATH environment variable is defined we will look for Day One at the path in variable. The Day One app is needed for CLI to work.

These paths are searched in order, first one that works is the one used:

  2. /Applications/Day
  3. Asking system for path to app for com.bloombuilt.dayone-mac

Journal from here, there, everywhere.

Download the Day One journal app for free on iPhone, Android, iPad, Mac, and Apple Watch.

Journal from here there and everywhere mobile devices image.