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.

Oldest comments (44)

Collapse
 
jwp profile image
JWP

Sounds similar to Powershell

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

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

I actually remember Final term I think

Collapse
 
fyodorio profile image
Fyodor

Like fig.io/ but better?

Collapse
 
perkinsjr profile image
James Perkins

Similar idea, I actually left fig for this

Collapse
 
perkinsjr profile image
James Perkins

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

Collapse
 
unsungnovelty profile image
Nikhil • Edited

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

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
 
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

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

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

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

Collapse
 
yahyaouiahmed17 profile image
Yahyaoui Ahmed

hello i just try to use discussion for the first time

Collapse
 
perkinsjr profile image
James Perkins

👋👋👋

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
 
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

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

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

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

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

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

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

Collapse
 
pcjmfranken profile image
Peter Franken • Edited

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!

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more