Pair programming is a programming practice in which two programmers use one computer to work together on the same analysis, design, and programming of the same software. Collaborative Pair Programming (CPP) supports two programmers to work on the same task from different locations. This paper first reviews the existing CPP tools. Then a conversation model during CPP process is presented based on language/action perspective. Some basic requirements of CPP tool are given in terms of the conversation model. Finally, a framework of CPP tool is presented. The framework allows not only to use the same editor between the pairs, but also to support different editors or developing environments between them.