Typed Output and Programming in the Interface Francesmary Modugno and Brad A. Myers March 1993 A visual shell, (e.g., Apple Macintosh), is a direct manipulation interface to an operating system. Although such shells are easier to use than Unix, they have limitations: they are not programmable; the output of utilities can not be directly input to other utilities; and they lack the functionality of utilities such as {\tt awk}. PURSUIT is a visual shell that introduces a novel interface model, {\it typed utility output}, to address some of these limitations. In PURSUIT, {\it all} objects are typed. A typed object is an iconic representation of an object in the system, such as a file, user id, network address, etc., that users can manipulate in the traditional direct manipulation way. Because all objects in PURSUIT are typed, all utility output is typed. By selecting part of the output of one utility and using it as input to another utility, users can create straight-line programs (i.e., Unix pipes) directly in the interface. By manipulating the contents of a typed output window, users can access the common functionality of utilities, such as column selection in {\tt awk}, without knowing any special utility names and flags. PURSUIT thus provides users with programming abilities, the common functionality of utilities, and the functionality of pipes {\it directly in the interface} without requiring them to learn obscure programming languages, commands or interaction techniques. keywords User Interfaces, Intelligent Interfaces, End-User Programming, Programming by Demonstration, Demonstrational Systems, Interaction Techniques