What’s your business model?

What’s on your roadmap?

What shell is Warp used?

What’s the technology behind Warp?

What about VSCode support in terminal, how can we achieve that integration?

Warp, the Rust-based modern terminal, is now in public beta! That means you do not need an invite code anymore!

So, there is an exponential bomb in the GitHub issue list because of the public beta release.

And now, In this article, we answer the top 5 What of the most commonly asked issues.

Alright, Let we get into these questions!

What’s your business model?

We raised money to get going. The reason is that we think it’s going to take a bunch of time and work to build something great here and having capital lets us devote our full-time jobs to it.

Our business model is that we are free for everyone for now and will eventually experiment with different premium features for business. Our model will NOT involve collecting or selling any data.

The general philosophy is that we would never charge for anything a terminal currently does. So no paywalls around ssh or anything like that. The types of features we could eventually charge for are things that have a cost to us, like example keeping an infinite searchable command history, environment sharing, or enabling real-time terminal collaboration. Even those though would probably be free to some level of usage and only charged in a company context.

It’s all about building an app that devs and businesses find compelling enough that they will want to pay for some parts of it.

Check out Privacy | Warp for more info if you’re interested!

What’s on your roadmap?

Our roadmap: Discussions · warpdotdev/Warp · GitHub

We first prioritize stability, performance, and issues that you all report to us like crashes, unsupported configurations, etc. We then prioritize building the features that the community deems the most important based on upvotes on our GitHub issues board, discussion in questions-and-help, and aggregate feedback from surveys and user interviews.

Some ideas the Warp team is already exploring:

Check out: Warp’s product principles for reinventing the terminal | Warp

Build a platform. Most developers will experience Warp as a terminal app, a product they launch and run. However, the CLI is more than an app, it’s a platform, much like iOS or Windows. It has (primitive) mechanisms for discovering apps, installing them, and running them, but it lacks many of the affordances of modern platforms, like an app store, a unified way of securely installing and removing apps, a well-defined API for developers to configure the runtime environment, and more. While we are starting by focusing on the terminal app and experience, we eventually want to build the best possible CLI platform.

Leverage the cloud. The basics of computing have changed since the advent of the CLI, and no change has been more profound than the rise of the internet. Once you start to think about it, there are a lot of leverage points: why is shell history limited by your local hard drive? Why doesn’t your shell configuration follow you across machines? Why can’t you transfer a CLI session to the browser so you can keep working on the go? (Don’t worry, though, Warp is local-first, and all cloud features will be opt-in. You can find out more in our privacy policy).

Build for teams. Developers today work in teams on shared projects. Because of this, most applications developers use are collaborative in one sense or another. Github is a good example, as is VSCode live session sharing. And yet the CLI is still primarily a single-user tool, with collaboration facilitated by copy/paste, screenshots, and screen-sharing, rather than a true multi-player experience. We believe that CLI-based teamwork is a very powerful concept, extending beyond google-docs real-time collaboration, to facilitating asynchronous workflows like command reviews, shared DevOps terminals, and more.

Build for everyone. The CLI traditionally has a bit of a mystique around it; developers feel like hackers when they use it, and there’s almost a rite of passage in conquering its idiosyncrasies. We believe that the CLI should be more accessible, more humane, and more useful to all developers. Too many are turned off by the intimidating UI. Many aspiring developers have their first experience using the CLI (it’s how they set up development environments), and that first experience is often very negative because the interface is so hard and creates so much incidental complexity. We want to fix this and make a modern CLI for all developers.

What shell is Warp used?

Warp doesn’t change your default shell! It works with what you’ve set. To see which shell you’re currently running, you can run echo $SHELL.

Warp supports zsh & bash & fish right now. If your default shell is unsupported, we launch zsh.

If you change your login shell with something like chsh , we do launch Warp with that shell.

For example, If you set your default shell to bash chsh -s /bin/bash, Warp will start with bash.

Some useful way to check which shell is default used and change.

Check it with this command on macOS:

1
dscl . -read ~/ UserShell

or alternatively echo $SHELL.

Changing your default login shell to zsh:

1
chsh -s $(which zsh)

Why do shells need to have Warp support added to them manually?

Warp divides the terminal output into blocks - each block has a prompt, input and output. and to differentiate between what’s the start/end of the command vs what would be extra input to the same command etc. we have “hooks” that are pretty much shell functions executed in specific times. each shell has different support (some don’t at all, and then we need to figure out some workaround) for adding those hooks.

More about what’s in those hooks etc. is in our blog posts How Warp Works | Warp

What’s the technology behind Warp?

After a very brief experiment with Electron, we quickly pivoted to building in Rust and rendering directly on the GPU using Metal (Mac’s GPU API). As a low-level systems language, Rust was appealing because of its speed and also its strong developer community: using crates.io for package management was a breeze and our entire team (none of whom had written Rust before) onboarded very quickly with tools like Rustlings. More importantly, Rust has pretty extensive platform support–allowing us to write in a single language and then build for Mac, Linux, Windows, and ultimately the web by compiling to WASM.

Check it out: How Warp Works | Warp

What about VSCode support in terminal, how can we achieve that integration?

In such a case there are two options:

Option one: set Warp as an external VSCode terminal

Change the external Terminal from the Regular one to Warp ( this doesn’t change the integrated terminal → we are going to change the external terminal that can be accessed from VS Code )

All you need is to edit settings.json:

1
"terminal.external.osxExec": "Warp.app"

and

1
"terminal.explorerKind": "external"

Finished! Enjoy your new iced out terminal.

Option two: set Warp as an integrated VSCode terminal

For those that want to change the default integrated terminal NOT just the external, and add custom themes, show which git branch you are on, and whether or not files need to be staged or committed. You want to change everything about your terminal prompt.

In this case, to my knowledge, there’s no support for changing the integrated terminal app and we haven’t explored other possibilities to integrate those just yet.

Chances are this kind of integration wouldn’t technically be possible until a WASM version of Warp exists.

There’s a ticket in our Github, feel free to upvote it, we use those to track interest & prioritize: VSCode / VS Code / Virtual Studio Code Embedding · Issue #257

We hope this article answers some of your burning questions and helps you understand our viewpoint as a team and a company, both from an engineering and product perspective.

Our goal is to be transparent.

Our goal is to build a quality product.

And our goal is to be awesome.

And for more team behind-the-scenes, educational content, and updates on the product, please subscribe to our Youtube Channel.

If you are still having issues please join this Warp discord channel or open a new Github issue.

Originally published at Embiid’BLOG.