ClientVault is a desktop app for managing clients and properties, optimized for use via a Comamnd Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).ClientVault can get your property agent tasks done faster than traditional GUI apps, if you type fast.
Ensure you have Java 17 or above installed in 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 ClientVault.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar addressbook.jar command to run the application.
A 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 : Lists all contacts.addClient n/John Doe c/98765432 e/johnd@example.com : Adds a contact named John Doe to the Address Book.deleteClient 3 : Deletes the 3rd client shown in the current client list.clear : Deletes all contacts.exit : Exits the app.Refer to the Features below for details of each command.
Notes about the command format:
UPPER_CASE are the parameters to be supplied by the user.add n/NAME, NAME is a parameter which can be used as add n/John Doe.n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.… after them can be used any number of times[t/TAG]… can be used as (i.e. 0 times), t/friend, t/friend t/family etc.n/NAME c/CONTACT, c/CONTACT n/NAME is also acceptable.help, list, exit and clear) will be ignored.help 123, it will be interpreted as help.helpShows a message explaining how to access the help page.
Format: help
addClient
Adds a person to the address book.
Format: add n/NAME c/CONTACT e/EMAIL [t/TAG]…
Tip:
Examples:
addClient n/John Doe c/98765432 e/johnd@example.comaddClient n/Betsy Crowe t/friend e/betsycrowe@example.com c/1234567 t/criminaladdProperty
Adds a property to the client identified by the index number in the displayed client list.
Format: addProperty i/INDEX a/ADDRESS pr/PRICE s/SIZE [type/TYPE]
Tip:
list command to view the indices of clients before adding a property.type/TYPE field is optional.Examples:
addProperty i/1 a/311 Clementi Ave 2, #02-25 pr/1200000 s/1200 type/HDBaddProperty i/2 a/10 Orchard Road pr/2500000 s/1800listShows a list of all clients and their properties in the address book.
Format: list
viewClient
Shows the client's information and properties owned by client by index.
Format: viewClient INDEX
INDEX.Examples:
viewClient 1views all relevant information with respect to the specified client.viewProperty
Shows the Property's information and it's owner by index.
Format: viewProperty INDEX
INDEX. The index refers to the index number shown in the displayed list on the property tab.Examples:
viewProperty 1views all relevant information with respect to the specified property.editClient
Edits the details of the client identified by the index number used in the displayed client list.
Existing values will be overwritten by the input values.
Format: editClient INDEX [n/NAME] [c/PHONE] [e/EMAIL] [t/TAG]...
Tip:
t/ prefixes are provided, the client’s existing tags will be replaced.t/ without a value to clear all existing tags.Examples:
editClient 1 a/Amy c/91234567 e/johndoe@example.com t/vipeditClient 2 n/Alex YeoheditClient 1 t/friend t/vipeditClient 3 t/editProperty
Edits the property identified by the index number in the displayed property list.
Existing values will be overwritten by the input values.
Format: editProperty INDEX [a/ADDRESS] [pr/PRICE] [s/SIZE] [type/TYPE]
Tip:
list command to view the indices of properties before editing a property.Examples:
editProperty 3 a/10 Marina Bay pr/3000000 s/2000 type/HDBeditProperty 1 a/123 Clementi RoadeditProperty 2 pr/888888remarkProperty
Adds a remark to the property at the specified INDEX.
Existing remarks will be overwritten by the new remark.
Format: remarkProperty INDEX i/PROPERTY_INDEX r/REMARK
Tip:
Examples:
remarkProperty 1 i/1 r/Needs renovation before move-in adds said remark to the 1st property of the 1st clientremarkProperty 2 i/1 r/Near Chinese Garden MRTfilterClient
Finds clients whose names and/or tags match the given keywords.
Format: filterClient [n/NAME_KEYWORDS] [t/TAG_KEYWORDS]
Tip:
hans will match Hansowesmoney will match owesMoneyHan will not match HansOR within n/, OR within t/).
e.g. n/Hans Bo will return Hans Gruber, Bo YangExamples:
filterClient n/John returns john and John DoefilterClient t/owesMoney returns clients tagged owesMoneyfilterClient n/alex david t/friends returns clients whose name matches alex or david, and who are tagged friendsfilterProperty
Finds properties that match the given address keywords and/or price and size ranges.
Format: filterProperty [a/ADDRESS_KEYWORDS] [pr/MIN_PRICE MAX_PRICE] [s/MIN_SIZE MAX_SIZE]
Tip:
Address Keyword Matching:
jurong will match JurongBuona Vista will match Vista BuonaWoodland will not match WoodlandsOR search).
e.g. View Street will return Clementi Street 3, East ViewPrice Range Filtering:
pr/MIN_PRICE MAX_PRICE to find properties within a price range.MIN_PRICE must be a non-negative integer.MIN_PRICE must be smaller than or equal to MAX_PRICE.Size Range Filtering:
s/MIN_SIZE MAX_SIZE to find properties within a size range.MIN_SIZE must be a non-negative integer.MIN_SIZE must be smaller than or equal to MAX_SIZE.Examples:
filterProperty a/Bukit returns properties with "Bukit" in the address.filterProperty a/punggol changi returns properties with either "Punggol" or "Changi" in the address.filterProperty pr/1000000 2000000 returns properties priced between 1,000,000 and 2,000,000.filterProperty s/800 1200 returns properties with sizes between 800 and 1200 sqft.filterProperty a/Clementi pr/1000000 1500000 s/1000 1500 returns properties in Clementi, priced 1-1.5M, and sized 1000-1500 sqft.filterTypeFilters properties by type (HDB, Condo).
Format: filterType type/TYPE
hdb will match HDBHD will not match `HDBExamples:
filterType type/HDB returns all HDB properties.filterType type/Condo returns all Condo properties.deleteClient
Deletes the specified client from the client list and all of the client's properties from the property list.
Format: deleteClient INDEX
INDEX.Examples:
list followed by deleteClient 2 deletes the 2nd client in the client list, as well as the 2nd client's properties.filterClient n/Betsy followed by deleteClient 1 deletes the 1st client in the results of the filterClient command, as well as the 1st client's properties.deleteProperty
Deletes the specified property from the address book.
Format: deleteProperty INDEX
INDEX.Examples:
list followed by deleteProperty 2 deletes the 2nd property in the address book.find john followed by deleteProperty 1 deletes the 1st property in the results of the find command.clearClears all entries from the address book.
Format: clear
exitExits the program.
Format: exit
ClientVault data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
ClientVault data are 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 to the data file makes its format invalid, ClientVault will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the ClientVault to behave in unexpected ways (e.g., if a value entered is outside 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 in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous ClientVault 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 Client | addClient n/NAME c/CONTACT e/EMAIL [t/TAG]… e.g., add n/James Ho c/22224444 e/jamesho@example.com t/friend t/colleague |
| Add Property | addProperty i/INDEX a/ADDRESS pr/PRICE s/SIZE [type/TYPE] e.g., addProperty i/1 a/311 Clementi Ave 2, #02-25 pr/1200000 s/1200 type/HDB |
| Clear | clear |
| Delete Client | deleteClient INDEXe.g., deleteClient 3 |
| Delete Property | deleteProperty INDEXe.g., deleteProperty 3 |
| Edit Client | editClient INDEX [n/NAME] [c/CONTACT] [e/EMAIL] [t/TAG]...e.g., editClient 2 n/Alex Yeoh |
| Edit Property | editProperty INDEX [a/ADDRESS] [pr/PRICE] [s/SIZE] [type/TYPE]e.g., editProperty 1 a/123 Clementi Road pr/500000 s/1200 type/HDB |
| Filter Client | filterClient [n/NAME_KEYWORDS] [t/TAG_KEYWORDS]e.g., filterClient n/James Jake t/friends |
| Filter Property | filterProperty [a/ADDRESS_KEYWORDS] [pr/MIN_PRICE MAX_PRICE] [s/MIN_SIZE MAX_SIZE]e.g., filterProperty a/Clementi pr/1000000 1500000 s/1000 1500 |
| List | list |
| Help | help |
| Remark Property | remarkProperty CLIENT_INDEX i/PROPERTY_INDEX r/REMARKS e.g., remarkProperty 2 i/1 r/Near Chinese Garden MRT |