1KIBITZ(1)                   General Commands Manual                  KIBITZ(1)
2
3
4

NAME

6       kibitz - allow two people to interact with one shell
7

SYNOPSIS

9       kibitz [ kibitz-args ] user [ program program-args...  ]
10       kibitz [ kibitz-args ] user@host [ program program-args...  ]
11

INTRODUCTION

13       kibitz  allows  two (or more) people to interact with one shell (or any
14       arbitrary program).  Uses include:
15
16              ·   A novice user can ask an expert user for help.   Using  kib‐
17                  itz,  the  expert  can see what the user is doing, and offer
18                  advice or show how to do it right.
19
20              ·   By running kibitz and then starting  a  full-screen  editor,
21                  people  may  carry out a conversation, retaining the ability
22                  to scroll backwards, save the entire conversation,  or  even
23                  edit it while in progress.
24
25              ·   People  can  team  up  on  games, document editing, or other
26                  cooperative tasks where each person has strengths and  weak‐
27                  nesses that complement one another.
28

USAGE

30       To  start  kibitz,  user1  runs kibitz with the argument of the user to
31       kibitz.  For example:
32
33            kibitz user2
34
35       kibitz starts a new shell (or another program, if given on the  command
36       line),  while  prompting  user2 to run kibitz.  If user2 runs kibitz as
37       directed, the keystrokes of both users become the input of  the  shell.
38       Similarly, both users receive the output from the shell.
39
40       To  terminate  kibitz  it  suffices to terminate the shell itself.  For
41       example, if either user types ^D (and the  shell  accepts  this  to  be
42       EOF), the shell terminates followed by kibitz.
43
44       Normally,  all  characters  are  passed uninterpreted.  However, if the
45       escape character (described when kibitz starts) is issued, the user may
46       talk  directly to the kibitz interpreter.  Any Expect(1) or Tcl(3) com‐
47       mands may be given.  Also, job control may be used while in the  inter‐
48       preter, to, for example, suspend or restart kibitz.
49
50       Various  processes  can  provide various effects.  For example, you can
51       emulate a two-way write(1) session with the command:
52
53            kibitz user2 sleep 1000000
54

ARGUMENTS

56       kibitz takes arguments, these should also be separated by whitespace.
57
58       The -noproc flag runs kibitz with no  process  underneath.   Characters
59       are  passed  to the other kibitz.  This is particularly useful for con‐
60       necting multiple interactive processes together.  In this mode, charac‐
61       ters are not echoed back to the typist.
62
63       -noescape disables the escape character.
64
65       -escape  char  sets the escape character.  The default escape character
66       is ^].
67
68       -silent turns off informational  messages  describing  what  kibitz  is
69       doing to initiate a connection.
70
71       -tty ttyname defines the tty to which the invitation should be sent.
72
73       If  you  start  kibitz to user2 on a remote computer, kibitz performs a
74       rlogin to the remote computer with  your  current  username.  The  flag
75       -proxy  username  causes  rlogin  to  use username for the remote login
76       (e.g. if your account on the remote computer has a different username).
77       If the -proxy flag is not given, kibitz tries to determine your current
78       username by (in that order) inspecting the environment  variables  USER
79       and LOGNAME, then by using the commands whoami and logname.
80
81       The  arguments  -noescape  and  -escape can also be given by user2 when
82       prompted to run kibitz.
83
84

MORE THAN TWO USERS

86       The current implementation of kibitz explicitly  understands  only  two
87       users,  however,  it  is nonetheless possible to have a three (or more)
88       -way kibitz, by kibitzing another kibitz.  For example,  the  following
89       command runs kibitz with the current user, user2, and user3:
90
91            % kibitz user2 kibitz user3
92
93       Additional  users  may  be added by simply appending more "kibitz user"
94       commands.
95
96       The xkibitz script is similar to kibitz but supports the ability to add
97       additional users (and drop them) dynamically.
98

CAVEATS

100       kibitz  assumes the 2nd user has the same terminal type and size as the
101       1st user.  If this assumption is incorrect, graphical programs may dis‐
102       play oddly.
103
104       kibitz  handles  character graphics, but cannot handle bitmapped graph‐
105       ics.  Thus,
106
107            % xterm -e kibitz    will work
108            % kibitz xterm       will not work
109
110       However, you can get the effect of the latter command by using  xkibitz
111       (see  SEE  ALSO  below).   kibitz  uses the same permissions as used by
112       rlogin, rsh, etc.  Thus, you can only kibitz  to  users  at  hosts  for
113       which  you can rlogin.  Similarly, kibitz will prompt for a password on
114       the remote host if rlogin would.
115
116       If you kibitz to users at remote hosts,  kibitz  needs  to  distinguish
117       your  prompt from other things that may precede it during login.  (Ide‐
118       ally, the end of it is preferred but any part should suffice.)  If  you
119       have  an  unusual prompt, set the environment variable EXPECT_PROMPT to
120       an egrep(1)-style regular expression.  Brackets should be preceded with
121       one  backslash  in  ranges, and three backslashes for literal brackets.
122       The default prompt r.e. is "($|%|#) ".
123
124       kibitz requires the kibitz program  on  both  hosts.   kibitz  requires
125       expect(1).
126
127       By  comparison,  the  xkibitz script uses the X authorization mechanism
128       for inter-host communication so it does not need  to  login,  recognize
129       your  prompt,  or  require  kibitz on the remote host.  It does however
130       need permission to access the other X servers.
131

BUGS

133       An early version of Sun's tmpfs had a bug in it that causes  kibitz  to
134       blow  up.   If  kibitz reports "error flushing ...: Is a directory" ask
135       Sun for patch #100174.
136
137       If your Expect is not compiled with multiple-process support (i.e., you
138       do not have a working select or poll), you will not be able to run kib‐
139       itz.
140

ENVIRONMENT

142       The environment variable SHELL is used to determine the shell to start,
143       if no other program is given on the command line.
144
145       If the environment variable EXPECT_PROMPT exists, it is taken as a reg‐
146       ular expression which matches the end of your login  prompt  (but  does
147       not otherwise occur while logging in). See also CAVEATS above.
148
149       If the environment variables USER or LOGNAME are defined, they are used
150       to determine the current user name for a kibitz to a  remote  computer.
151       See description of the -proxy option in ARGUMENTS above.
152

SEE ALSO

154       Tcl(3), libexpect(3), xkibitz(1)
155       "Exploring  Expect: A Tcl-Based Toolkit for Automating Interactive Pro‐
156       grams" by Don Libes, O'Reilly and Associates, January 1995.
157       "Kibitz - Connecting Multiple Interactive Programs  Together",  by  Don
158       Libes,  Software  - Practice & Experience, John Wiley & Sons, West Sus‐
159       sex, England, Vol. 23, No. 5, May, 1993.
160

AUTHOR

162       Don Libes, National Institute of Standards and Technology
163
164       kibitz is in the public domain.  NIST and I would appreciate credit  if
165       this program or parts of it are used.
166
167
168
169                                19 October 1994                      KIBITZ(1)
Impressum