anytermd(1)
β¨ anytermd(1) β the Gen Z Manual β¨
π NAME
okay bestie, anytermd is a terminal-emulating HTTP daemon π¦ β it puts a whole terminal window on a web page so you can run command-line programs even when HTTP is literally the only door you've got πͺβ¨
πΈ SYNOPSIS
anytermd [--command arg] [--device arg] [--baudrate arg] [--port arg]
[--user arg] [--auth arg] [--charset arg] [--foreground] [--diff]
[--nodiff] [--max-sessions arg] [--max-http-connections arg]
[--local-only] [--name arg]
anytermd --help
π DESCRIPTION
okay so Anyterm gives you a terminal window right on a web page π₯οΈπ the vibe is you can run command-line programs on a machine even when HTTP is the only way in. main character energy, no cap π
here's how the whole thing fits together π§: you've got some Javascript on a web page, an XmlHttpRequest channel on standard ports talking back to the server, an HTTP proxy (like Apache's mod_proxy) π, and the Anyterm daemon itself. the daemon, anytermd, uses a pseudo-terminal to chat with a shell or other app, and it does the terminal emulation too π. key presses get picked up by the Javascript and sent to the daemon π, and changes to the emulated screen go from the daemon back to the Javascript, which updates the display β¨
performance is lowkey pretty reasonable π«Ά, and you can use SSL to lock the connection down π
β οΈ bestie, for security reasons it is highly recommended that anytermd NOT be exposed directly to the Internet! do not do it π see the SECURITY section below.
π OPTIONS
default values are shown in parentheses () β¨
-c,--command arg(=/bin/bash) β the command you want to run inside the terminal π»-d,--device argβ the device to connect to, like a serial port π-b,--baudrate arg(=9600) β baud rate for the serial port device π‘-p,--port arg(=8080) β the port number it listens on π¦-u,--user argβ the user to run as π§βπ»-a,--auth arg(=none) β authorisation, which isnone,null, ortrivialπ-s,--charset arg(=ascii) β the character set π€-f,--foregroundβ run in the foreground instead of backgrounding π--diffβ only send the differences to the browser π-n,--nodiffβ send the whole screen to the browser every single time πΊ-m,--max-sessions arg(=20) β max number of simultaneous sessions π--max-http-connections arg(=25) β max number of simultaneous HTTP connections π§--local-onlyβ only accept connections from localhost π--name arg(=anyterm) β the name used for logging and the pid file π--helpβ show the help message π
π SECURITY
okay this section is SO important, bestie π
π« do not run anytermd as root. ever. not even once.
anyterm's code has not been audited for security π. it is almost certainly possible to crash it by sending it invalid input, and experience suggests this sort of weakness can also be exploited to allow arbitrary code execution. yikes π
all CGI applications and similar programs deal with this same kind of problem, though some are better written than others π§. the Anyterm code doesn't need to run with a higher privilege level than any other web application, so weaknesses in Anyterm don't put your system at any higher risk than weaknesses in any other web application would π«Ά
π« avoid exposing anytermd directly to the Internet.
anytermd should only be used as a backend service, reachable only through a frontend HTTPS proxy, such as Apache, that requires authentication π. the install guide at http://anyterm.org/1.1/install.html has examples of how to set this up π
a more complete and up-to-date discussion of security issues in anytermd lives at http://anyterm.org/security.html π
π§ EXAMPLES
if you just wanna test Anyterm, you can do:
anytermd --local-only
and then connect to http://localhost:8080 with your Javascript-enabled web browser π. the browser should display a terminal window with a bash command prompt owned by whoever started anytermd β¨
if you want SSH-over-HTTP access on localhost:8022, you might run it like this π¦:
anytermd --command "/usr/bin/ssh -o your-username@localhost" --port 8022
--user nobody --charset utf-8 --local-only
π SEE ALSO
Anyterm is more fully documented on its web site, http://anyterm.org/. the web site may be more up-to-date than this man page π
π AUTHOR
Anyterm is written by Phil Endecott. This man page was contributed by Eric Rossen π«Ά
bestie, this manual is from Phil Endecott, version 1.1.something π you're literally so ready to go, slay π β¨
π¦ where this page comes from
- fedora 43: anyterm 1.2.3-46.fc43 Β· GPL-2.0-or-later
- fedora 44: anyterm 1.2.3-50.fc44 Β· GPL-2.0-or-later
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms