Finger: the 1971 social network that never died

Finger: Social network that never died

Finger: the 1971 social network that never died

Finger, a 1971 protocol for sharing plain-text status files, predates modern social networks by decades. It powered John Carmack's .plan, the first IoT device (a Coke machine), and still works today. Despite a security flaw that led to its decline, it's experiencing a revival with modern implementations like Happy Net Box and Finger.Farm. This article explores its history, how it works, and how to get started.

It is one of the most valuable technical documents in video game history, and it was distributed over a 1971 protocol.
  1. seoulbigchris

    In the mid-90s I taught a night class on Unix, and was experimenting with shell scripts from The Unix Programming Environment. There was an example using a loop and the who command to alert you when someone logged onto your local system. My cousin was a professor at a university several states away, and we had already figured out the talk command. So I decided to expand the examples in the book to use finger. By parsing the reply, somehow I could tell if my cousin was logged on, and I would send myself a notice. There was an ISP in the same building, and one day the ISP engineer came to visit me with a stern look. He asked, "By any chance are you sending a finger command every two minutes to this university's mainframe?" I proudly answered, "As a matter of fact, yes, I am!". I eagerly got out my Unix book to show him what I was doing. He just said, "Stop doing that. They have a system console logging program that has churned out dozens of pages of paper printouts because of you". I sheepishly acknowledged my mistake and quit running the script.

  2. teddyh

    I remember xhtalk; a little program you would configure with a list of hosts and user names, and it would show a small window (which you would place in a convenient corner of your screen) where each user name was highlighted when they logged on anywhere (the program would periodically finger each machine and search for your configured user names). If you clicked on a user name, it would start a new terminal with a talk session to that user to the machine where they were logged on. Basically an instant messenger before any others.

  3. OhMeadhbh

    Also... When we moved from having multiple users per machine to multiple machines per user, services like finger on a specific machine didn't make much sense. It seems you should have one well-advertised machine that maps `[email protected]` to a `plan.html` file somewhere. (If a user has multiple machines, which one do you query to get their daily .plan?)

    Maybe the answer is to define a plan base URL as a DNS TXT resource on a particular DNS domain. For instance, I added the string `< plan https://bi6.us/PL/ >` as a TXT resource at _plan.hamrick.rocks. It should now be a trivial task to write a program called `finger-ng` that when I type `finger-ng [email protected]`, it queries the TXT record at `_plan.hamrick.rocks`, extracts the plan base URL and then retrieves and displays a text document found at `https://bi6.us/PL/meadhbh%40hamrick.rocks`. I guess you could serve up a text/plain, text/html or even image/avif if you wanted to.

    This, of course, assumes `bi6.us` is set up to allow me to update that file, but this is also straight-forward. Anyway, check back in a couple days and I'll have some code and I'll write the RFC/ID next week.

    EDIT: I wrestled with apache and got it to understand files under www.bi6.us/PL/ should be served as text/dsd+plain, so you can hit `HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS` and get something that looks legit. And sure enough, HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS encodes to a smaller QR code than https://bi6.us/PL/meadhbh%40h […]

  4. alexellisuk

    I also very fond memories of the finger command - though mainly used on MUDs and the odd Linux host:

    https://blog.alexellis.io/the-90s-unix-command-fell-out-of-f...

    https://news.ycombinator.com/item?id=44943313

  5. steve_taylor

    Finger was only part of the social network. The multi-user aspect of Unix itself combined with standard tools such as who, finger, write, mesg, talk, mail, biff, etc. combined to form a fairly complete text-based social network.

  6. SoftTalker

    Never died? Nobody runs fingerd anymore.

    Yes the code still exists, and it still works if you run it, but that's true of almost any old software.

  7. icedchai

    "Finger" is how my teenage self got into hacking. I'd dial into local universities, which all had open terminal servers. No authentication needed for the terminal servers. That didn't give me host access though, but I could run "status" or "who" or something and see who was connected and where they were connecting to (CS dept Sun server, etc.) I'd then connect to port 79 (finger) of the host, which let me see the logins and names of who was connected. Because these were college students, they often used their first or last name as a password. I'm sure you can figure it out from there.

  8. jonathandeamer

    Nice to see this here today. A number of hosts the article mentions are on the startpage of lookit, a finger client I've been building: happynetbox, plan.cat, thebackupbox's finger webring, etc.

    The start page exists because finger has no discovery layer. finger @host lists users. lookit makes that list selectable, so you can wander a server instead of querying one address at a time.

    I just released a v0.2 beta, feedback welcome: https://github.com/jonathandeamer/lookit/releases/tag/v0.2.0...

More from this day

2026-08-18