惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CERT Recently Published Vulnerability Notes
S
Security @ Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Help Net Security
Help Net Security
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
S
Schneier on Security
博客园 - 聂微东
C
Cybersecurity and Infrastructure Security Agency CISA
F
Full Disclosure
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
D
Docker
aimingoo的专栏
aimingoo的专栏
Application and Cybersecurity Blog
Application and Cybersecurity Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
Security Latest
Security Latest
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
News and Events Feed by Topic
小众软件
小众软件
A
About on SuperTechFans
Scott Helme
Scott Helme
Cloudbric
Cloudbric
T
Threatpost
雷峰网
雷峰网
NISL@THU
NISL@THU
N
News | PayPal Newsroom
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
T
Tor Project blog
T
The Blog of Author Tim Ferriss
The Hacker News
The Hacker News
C
Cyber Attacks, Cyber Crime and Cyber Security
量子位
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Privacy International News Feed
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
IT之家
IT之家
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
P
Privacy & Cybersecurity Law Blog

Whitebeard's Realm

Unequal, and hungry for it There's a STAR man, waiting in the sky Introducing Uruk, a language for tabletop games The diving watch I never knew I wanted Make your own interactive fiction client in Elm Introducing Planedrift > ASK THE VM WHERE IS THE PLAYER Building a Z-Machine in the worst possible language Building a better crossword page for my daily cryptic hit What AI is doing for me, in a difficult situation It's Your Turn — a prompt deck for new roleplayers Seven reasons that Trump is a bad GM. Very bad You've Been Pawned — Now With a Snazzy New Look Six months on startplaying.games An online tool to make playable paper pawns Campaign report: Dragon of Icespire Peak: session #6 Campaign report: Rime of the Frostmaiden: session #4 Campaign Report: Dragon of Icespire Peak: Session #5 A few months on StartPlaying.Games Campaign report: Rime of the Frostmaiden: session #3 Character Quirks for easier roleplay How I use Avrae An Owlbear/Discord/DndBeyond checklist for new campaigns About me Projects Talks Videos
Playing Zork with a gen alpha AI
whitebeard · 2026-04-11 · via Whitebeard's Realm

I’ve talked before about how I use AI as a coding companion - a partner while I’m making things. I was curious how this would play out in other contexts, and that’s why I built if-pal. With it, you can play old (and some newer) interactive fiction games - like Zork, Suspect or, my favourite, Wishbringer - with an AI pretending to be a gen alpha friend and reacting to the game.

if-pal in action — Zork on the left, an enthusiastic AI companion reacting on the right

Why gen alpha? Well, it didn’t start that way. I was showing my eleven-year-old Zork and I was amazed how much he enjoyed it. Or at least, how much he enjoyed playing it with me. Like most gen Xers, I barely understand a word he says but I love hearing him and his friends speak. There’s a joy in language that I don’t think was a big feature of my childhood - I blame TikTok and the different cultural bubbles we live in, ngl.

Initially I thought I would make a useful companion for playing the game - a utility that could remember things and give hints. But as I played with it, I realised I wanted it to experience the game with me and to have some kind of joyful personality. The minute I started changing the llm system prompt to include gen alpha language - largely to troll my son - I knew I was on to something.

Right now, if you want to play with it, you’ll need to build and run the app locally - it’s on github. You’ll need dfrotz and node to be installed. You’ll also have to change a configuration file. You can configure it to use a local llm via ollama or you can give it a claude API token and use claude remotely. I haven’t found a local llm that works brilliantly for this on my old macbook yet, but I’m still looking.

If you get it working and want to experiment a bit with different personalities, the system prompt is in the contextManager.ts file. Have at it!

For some reason, I really like making things that if they didn’t exist, no-one would ever think or want to make them. So, if you’re sitting there wondering why on earth I did this, that’s exactly the response I’m after!

This first version of the app shells out to dfrotz to run the adventures and does a minimal bit of munging to present the output. But that yak needs to be shaved so I’ve been writing my own zmachine emulator in elm and hope to use that in future. I’ll write about that soon.