DRAWTERM(1)
π NAME π
drawterm β the client for connecting to cpu, fs, and auth servers, no cap π«Ά
π SYNOPSIS π
drawterm [ -GBO ] [ -h host ] [ -u user ] [ -a authserver ] [ -s
secstore ] [ -e 'crypt hash' ] [ -k keypattern ] [ -p ] [ -t timeout ] [
-r root ] [ -g geometry ] [ -c cmd ...]
bestie the synopsis is out here name-dropping -g geometry while the options list below literally never mentions it again. iykyk π not me pointing it out, just saying.
π DESCRIPTION π
okay so Drawterm is a client for connecting venerable systems to Plan 9 systems β¨
The standard behavior, like when you pass zero options, is that it starts a graphical session which will prompt you for a cpu server, an auth server, and a password. And if $USER isn't set? It's gonna prompt you for a username too. girl it needs to know who you are πΈ
The whole goal of drawterm is to provide an abstraction layer from the client operating system over to the Plan 9 system you actually want. Client-side devices that can be represented as filesystems will be β and are β served from the namespace drawterm operates in. Generally speaking this means drawterm behaves like a Plan 9 kernel and will attempt to reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system. it's giving "cosplay but the costume is a whole kernel" π
β¨ OPTIONS β¨
here's the whole menu, bestie, nothing skipped:
-Gβ start drawterm in text-only mode (no graphics). terminal only, main character energy π₯-Bβ disable kbdfs. no keyboard filesystem today π-Oβ use the oldcpu(1)to connect to the cpu server rather thanrcpu(1). retro era β-hhost β connect to host for cpu πΈ-uuser β remote user id π«Ά-aauthserver β connect to authserver for auth π-ssecstore β sets the address of thesecstore(8)server. If the-soption is absent,secstore(1)will attempt to dialtcp!$auth!secstore(or the otherwise specified auth server).-e'crypt hash' β specifies the 'crypt hash' for the connection. The default is'rc4_256 sha1'. Usage of no encryption can be specified by'clear'as perssl(3). > π¨ note: this option is deprecated and only relevant to the outdatedcpu(1)protocol.-kkeypattern β use keypattern to select a key to authenticate to the remote side (seeauth(2)).-pβ protect the connection against connection resets by establishing anaan(8)tunnel π‘οΈ-ttimeout β set the timeout foraan(8)to a value in seconds (default is one day). β°-rroot β specifies the root directory on the client. The default is/rootand all further paths are relative thereto.-ccmd ... β the command to run can be passed with-ccmd ..., otherwise an interactive shell is started. The user's profile is run before the command with$serviceset tocputo allow further customization of the environment (seerc(1)for more information).
π¦ ENVIRONMENT VARIABLES π¦
USERβ unless otherwise specified, the user stored in$USERis used for authentication.PASSβ if$PASSis set, no password will be prompted for in authentication and the contents of$PASSwill be used instead. πcpuβ unless otherwise specified, the address stored in$cpuis used for thercpu(1)connection (if set).authβ unless otherwise specified, the address stored in$authis used for thercpu(1)connection (if set).
πΈ SERVICES πΈ
A number of services are provided in drawterm, bestie. The exact functionality and availability of certain features may be dependent on your platform or architecture π
/mnt/termβ a mount of the client machine's root filesystem as well as certain virtual filesystems, to present Plan 9 devices and interfaces that aren't 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/rootfolder 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). ποΈ#bβ assuming the-Bflag is not set,/dev/kbdwill be provided for kbdfs (seekbd(3)).#iβ assuming the-Gflag is not set, various drawing device files will be provided in/dev(seedraw(3)). π¨#mβ assuming the-Gflag is not set, files for controlling the mouse will be provided in/dev(seemouse(3)). π±οΈ#cβ a number of console device files giving access to the console screen and miscellaneous information are provided and mounted in/dev(seecons(3)).#Iβ the network filesystem is served and bound over/net, providing the interface to Internet Protocol stacks (seeip(3)). π#Aβ an audio device filesystem is served, if possible, as a one-level directory in/dev(seeaudio(3)). Note that this device, if unable to be served, will not cause a panic in drawterm. phew π
π§ EXAMPLES π§
Make a headless rcpu session connecting to 10.30.167.25 using plan9.postnix.us as the auth server with aan(8) enabled:
drawterm -G -h 10.30.167.25 -a plan9.postnix.us -p
Make a session using cpu rather than rcpu to tenshi.postnix.us; this command is the same for connecting to a Plan 9 4th edition system:
drawterm -O -h tenshi.postnix.us
π SOURCE π
https://git.9front.org/plan9front/drawterm/HEAD/info.html
β SEE ALSO β
rc(1), cpu(1), rcpu(1), con(1), import(4), exportfs(4), tlssrv(8), aan(8)
π BUGS π
Drawterm is not a Plan 9 program. that's it. that's the bug. iconic honestly π
π HISTORY π
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.
https://swtch.com/drawterm/
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. slay π
and that's the whole drawterm(1) page, bestie π«Ά it lives in the General Commands Manual, straight out of the 9front drawterm tree β the footer's just DRAWTERM(1) with no date on it, so we're keeping it mysterious π
go connect to something, fr fr π
π¦ where this page comes from
- debian bookworm: drawterm-9front 0~git20220608.bee4db6-3
- debian trixie: drawterm-9front 0~git20220608.bee4db6-3+b1
- ubuntu noble: drawterm-9front 0~git20220608.bee4db6-3build2
- ubuntu resolute: drawterm-9front 0~git20220608.bee4db6-3build2
- ubuntu stonking: drawterm-9front 0~git20220608.bee4db6-3build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms