DEV Community

Cover image for Warp is the future of terminals
James Perkins
James Perkins

Posted on • Originally published at jamesperkins.dev

Warp is the future of terminals

I spend a lot of time working with tooling, whether it's for my job, content creation, or just development tools in general. Warp is a brand new terminal experience, so let's talk about it.

What is Warp?

Warp is a terminal that allows you to do a whole lot right from your keyboard. It gives you the ability to look through your history, create workflows and has intellisense. This is currently for Mac only but they are building one for Windows and one for Linux as well! So all the other users out there can have a great experience.

Command Palette

Command Palette

The command palette allows you to search through all the different commands you can use within the Warp terminal. For example create new tab is command + T or command + ] is a new pane. The command pane is completely searchable so you can type in what you are looking for hit Enter.

Command History

History Search

Command History is one of the best features of Warp, not because it's powerful or revolutionary feature, but because I and every developer has press the up arrow dozens of times to find that one command.

You get two options when you press control + r you can scroll through all of the history items or you can just type in the beginning of the command. Here is an example of me typing the word yarn into my history search:

History example

As you can see I can now just select what I need from the list, speeding up the time spent remembering what did I type?

Workflows

Workflows are the powerhouse to this terminal application, workflows allow you to run commands similar to aliases. Each workflow gets a searchable title and description which make easy to find what you are looking for. The workflow pane can be opened by typing shift + control + r.

When you choose a workflow, you will prompted to fill in any arguments you might need to make the command work which you can navigate using shift + tab :

Command Example

Custom workflows

Custom workflows are your alias on steroids, they are created using .yml files and can be either user specific or project specific.

For user specific ones you add them to ~/.warp/workflows and for project ones {{path_to_project}}/.warp/workflows. The format is the same regardless, here is my code_profile one:

name: Change code profiles
description: Change code profile for visual studio code
author: James Perkins
author_url: https://github.com/perkinsjr
tags: ['macos', 'shell', 'vscode']
shells:
    - zsh
    - bash
command: code --user-data-dir {{user_data_dir}} --extensions-dir {{extension_dir}}
arguments:
    - name: user_data_dir
      description: Directory of user-data
    - name: extension_dir
      description: Directory for extensions
Enter fullscreen mode Exit fullscreen mode

My custom workflow takes two arguments which and when used will open my code_profiles have stored for visual studio code and it looks like this in the application.

My work flow

This is just scratching the surface of the feature set that Warp offers and how it can be used. I recommend giving it a shot and seeing what you think.

Discussion (44)

Collapse
jonosellier profile image
jonosellier

This is a really cool project but I'm confused about the business model. VCs don't just give money to a nifty project, they obviously need some sort of ROI so I'm curious as to what the business model here is. Is there some pricing model for businesses that want to adopt it? From where I stand, it seems like the the (VC-specific) value in this terminal is the data it collects. I understand that this project has to make money somehow but I am curious about what sort of data is collected from it.

I hope that this doesn't come across as attacking the project as I see no issue with sharing my usage of a terminal once it's properly anonymized.

Collapse
perkinsjr profile image
James Perkins Author

The money comes from the pricing model for the business usage.

They are going for if we make it soo good for individuals that they will want to integrate it into their business.

You can read about the data collection and business / pricing model and plan here:

warp.dev/faq#whats-your-business-m...

Collapse
jonosellier profile image
jonosellier

Thank you so much for your transparency (and being active with your business on Sunday too!)

Thread Thread
perkinsjr profile image
James Perkins Author

Not my business but my blog post! I want to make sure people get all they info they need, to make a decision.They can hire me to spread the word if they want 😂

Thread Thread
jonosellier profile image
jonosellier

Forgive my presumptions then!

Collapse
willaiem profile image
Damian Żygadło

probably they are selling the data from the telemetry, but who knows.

Collapse
perkinsjr profile image
James Perkins Author

They are using it to drive what to improve for GA and then telemetry is optional.

Collapse
pcjmfranken profile image
Peter Franken

A closed source terminal emulator by a for-profit entity running on a yet to be proven business model. That's a pretty darned hard sell in today's "zero trust" world where new actively exploited CVEs are being discovered every other week, and where the GDPR auditors are always looming.

However well it might work, convenient it may be, or nice it might look , the security risks are too great and financial liabilities too expensive.

Collapse
perkinsjr profile image
James Perkins Author

While I agree with some sentiment here, this has been discussed openly:

github.com/warpdotdev/Warp/discuss...

Seems they are planning on open sourcing some if not all of the terminal.

Collapse
pcjmfranken profile image
Peter Franken • Edited on

That would be the baseline for personal use.

Before I would ever even think about adopting this tool commercially, especially considering the massive leverage a it has over such a critical piece of business infrastructure, I'd require them to offer some very serious, verifiable, and continuous guarantees about their security setup (the current "your privacy is important to us" doesn't really cut it) and legally binding guarantees to cover for the remaining liabilities.

