AddressBook Level 3 (AB3) is a desktop application for managing contacts, optimized for use through a Command Line Interface (CLI) while retaining the benefits of a Graphical User Interface (GUI). If you type quickly, AB3 can help you manage contacts faster than traditional GUI applications.
Ensure that Java 25 or later is installed on your computer.
Mac users: Ensure you have the precise JDK version prescribed here.
Download the latest .jar file from here.
Copy the file to the folder you want to use as the home folder for your AddressBook.
Open a terminal, cd to the folder containing the JAR file, and run java -jar addressbook.jar.
A GUI similar to the one below should appear in a few seconds. Note how the app contains some sample data.

Type a command in the command box and press Enter to execute it. For example, type help and press Enter to open the help window.
Some example commands you can try:
list : Lists all contacts.
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : Adds a contact named John Doe to the Address Book.
delete 3 : Deletes the 3rd contact shown in the current list.
clear : Deletes all contacts.
exit : Exits the app.
Refer to the Features section below for details of each command.
Notes about the command format:
Words in UPPER_CASE are the parameters to be supplied by the user.
For example, in add n/NAME, replace NAME with a value such as John Doe.
Items in square brackets are optional.
For example, n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.
Items followed by ... can appear zero or more times.
For example, [t/TAG]... may be omitted, or written as t/friend or t/friend t/family.
Parameters can be in any order.
For example, if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.
Extraneous parameters for commands that take no parameters, such as help, list, exit, and clear, are ignored.
For example, help 123 is interpreted as help.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
helpShows a message explaining how to access the help page.
Format: help
addAdds a person to the address book.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...
Tip: A person can have any number of tags, including zero.
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminallistShows a list of all persons in the address book.
Format: list
editEdits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, ...t/ without a tag after it.Examples:
edit 1 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 1st person to be 91234567 and johndoe@example.com respectively.edit 2 n/Betsy Crower t/ Edits the name of the 2nd person to be Betsy Crower and clears all existing tags.findFinds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
hans matches Hans.Hans Bo matches Bo Hans.Han does not match Hans.OR search); for example, Hans Bo returns Hans Gruber and Bo Yang.Examples:
deleteDeletes the specified person from the address book.
Format: delete INDEX
INDEX.Examples:
list followed by delete 2 deletes the 2nd person in the address book.find Betsy followed by delete 1 deletes the 1st person in the results of the find command.clearClears all entries from the address book.
Format: clear
exitExits the program.
Format: exit
AddressBook automatically saves data after every command. You do not need to save manually.
AddressBook data is saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes make the data file invalid, AddressBook starts with an empty address book at the next run. The invalid file remains on disk until you run a command (AddressBook saves after every command). Still, we recommend backing up the file before editing it.
Furthermore, certain edits can cause the AddressBook to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
[coming in v2.0]Details coming soon ...
Q: How do I transfer my data to another computer?
A: Install the app on the other computer and overwrite the data file it creates with the data file from your previous AddressBook home folder.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.| Action | Format, Examples |
|---|---|
| Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]... e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague |
| Clear | clear |
| Delete | delete INDEXe.g., delete 3 |
| Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... e.g., edit 2 n/James Lee e/jameslee@example.com |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find James Jake |
| List | list |
| Help | help |