Easydoneit - Task Manager

edi cli manual

Contents

Introduction

This manual is written using edi cli version 1.18. This documentation describes how to setup and use edi cli from beginner to advanced levels.

edi help is the command that prints the complete help, to get help for a specific command type in a terminal edi help command. Users can store the database in dropbox and share it with other users to collaborate.

Not all options are described here, only common use cases are decribed. For further details, consult Easydoneit help (edi help).

Edi database is file based and easy to edit with standard command line tools. Read Database format for details.

Principles

Easydoneit is a system that stores tasks consisting of text or other media in a tree of folders. The system provides functions to quickly retrieve tasks on any device.

Here are the main principles:

Installation

Download and unzip the package from Easydoneit CLI

Install the python package from the python website or your system's package manager.

Test the installation, run the 'edi' command (located at the root of package) in a terminal:

> ~/easydoneit/edi

This command displays the help.

In the rest of this document, ~/easydoneit/edi or Easydoneit cli is referred as edi.

Quick start

edi creates an empty database the first time it runs on a computer. The database path is:

~/easydoneit_data/

To know which version is installed, run:

> edi version
Version v00026

Basic usage

Easydoneit cli has a command pattern similar to git. The main command is edi and the first parameter is a subcommand:

edi command

To display the help for all commands or a single command use help.

edi help
displays the complete help
edi help help
prints the help for the help command

Creating task

To create a task, use the command edi cr

This command starts the vim text editor, simply write the description of the first task and save. To change text editor, read Configuration.

Listing tasks

To display the list of tasks in the database, use the command edi lsid

The result looks like this:

> edi lsid
1 - ~/easydoneit_data
k4,WQKZB0hQwi5FT -   Active -     0 -       first task

k4,WQKZB0hQwi5FT is the id associated with the task, it is a unique reference for this task.

Active is the state, there are 6 possible states:

Active, Done, Ongoing, Pending, Inactive, Void

0 is the position of the task in the group. first task is the task title, first line in the description.

The position of the tasks in lists is kept by edi, read Ordering.

Displaying a task

To display the description of a task, use the command edi cat id

I run the command with my task id:

> edi cat k4,WQKZB0hQwi5FT
k4,WQKZB0hQwi5FT -   Active -   first task
description

Editing a task

The pattern to edit a task is similar edi cat edi vi id

I run the command with my task id:

> edi vi k4,WQKZB0hQwi5FT

The command starts vim, change the description and save. To change text editor, read Configuration.

Setting state

To change the state of a task, 2 parameters are needed, the id and a number corresponding to a state:

0 is Active
1 is Done
2 is Ongoing
3 is Pending
4 is Inactive
5 is Void
edi set id state
changes the state of a task.

To set my task to done state, I run:

> edi set k4,WQKZB0hQwi5FT 1
> edi ls
1 - ~/easydoneit_data
                      Done -     0 -       first task

Collaborating

Creating a share database

To collaborate using Easydoneit, create a database in Dropbox:

> edi createDatabase collaborate ~/Dropbox/collaborate_data

Then share the collaborate_data folder with the persons in your team.

Dropbox_share.png

Setting up an existing shared database

Once the database is shared in dropbox, do these 3 steps:

  1. add the existing database to your easydoneit
  2. choose to use the database
  3. optionally, set the database as default
  1. add the existing database to your easydoneit:

    edi data collaborate ~/Dropbox/collaborate_data
    
  2. choose to use the database:

    edi select 1,collaborate
    
  3. optionally, set the database as default:

    edi default collaborate
    

Working with tasks and groups

This section describes common use cases.

Ordering

Easydoneit keeps the position of the tasks in the list. The command order changes the position of a task in the list.

edi order id at to
moves the task at position 'at' to the 'to' position

For example:

I create a new task to have 2 tasks in my list
> edi cr
qd5JA51PphJSMOZy
> edi ls
1 - ~/easydoneit_data
                      Done -     0 -       first task
                    Active -     1 -       second task