At that point I'm afraid the SLA would be so expensive it wouldn't be worth the investment.

It's brutal, I know, but a nice looking terminal app just isn't worth risking my customers' and my own arses over 😅

Thread Thread
moopet profile image
Ben Sinclair

I totally agree. I just don't see the draw of any software that's not free, especially when it offers so little over established free software.

I'm going to come out with a whole lot of things that sound negative, but I don't mean, "I hate this, stop what you're doing", I mean, "I don't understand this, carry on and make something awesome".

It seems like the only thing that Warp gives you beyond other terminals so far is workflows, which look quite nifty tbh, but - and it's a big but - I don't think they'd be difficult to implement as a script in any old shell, even something 20+ years old that's supported by curses. I can think of a few people from my work who'd probably like the feature

Phrases like "planning on open sourcing some of the..." turn me off. Why would parts of it be hidden? Why is this a thought for the future and not how it's built from the start?

I'm also dubious of new software that's built for MacOS where the authors say they're working on versions for other OS. The reason that people choose to build for Mac first is often that they can charge more for the product and people will pay it, and as such the other platforms' versions fail to materialise or are always a step behind if they do.

I'm not sure that things like command history and workflows are a good fit for a terminal emulator. I think they're a fit for the shell, because the shell's the thing that is interpreting them. You can use a terminal emulator to run something other than a shell, and in that case, what's it going to do? Will the shortcut keys confuse things?

Thread Thread
perkinsjr profile image
James Perkins Author

A lot of these questions are definitely for the warp team, which I’m not a part of.

The software is free to use and nothing restricts you and your whole team from using it. Their business model is go for mass adoption, then hope to offer business and companies X or Y where a free tier would have a restricted version (as far as I can tell)

Collapse
akostadinov profile image
Aleksandar Kostadinov • Edited on

yeah, I think many people use github.com/nvbn/thefuck for similar purposes but open source

Collapse
pcjmfranken profile image
Peter Franken • Edited on

Another interesting project I came across the other day that you can compile yourself and doesn't require an account to use is github.com/nushell/nushell

It's a great time to be a shell-dweller with so many great tools and concepts in active development!

Edit: The compilation and account comment might come across a bit snarky but that was not my intent!

Collapse
robole profile image
Rob OLeary

This seems like a burgeoning space atm!

There is fig.io which has similar features and is Mac only too. The driving force seems to improve DX (Developer Experiences), bring more IDE-esque experience to the terminal.

The linux crowd are approaching it differently e.g. nushell. The focus is more on improving data processing. Support data formats such as json and xml as first class citizens, offer better error reporting, and parallelism.

Personally, I am more excited by the latter. Improved DX might make the terminal more approachable for newcomers, and easier to use in the long-run for others. There are decent solutions for autocompletion and history searching in other shells.

The fish shell had the objective of making shells more user friendly and it still receives quite a bit of flak! It could be kind of a cautionary tale for warp, I guess?

Zsh seems to be having a second wind. I think Oh my Zosh solved the user friendliness of Z Shell for many folks. And with Mac making its default shell, its got a wider audience.

I mostly use Zsh (bash sometimes), and I would be slow to switch.

I wish you success with the project.

Collapse
abhinav1217 profile image
Abhinav Kulshreshtha

Great to see another attempt for building a modern terminal. I don't have mac os, so I don't think I can use it but I know people will see this and work on improving their experience on whatever terminal they use. I have a zsh and bash extension for command history, that I can't live without. Although I don't know what benefit will command pallet serve.

Around 2012-2015, There used to be a terminal project called Final Term, which had most of these features. I think the developer closed the project after graduation and getting a job. Its good that warp have secured funding so it can have a sustainable future.

Collapse
perkinsjr profile image
James Perkins Author

They are creating a windows and Linux version in the near future.

I actually remember Final term I think

Collapse
unsungnovelty profile image
Nikhil • Edited on

Currently using Wezterm. I will give this a go when it is available on Linux/FreeBSD. Always curious about new Terminals! Thanks for the headsup. :)

Collapse
perkinsjr profile image
James Perkins Author

Wezterm is a solid choice! Hopefully their roadmap moves quickly through the offering on all platforms.

Collapse
unsungnovelty profile image
Nikhil

I am hopeful. Let's see! :)

Collapse
frolovdev profile image
Andrey Frolov

Great job

Collapse
joeschr profile image
JoeSchr • Edited on

Tbh this (no OSS, sending everything, weird business model, osx first) sounds awful.

And it can to nothing than can't be done by other shells, no need for a terminal emulator to even do that...🤷

This is snarky, but I think only an osx user can fall for that kind of BS 🤦‍♂️

It definitely is not the future of terminal. Because we all can use this features for years now. That's not only hyperbole, it's just wrong.

