One problem, is playing Twine games in the terminal

I’m trying to run a game written in Twine on the terminal, but I can’t find any software that will run it on the terminal, so I’m asking.

Hi there!

Twine games are essentially webpages, which means they will open in your browser rather than the terminal.

1 Like

You could try a terminal browser like elinks or lynx, but I don’t think they handle JavaScript well.

yes, I tried. It don’t well.

No, standard builds of the usual terminal text browsers (lynx, w3m, (e)links) don’t do Javascript, so no good for most HTML-based IF like Twine.

There are the ‘terminal’ browsers which are just renderers for a headless graphical browser (Browsh, Carbonyl), but the circumstances where it’s not better to just use the underlying browser instead seem quite limited to me.


That said, if there was a version of Lynx that handled JavaScript, I’d definitely enjoy the experiment. You’d lose all the fancy styling, but there’s something about the feeling of playing in the terminal that you can’t really replicate anywhere else.


In the linux or possibly OS X, you might try “lynx” a terversion of a html browser. I have had good luck with it.


yes, and it have run to ssh or lesst-linux.

hmmm. I tried “lynx”, but it show net code.

Seems like chrome does headless browser mode.


hmmm, I tried. it as before need GUI. But is not show in the terminal. emmm, maybe have play in esp32.

1 Like

I think Twine in terminal is like driving a Ferrari on the ocean. It simply doesn’t make sense.

but, hey: Anybody prove me wrong!


SSH. So you’re accessing remotely, which is why you want a terminal.

Sincere question, do you not have access to a cheap android phone? Even a used one with no service would do the job if you could briefly access wifi and download the Twine games to run offline.

Or is there a reason this isn’t viable? I’m just trying to concoct a reason in my head that this would be necessary, and all I’ve got so far is maybe you work in a secure location that does not allow outside electronics, like phones, and you wish to play Twine games while there, but you would need to do so from a terminal.

I dunno. I wish we had a better solution for you, but I’m just low-key fascinated that this is an ask at all. I sincerely hope you can get Harry’s suggestion to work.


My other suggestion is browsh, Monochrome mode. It was mentioned along with Carbonyl, though. Otherwise, take a look here 4:25 for Monochrome mode.


That is kind of cool. But I still think about it as I said in my metapher. But that’s just my opinion.

If you’re talking about the full power of Twine, I agree with you. However, for simple Twine games, text-only can be very desirable.

This can be something like Bare Bones Jam, or maybe my Meow project that outputs Twee, which I actually researched and I think that will be a very desirable export format.

1 Like

The problem is that Twine doesn’t really make any attempt to separate itself from the full browser environment. The Twine format (which is really most of an interpreter) is written in Javascript and acts on the DOM. If the format allows macros, ditto. There’s no boundary where you can say “This is the text content, which could be presented in a different UI model.”

(Contrast Ink, which is designed from the top down to be UI-independent.)


And also typically aims to wield the full capabilities of a web browser, in addition to the goals of the gamedev, and likely uses all sorts of CSS and JavaScript tricks to make the DOM become a topological suggestion, rather than an accurate (but reduced) representation.

However, while I’m also skeptical, if there are any Twine games that run in some kind of headless web browser (SSH terminal or otherwise), that will be cursed (positive) in a very beautiful and remarkable way, and I’d love to stay updated, lol.

I only have minimal SSH experience, though, so any suggestions I would have given were already made. Mostly checking in.


If that’s true, then maybe there is a difference whether you connect via ssh, which is text terminal, and ssh -x, which should preserve window environment as well.