Scroll to navigation

DRAWTERM(1) General Commands Manual DRAWTERM(1)


drawterm - connection to cpu, fs, and auth servers


drawterm [ -GBO ] [ -h host ] [ -u user ] [ -a authserver ] [ -s secstore ] [ -e 'crypt hash' ] [ -k keypattern ] [ -p ] [ -t timeout ] [ -r root ] [ -g geometry ] [ -c cmd ...]


Drawterm is a client for connecting venerable systems to Plan 9 systems. The standard behavior with no options provided is to begin a graphical session which will prompt for a cpu server, auth server, and password. If $USER is not set, drawterm will prompt for a username as well.

The goal of drawterm is to provide an abstraction layer from the client operating system to the desired Plan 9 system. Client-side devices that can be represented as filesystems will be and are served from the namespace drawterm operates in. Generally, this means that drawterm behaves like a Plan 9 kernel and will attempt to reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.

The options are:

Start drawterm in text-only mode (no graphics).

Disable kbdfs.

Use the old cpu(1) to connect to the cpu server rather than rcpu(1).

Connect to host for cpu.

Remote user id.

Connect to authserver for auth.

Sets the address of the secstore(8) server. If the -s option is absent, secstore(1) will attempt to dial tcp!$auth!secstore (or the otherwise specified auth server).

Specifies the 'crypt hash' for the connection. The default is 'rc4_256 sha1'. Usage of no encryption can be specified by 'clear' as per ssl(3).Notethatthisoptionisdeprecatedandonlyrelevanttotheoutdated cpu(1) protocol.

Use keypattern to select a key to authenticate to the remote side (see auth(2)).

Protect the connection against connection resets by establishing aan(8) tunnel.

Set the timeout for aan(8) to a value in seconds (default is one day).

Specifies the root directory on the client. The default is /root and all further paths are relative thereto.

The command to run can be passed with -c cmd ..., otherwise an interactive shell is started. The user's profile is run before the command with $service set to cpu to allow further customization of the environment (see rc(1) for more information).


Unless otherwise specified, the user stored in $USER is used for authentication.

If $PASS is set, no password will be prompted for in authentication and the contents of $PASS will be used instead.

Unless otherwise specified, the address stored in $cpu is used for the rcpu(1) connection (if set).

Unless otherwise specified, the address stored in $auth is used for the rcpu(1) connection (if set).


A number of services are provided in drawterm. The exact functionality and availability of certain features may be dependent on your platform or architecture:

A mount of the client machine's root filesystem as well as certain virtual filesystems to present Plan 9 devices and interfaces that are not available on non-Plan 9 systems. On Windows this is a directory containing the available lettered disks (C:, A:, etc.). Additionally, there is always a /mnt/term/root folder which is a copy of the client machine's namespace with no virtual filesystems present as to avoid conflicting names (such as with Linux's /root).

Assuming the -B flag is not set, /dev/kbd will be provided for kbdfs (see kbd(3)).

Assuming the -G flag is not set, various drawing device files will be provided in /dev (see draw(3)).

Assuming the -G flag is not set, files for controlling the mouse will provided in /dev (see mouse(3)).

A number of console device files giving access to the console screen and miscellaneous information are provided and mounted in /dev (see cons(3)).

The network filesystem is served and bound over /net, providing the interface to Internet Protocol stacks (see ip(3)).

An audio device filesystem is served, if possible, as a one-level directory in /dev (see audio(3)). Note that this device, if unable to be served, will not cause a panic in drawterm.


Make a headless rcpu session connecting to using as the auth server with aan(8) enabled:

drawterm -G -h -a -p

Make a session using cpu rather than rcpu to; this command is the same for connecting to a Plan 9 4th edition system:

drawterm -O -h



rc(1), cpu(1), rcpu(1), con(1), import(4), exportfs(4), tlssrv(8), aan(8)


Drawterm is not a Plan 9 program.


Drawterm was originally developed by Russ Cox (rsc) for Plan 9 4th edition. This original version is still usable on Plan 9 and its forks which use the p9sk1 and older authsrv(6) protocols.

The 9front project has forked drawterm to incorporate features from 9front, most importantly dp9ik authentication support (see authsrv(6)) and the TLS-based rcpu(1) protocol.