A system for coloring hair, comprising: a hair color appliance and a smart device for use with the hair color appliance, wherein the hair color appliance is adapted to receive a hair color packet kit including coloring data for a specific packet type, the hair color packet kit comprises pumps corresponding to each color packet in the hair color packet kit, is adapted to query the hair color packet kit concerning the hair color desired and the nature of the specific coloring application, including the volume of formulation needed for the specific coloring application, and is adapted to send the information to the smart device, wherein the smart device has a hair coloring application stored therein for providing and receiving information to and from the user, wherein the information which it is adapted to receive includes desired hair color information and selected information about the hair to be colored and an image of the user's present hair color taken by the smart device, wherein the smart device is programmed to calculate a palette of hair colors, taking into account the user-provided information, including the desired hair color, the user's present hair condition and the information obtained from the hair color appliance, and includes a display for showing the calculated palette of hair colors and a means to allow the user to change the hair color of the image to include any of the colors in the palette of colors, wherein the smart device further includes a selector for the user to select one or more colors from the palette of colors and output information to program the pumps of the hair color appliance to provide a target color formulation based on user input. a hair color appliance and a smart device for use with the hair color appliance, wherein the hair color appliance is adapted to receive a hair color packet kit including coloring data for a specific packet type, the hair color packet kit comprises pumps corresponding to each color packet in the hair color packet kit, is adapted to query the hair color packet kit concerning the hair color desired and the nature of the specific coloring application, including the volume of formulation needed for the specific coloring application, and is adapted to send the information to the smart device, wherein the smart device has a hair coloring application stored therein for providing and receiving information to and from the user, wherein the information which it is adapted to receive includes desired hair color information and selected information about the hair to be colored and an image of the user's present hair color taken by the smart device, wherein the smart device is programmed to calculate a palette of hair colors, taking into account the user-provided information, including the desired hair color, the user's present hair condition and the information obtained from the hair color appliance, and includes a display for showing the calculated palette of hair colors and a means to allow the user to change the hair color of the image to include any of the colors in the palette of colors, wherein the smart device further includes a selector for the user to select one or more colors from the palette of colors and output information to program the pumps of the hair color appliance to provide a target color formulation based on user input.