Warp? A terminal behind login popup
Tags: discuss, webdev, rust, beginners
Published: 2023-05-31 17:37:23

My journey of using terminal emulators began together with my introduction to Linux about 7 years ago. GNOME terminal was my first as it came pre-installed on Ubuntu, my first Linux distribution. Since then, I've had the opportunity to explore and utilize a range of terminal emulators, including [Alacritty](https://github.com/alacritty/alacritty), [Kitty](https://github.com/kovidgoyal/kitty), [st](https://st.suckless.org/), [Konsole](https://konsole.kde.org/), [xterm](https://invisible-island.net/xterm/xterm.html), and most recently [iTerm2](https://iterm2.com/). It's been interesting to experiment with these different emulators, each offering its unique features (or similar however with each with personal touch), user interfaces, and performance benchmarks. Just the other day, a new terminal emulator caught my attention: [Warp Terminal](https://www.warp.dev/). My curiosity won, and Warp was downloaded, this short blog are my thoughts about Warp terminal. At the moment there is only support for macOS, however linux and windows builds are on the way.

## Login into terminal?
![Warp Terminal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lt9nag8daud231b7iucd.png)
This is what you are presented with once you download and install warp. Sign Up popup? For terminal? what?

![what gif](https://media.giphy.com/media/l3q2K5jinAlChoCLS/giphy.gif)

That's definitely new, let's check common questions, there is probably a reason it's there. 


![common questions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ypg416v60snxpykneiy9.png)

And as expected, the top question is "Why is sign in required?", it leads to the [docs page](https://docs.warp.dev/getting-started/privacy#login-is-still-required-why) basically stating following:
> The primary reason is that login allows us to build cloud-oriented features that make the terminal have a concept of “your stuff” and “your team’s stuff” – for example [Block Sharing](https://docs.warp.dev/features/blocks/block-sharing). This is the same reason other collaborative apps like Figma and Github require login – identity is the basis of building cloud-native apps.

It begins to coalesce; Warp is essentially a terminal emulator "as a service", providing cloud-based and collaborative features. I would argue that it should allowed to use Warp without sign in requirement until user opts to use one of the cloud related features.

## Fair Review

![First screen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jipvvtpdse812gyw5c7.png)

After rather quick sign up process, we see the first screen. Initial impression is good, clean UI, it picked up my shell correctly, it seems that the prompt is overridden, [Starship](https://starship.rs/) is a prompt of my choice and warp seems to have it's own configuration. Let's check if we are able to configure it. Following hints on the screen, and typing prompt into command palette, there is a setting to use user's own prompt config.

![command palette](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gify3s3zx3sa38rs8gqd.png)


![starship prompt](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ewinjx3eqeuzwdnw0qdr.png)

Much better.



![warp blocks](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckovqj66h3nfkw89bjwv.png)


Warp has an interesting idea where each command execution is separated into blocks. There is ability to easily navigate around blocks, copy the commands and outputs, and create bookmarks on each block to navigate even more quicker. I personally like the idea, and see myself using it during long session of tackling infrastructure related work. There might be similar features in other terminals, however I like the way it is presented in Warp.

Performance wise, it feels fast, at least as fast as what I have now. Warp is based on Rust btw, which probably explains good performance. I am all in for Rust in desktop applications and I am very glad it is not Electron based.


![warp autocomplete](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmsi8yiwu9th94hfhoaq.png)

Pressing tab for autocompletion brings up the screen of available commands and their description, similar to lsp UIs in code editors/IDEs. Although it introduces some visual clutter, the feature carries a "modern" feel and displays innovation, there is certainly demand out there.


![warp workflows](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j476mz2f62qdhxil5u6r.png)


Warp introduces another feature worth mentioning: workflows. These are series of commands designed to accomplish specific tasks, and Warp offers an array of preconfigured workflows for users to explore.

## AI?


![warp ai](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cf8bbpe5v83sjeixlgou.png)


The AI (LLM) is directly integrated into the terminal. While I am still in the exploratory phase of integrating AI tools into my development workflow, my initial impression of AI in Warp is satisfactory. After posing a series of questions, the responses received were quite accurate, though I would advise anyone to exercise caution and verify results prior to executing any commands, accuracy results may vary. A particularly convenient feature of Warp is its ability to insert commands directly into the terminal input. Despite a daily cap of 100 requests, I believe this is a generous offering, especially considering that the service is available at no cost.


## Final Thoughts

Warp presents a refreshing and modern take on terminal emulators without any significant drawbacks. Two key factors that could influence my permanent switch to Warp are its modern UI and the fact that it is Rust-based. The UI feels modern without hurting the performance or affecting my existing workflow (It's still possible to navigate with keyboard and use desired multiplexer). There is a community surrounding Warp as well, creating valuable content such as [this engaging video](https://kdta.io/xbMZ5) amongst other resources.

While there is a little bit of controversy regarding Warp internet connection, I am curious to discover potential use cases that I am not aware of when it comes to collaboration. Given the emergence of similar cloud-oriented development tools such as [Zed](https://zed.dev/) and [Fleet](https://www.jetbrains.com/fleet/), it appears that the industry is moving towards a greater emphasis on remote collaboration for good or bad. 

[*From Krunch Team*](https://kdta.io/0fVdC)