Just use fish, fzf and tmux and be done with it. It also works on every other system if you remotelogin via ssh

Collapse
perkinsjr profile image
James Perkins Author

It lowers the barrier of entry to terminal.

No one said this isn’t something any other terminal / plug-in could do.

Snarky is an understatement, never realized your choice of OS denotes things like deciding on software you want to use is good or bad, but your opinion is valid either way.

Collapse
joeschr profile image
JoeSchr

choice if OS denotes yadayada...

It kind of does. eg. if you are used to work with your hands bound behind your back by using an inferior OS, your might also find inferior software to be "the future of XY"

Thread Thread
perkinsjr profile image
James Perkins Author • Edited on

Next you will tell me only OS to use is the one you use and no other compare. As well as your keyboard, mouse, monitor, dev tools.

As a dev for almost 14 years and has written code on Linux boxes, windows boxes, MacOS.

At this point just toss me a keyboard and I’ll write you whatever you need. I don’t think any of them are inferior of each other. All of them are good or bad, in some scenarios... sure a linux box has advantages, in web dev they all are on level playings fields pretty much.

I personally believe that lower barrier of entry is the future of terminals, it’s why fig.io and warp exist in the space. People finally realize the pain point and we can solve it.

Sure I’d prefer the whole thing to be open sourced so I can look at the code and decide for myself but for now I’m willing to enjoy the experience and decide for myself if the risk reward ratio is worth it.

Thread Thread
joeschr profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
JoeSchr

I'm actually still amazed that you see this as a painpoint where we need a new terminal EMULATOR, when there are tons of tools and shells which have this functionality already and at the same time try to imply I should look outside the box.

Dude, you simply didn't know how to use your shell and wrote an hyperbole article about the future, which in fact other people are living for years now. I just pointed it out. To yourself a favour and Google (or YouTube) fish, fzf, tmux, nvim, etc

I have been developing longer and on more systems than you, but I don't see why that should matter. I just didn't want to drink your kool.aid

Thread Thread
perkinsjr profile image
James Perkins Author • Edited on

You should stop assuming.

I use a shell every day at my job, which again you assume I have no knowledge of. I don't need to google any of them, because again, I have used them in the past.

This article is a let's look at article, no where in it am I telling you to completely remove your working workflows, nor telling you that fish, zsh vanilla or any other is useless compare to an emulator.

The title is fairly clickbaity, which I have no problem with.

Thread Thread
joeschr profile image
Info Comment hidden by post author - thread only accessible via permalink
JoeSchr

The title is fairly clickbaity, which I have no problem with.

Then you should stop feeling butthurt about people taking you at your word and pointing out that's just hyperbole. A needless article and waste of time to read

Collapse
yahyaouiahmed17 profile image
Yahyaoui Ahmed

hello i just try to use discussion for the first time

Collapse
perkinsjr profile image
James Perkins Author

👋👋👋

Collapse
heikokanzler profile image
Heiko Kanzler 🇪🇺

While I like the idea of warp, it absolute drives me nuts that I have to create an account and that my terminal is sending hundreds of tracking events to the developer. That's all but not trustworthy :-(

You can't even opt-out (except blocking outgoing traffic)

docs.warp.dev/getting-started/priv...

Collapse
perkinsjr profile image
James Perkins Author

I understand the need for telemetry and in GA it’s opt out.

I can also understand needing the data to understand usage. But also the privacy concerns

Collapse
sharandec22 profile image
Shiva Sharan

Love this terminal. Have been using it as a default the last few days. Definitely modern functional. Looking forward to the updates that will include power level 10k

Collapse
perkinsjr profile image
James Perkins Author

Awesome! Glad you are enjoying it... looking forward to see what they are going to do in the future.

Collapse
perkinsjr profile image
James Perkins Author

It works but you lose a lot of features but they are working at first class support
github.com/warpdotdev/Warp/discuss...

Collapse
jwp profile image
John Peters

Sounds similar to Powershell

Collapse
alpercugun profile image
Alper Cugun-Gscheidel

It looks cool but I have a reasonably comfortable fish shell and the switching cost here is just too high.

Maybe if I'm really bored some day.

Collapse
ellioseven profile image
ellioseven • Edited on

Why am I forced to authenticate with GitHub just to use a terminal?

Collapse
perkinsjr profile image
James Perkins Author

This is a requirement during the beta but won't be in GA... I believe they use it for two reasons... One to collect telemetry data and two being able to share blocks with another user for collaboration.

Collapse
fyodorio profile image
Fyodor

Like fig.io/ but better?

Collapse
perkinsjr profile image
James Perkins Author

Similar idea, I actually left fig for this

Collapse
lamka02sk profile image
lamka02sk

No thanks, subscriptions are a recipe for a disaster.

Collapse
perkinsjr profile image
James Perkins Author

There is no subscription for personal and general use.

Some comments have been hidden by the post's author - find out more