Duke is a desktop app for managing tasks, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI)
Table of contents
Ensure you have Java 11 or above installed in your Computer.
Download the latest duke.jar from here.
Copy the file to the folder you want to use as the home folder for your Duke chatbot.
Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.
Some example commands you can try:
list : List all tasks.
todostudy hard : Adds a todo task named study hard to the Duke chatbot.
delete3 : Deletes the 3rd task shown in the current list.
bye : Exits the app.
Refer to the Features below for details of each command.
helpShows a message listing all commands and how to use them.
Format: help
Example of usage:
help
Expected outcome:
Here are the things that I can do for you!
- Add a todo task:
todo <task description>
- Add an event task:
event <task description> /at <task timing (yyyy-mm-dd HH:MM)>
- Add a deadline task:
deadline <task description> /by <task timing (yyyy-mm-dd HH:MM)>
- See list of tasks:
list
- See upcoming list of tasks:
upcoming
- Mark a task as done:
done <number>
- Delete a task:
delete <number>
- Find tasks with a keyword:
find <keyword>
- End this program :d :
bye
todo/deadline/eventtodoAdds a todo task to the chatbot.
Format: todo <task description>
Example usage:
todo study cs2103
Expected outcome:
Got it. I've added this task:
[T][✘] study cs2103
Now you have 1 task(s) in the list.
deadlineAdds a deadline task to the chatbot.
Format: deadline <task description> /by <task timing (yyyy-mm-dd HH:MM)>
Example usage:
deadline cs2103 proj /by 2020-09-17 23:59
Expected outcome:
Got it. I've added this task:
[D][✘] cs2103 proj (by: Sep 17 2020 11:59 PM)
Now you have 2 task(s) in the list.
eventAdds an event task to the chatbot.
Format: event <task description> /at <task timing (yyyy-mm-dd HH:MM)>
Example usage:
event dinner party /at 2020-09-20 12:30
Expected outcome:
Got it. I've added this task:
[E][✘] dinner party (at: Sep 20 2020 12:30 PM)
Now you have 3 task(s) in the list.
listShows a list of all tasks saved in the chatbot.
Format: list
Example usage:
list
Expected outcome:
Task(s) in your list:
1. [T][✘] study cs2103
2. [D][✘] cs2103 proj (by: Sep 17 2020 11:59 PM)
3. [E][✘] dinner party (at: Sep 20 2020 12:30 PM)
upcomingShows a list of all deadline/event tasks in a week saved in the chatbot.
Format: upcoming
Example usage:
upcoming
Expected outcome:
Here are the upcoming tasks (in a week)!
1. [D][✘] cs2103 proj (by: Sep 17 2020 11:59 PM)
2. [E][✘] dinner party (at: Sep 20 2020 12:30 PM)
findShows a list of all tasks that contains the given keyword.
Format: find <keyword>
Example usage:
find cs2103
Expected outcome:
Found some matching tasks:
1. [T][✘] study cs2103
2. [D][✘] cs2103 proj (by: Sep 17 2020 11:59 PM)
doneMarks the specified task as done.
Format: done <task number>
Example usage:
done 1
Expected outcome:
Ok! I've marked this task as done:
[T][✓] study cs2103
deleteDeletes the specified task from the chatbot.
Format: delete <task number>
Example usage:
delete 1
Expected outcome:
No problem. I've removed this task:
[T][✓] study cs2103
Now you have 2 task(s) in the list.
byeExits the program.
Format: bye
Example usage:
bye
Expected outcome:
Goodbye! Come back soon!
Duke’s data are saved in the hard disk automatically after any commands that changes it. There is no need to save the data manually.