How Zellij Extends your Terminal’s Superpowers with WebAssembly and More!

How Zellij Extends your Terminal’s Superpowers with WebAssembly and More!

Last week, we had the joy of sitting down with Aram Drevekenin, author of the open source terminal workspace Zellij, who kindly walked us through setting up a workspace for the Suborbital docs.

Missed the recording? Don’t worry! We’ve got you:

A UI (and more!) powered by WebAssembly Plugins

To much of our (okay, Ramón’s) shock, Aram revealed to us that the UI of Zellij is entirely itself a plugin. The top bar showing tabs? That’s a plugin. The bottom bar showing state and shortcuts? Also a plugin. Wanna have both in one bar? Sure, just use the zellij:compact-bar plugin. Wow!

Screenshot of iTerm showing Zellij running with a tab bar at the top, the middle terminal pane, and the bottom state and shortcuts bar.

And here’s the thing: These are all powered by WebAssembly.

We asked Aram about his reasoning behind going with WebAssembly. He tells us:

"The idea with WebAssembly is that you’ll be able to write a plugin in any language that compiles to WebAssembly, which is basically any language.

If I’m a JavaScript developer with one month’s experience, I want to be able to write a cool piece of UI for my terminal, with emojis, personalize it, make it my own, and so improve parts of my workflow.

WebAssembly is a pretty good platform to build this sort of thing, I find."

Leveraging WASI’s capability-based security

Amongst features like declaring sequential panes that depend on each other to run tasks, Aram expands on how plugins will evolve:

"Once we add more capabilities, we’ll have a permission system, like a plugin that wants access to your shell integration or network, sound, and allow users to grant these permissions."

Using WebAssembly as a means to customize software resonates deeply with what we’re striving to achieve for SaaS with the Suborbital Extension Engine. Making software extensible is a powerful way to give folks the power to make it their own!

You can try out Zellij through their website or check out their GitHub repository.

You can check out the Suborbital Extension Engine through our website!