> edi order root 1 0
> edi ls
1 - ~/easydoneit_data
                    Active -     0 -       second task
                      Done -     1 -       first task

The second task is now in first postion (position 0).

Groups

The mkdir command converts a task to a group. The group is a list of tasks in a specific order.

edi mkdir id
converts task id to a group.

For example:

> edi mkdir k4,WQKZB0hQwi5FT

Use edi ls to display all the tasks and groups:

> edi ls
1 - ~/easydoneit_data
                    Active -     0 -       second task
                      Done -     1 - GROUP first task

4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task

To create a task in the group first task, use the cr command with the id pararmeter:

edi cr id
creates a task in the group with id 'id'

For example:

> edi cr k4,WQKZB0hQwi5FT
5z6OFASktsT,Zbz2
> edi ls
1 - ~/easydoneit_data
                     Active -     0 -       second task
                       Done -     1 - GROUP first task

k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                     Active -     1 -       third task - title and subject

Moving around the group tree

The group tree is stored in the file system, use the command edi tree to find out the path to the tree.

edi tree
displays the path to the tree in the database

For example:

> edi tree
/home/remy/easydoneit_data/tree

trees
1 - ~/easydoneit_data/tree

Most commands figure out which group we are in when the terminal is in the tree path:

> cd ~/easydoneit_data/tree
> edi ls
                     Active -     0 -       second task
                       Done -     1 - GROUP first task

edi ls displays the tasks in current group only.

To move into the first task group, use the regular cd command:

> cd k4,WQKZB0hQwi5FT
> edi ls
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                     Active -     1 -       third task - title and subject

To display a task description, use cat with the position parameter:

> edi cat 1
5z6OFASktsT,Zbz2 -   Active -   third task - title and subject
description

The vi command follows a similar pattern:

> edi vi 1

This edits the task at position 1 in current group.

The set command to change states also follows a similar pattern:

> edi set 1 2
> edi ls
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                    Ongoing -     1 -       third task - title and subject

This changes the task at position 1 to 'Ongoing'.

The order command needs only the at_position and to_position parameters:

> edi cr
bIYshuCqYhxcJaZ9
> edi order 2 1
> edi lsid
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -   Active -     1 -       fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject

The mkdir command takes the position as parameter as well:

> edi mkdir 1
> edi lsid
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject

Adding tasks

When the terminal is in the tree, edi cr creates a task in the group the terminal stands in:

> cd ~/easydoneit_data/tree/k4,WQKZB0hQwi5FT
> edi cr
iKptM9L_aW0VNwg5
> edi lsid
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     3 -       fifth task

An other way to create tasks, is to use the command add.

edi add path_to_text_file
creates a task with path_to_text_file as description

For example:

> echo '6 task' > ~/task_description.txt
> edi add ~/task_description.txt
lG4VP0H3Han5qkQe
> edi lsid
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     3 -       fifth task
lG4VP0H3Han5qkQe -   Active -     4 -       6 task

The format for URLs or web links in descriptions is like the markdown format:

[title](URL)

For example:

[Easydoneit on Apple App store](https://itunes.apple.com/se/app/easydoneit/id894650006?l=en&mt=8)

So far, tasks are added at the bottom of the list, this is changed with the command topbot.

edi topbot top
all new tasks are added on the top of the list
edi topbot bottom
all new tasks are added at the bottom of the list

For example:

> edi topbot top
> edi cr
79_FWZTSw_p33Lkj
> edi ls
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                     Active -     1 -       7 task
                       Void -     2 - GROUP fourth task
                    Ongoing -     3 -       third task - title and subject
                     Active -     4 -       fifth task
                     Active -     5 -       6 task

Actions on tasks

To delete a task, use:

edi rm pos or

edi rm id
deletes the task at position pos or the task with id 'id'

For example:

> edi rm 1
> edi ls
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                       Void -     2 - GROUP fourth task
                    Ongoing -     3 -       third task - title and subject
                     Active -     4 -       fifth task
                     Active -     5 -       6 task

To move a task to another group, use:

edi mv pos id
moves the task at position pos to the group with id 'id'.

For example:

> edi mv 4 bIYshuCqYhxcJaZ9
> edi lsid
k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject
lG4VP0H3Han5qkQe -   Active -     3 -       6 task

To duplicate a task, use:

edi cp pos id
copies the task at position pos to group with id 'id'.

For example:

> edi cp 2 bIYshuCqYhxcJaZ9
EOvWFSwvST0VmeMi
> cd bIYshuCqYhxcJaZ9
> edi lsid
bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
EOvWFSwvST0VmeMi -  Ongoing -     1 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     2 -       fifth task

A task can be listed in several groups, tasks are linked to other groups:

edi ln pos id
links the task at position pos to group with id 'id'.

For example:

> cd ..
> edi ln 3 bIYshuCqYhxcJaZ9
> cd bIYshuCqYhxcJaZ9
> edi lsid
bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
lG4VP0H3Han5qkQe -   Active -     1 -  LINK 6 task
EOvWFSwvST0VmeMi -  Ongoing -     2 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     3 -       fifth task

The show command lists the groups in which the task is visible:

edi show pos
shows task at position pos

For example:

> edi show 1
k4,WQKZB0hQwi5FT
first task
k4,WQKZB0hQwi5FT -     Done - first task

k4,WQKZB0hQwi5FT/bIYshuCqYhxcJaZ9
first task/fourth task
bIYshuCqYhxcJaZ9 -     Void - fourth task

The task at position 1 is in the group first task and the group first task/fourth task.

Listing tasks

The commands to list tasks are edi ls and edi lsid. These commands have filters to list tasks only in specific states:

edi stfi state enable/disable
configures state filters.

For example:

> edi stfi active disable
> edi ls
bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
                    Ongoing -     2 -       third task - title and subject

This hides the tasks in active state.

To show tasks in active state:

> edi stfi active enable
> edi ls
bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
                     Active -     1 -  LINK 6 task
                    Ongoing -     2 -       third task - title and subject
                     Active -     3 -       fifth task

Coloring

Colors (both foreground and background) can be set for tasks and groups. They are visible in the html output and in GUIs.

edi fc pos color
sets the foreground color for the task at position pos
edi fc pos
shows the foreground color for the task at position pos
edi bc pos color
sets the background color for the task at position pos
edi bc pos
shows the background color for the task at position pos

For example:

> edi bc 1 50,50,50,255
> edi bc 1
50,50,50,255

Exporting groups

To generate an html for a group, use:

edi html
generates the html for current group

On the generated html, the task titles and states are in the first column, the task descriptions are in the second column.

For example:

> edi html > ~/group.html

Groups can be exported as a text file in reStructuredText format:

edi re -A
displays tasks with descriptions in reStructuredText format.

For example:

> edi re -A
============
 fourth task
============

Agenda
======
#.  LINK 6 task
#.       third task - title and subject
#.       fifth task


LINK 6 task
===========



third task - title and subject
==============================
description



fifth task
==========
This is Easydoneit CLI

Data storage locations

The user configuration is saved in ~/easydoneit.ini

Easydoneit can work with many databases simultaneously. To create a database, use:

edi createDatabase database_name path
creates database_name with path 'path'

For example:

> edi createDatabase new_project ~/new_project

Databases are listed with the command:

edi data

For example:

> edi data
Selected data_location
/home/remy/easydoneit_data

Available databases
1 - ~/easydoneit_data
new_project - /home/remy/new_project

The command 'edi path' shows the system path for a task:

edi path id
shows system path for task with id 'id'.

For example:

> edi path 1
/home/remy/easydoneit_data/tasks/lG4VP0H3Han5qkQe

Working with multiple databases

edi uses only the databases in the list of selected databases:

edi select
shows which databases are selected

To select databases:

edi database_name_1,database_name_2
select database_name_1 and database_name_2

Both databases are selected:

> edi select
Selected databases
1

1 - ~/easydoneit_data
> edi select 1,new_project
> edi select
Selected databases
1,new_project

1 - ~/easydoneit_data
new_project - /home/remy/new_project

The default database is the database used when it is ambiguous which database to select:

edi default database_name

For example:

> edi default
Default for new tasks
1
~/easydoneit_data
> edi default new_project
> edi default
Default for new tasks
new_project
/home/remy/new_project
> cd
> edi cr
he1h,wiJJliodBtD
> edi ls
1 - ~/easydoneit_data
                     Active -     0 -       second task
                       Done -     1 - GROUP first task

k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
                       Void -     1 - GROUP fourth task
                    Ongoing -     2 -       third task - title and subject
                     Active -     3 -  LINK 6 task

bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
                     Active -     1 -  LINK 6 task
                    Ongoing -     2 -       third task - title and subject
                     Active -     3 -       fifth task

new_project - /home/remy/new_project
                     Active -     0 -       new project task

Tasks and groups can copied and moved to other databases:

edi cpb pos database group
copies the task at position pos to database 'database' in group with id 'group'
edi mvb pos database group
moves the task at position pos to database 'database' in group with id 'group'

For example:

> cd ~/easydoneit_data/tree
> edi cpb 0 new_project root
xRVBI1Qez64bLb1L
> cd
> edi lsid
1 - ~/easydoneit_data
qd5JA51PphJSMOZy -   Active -     0 -       second task
k4,WQKZB0hQwi5FT -     Done -     1 - GROUP first task

k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
5z6OFASktsT,Zbz2 -  Ongoing -     2 -       third task - title and subject
lG4VP0H3Han5qkQe -   Active -     3 -  LINK 6 task

bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
lG4VP0H3Han5qkQe -   Active -     1 -  LINK 6 task
EOvWFSwvST0VmeMi -  Ongoing -     2 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     3 -       fifth task

new_project - /home/remy/new_project
he1h,wiJJliodBtD -   Active -     0 -       new project task
xRVBI1Qez64bLb1L -   Active -     1 -       second task
> cd ~/easydoneit_data/tree/k4,WQKZB0hQwi5FT
> edi mvb 2 new_project root
eXLB7SC6dbGVLW4l
> cd
> edi lsid
1 - ~/easydoneit_data
qd5JA51PphJSMOZy -   Active -     0 -       second task
k4,WQKZB0hQwi5FT -     Done -     1 - GROUP first task

k4,WQKZB0hQwi5FT -     Done -   0 - GROUP first task
bIYshuCqYhxcJaZ9 -     Void -     1 - GROUP fourth task
lG4VP0H3Han5qkQe -   Active -     3 -  LINK 6 task

bIYshuCqYhxcJaZ9 -     Void -   0 - GROUP fourth task
lG4VP0H3Han5qkQe -   Active -     1 -  LINK 6 task
EOvWFSwvST0VmeMi -  Ongoing -     2 -       third task - title and subject
iKptM9L_aW0VNwg5 -   Active -     3 -       fifth task

new_project - /home/remy/new_project
he1h,wiJJliodBtD -   Active -     0 -       new project task
xRVBI1Qez64bLb1L -   Active -     1 -       second task
eXLB7SC6dbGVLW4l -  Ongoing -     2 -       third task - title and subject

Configuration

The text editor used in 'edi cr' and 'edi vi' is configured in the section [settings] of ~/.easydoneit.ini:

[settings]
editor = vi

Database format

edi data displays the root path to all available databases. The edi database consists of 3 folders: tasks, groups and tree:

Conclusion

Thanks for using Easydoneit! Easydoneit is also available on the apple app store. The document is written using version 26, for commands in later versions, checkout edi help and the changelog on Easydoneit CLI.

The last video shows how to use edi list, at, email, autolink, many, stats, reset and the database log file.