pollackgroup.com Skip to main content

Lisp Tlen [work] May 2026

If you meant a specific library or different term, just let me know and I will rewrite the post for you. Remember Telnet?

Next time you need to debug an SMTP server or test a custom TCP service, skip nc (netcat) for an hour. Fire up a Lisp REPL, open a socket, and talk to the machine directly. You'll never look at curl the same way again. If you landed here searching for "Lisp CLOS" (Common Lisp Object System) or "Lisp TCO" (Tail Call Optimization), drop a comment below. I've got drafts on both. But if you really meant tlen as some obscure library... well, now you know how to roll your own. Happy hacking, parentheses and all.

(defun start-tlen-server (&optional (port 2323)) "Start a Telnet-like server on PORT." (let ((listener (usocket:socket-listen "0.0.0.0" port))) (format t "~&TLEN Server listening on port ~A~%" port) (loop (let ((client-stream (usocket:socket-stream (usocket:socket-accept listener)))) (format t "~&New connection from ~A~%" client-stream) ;; Handle one client, then close (simple for demo) (handler-case (handle-client client-stream) (error (e) (format t "Error: ~A~%" e))) (close client-stream))))) lisp tlen

That's it. 15 lines of Lisp, and you have a protocol server. You might think: "A loop that reads and writes? Python can do that."

I recently spent a weekend revisiting Telnet, not as a sysadmin, but as a Lisp programmer. Why? Because stripping away TLS, JSON, and REST frameworks reveals something beautiful: If you meant a specific library or different

For a Lisp REPL, this is home turf. Lisp doesn't care if you're crunching matrices, parsing XML, or listening on port 23. The code looks the same. Let's build a toy Telnet server in Common Lisp. We'll call it tlen.lisp (see what I did there?).

Telnet (and its modern descendant, the raw TCP socket) is minimalist. You open a port, you read bytes, you write bytes. That's it. Fire up a Lisp REPL, open a socket,

If you came of age in the modern cloud era (Post-2010), Telnet is that "insecure thing" you disable on routers. But for those of us who cut our teeth on BBSes, mainframes, or early Unix hacking, —a raw, text-based window into another machine.