Finally a Modern Terminal Designed for Elite Hackers

Sdílet
Vložit
  • čas přidán 19. 05. 2023
  • The last use case is a game changer…
    Try the Free Beta! 👇
    app.warp.dev/referral/Q4XR3N
    Warp is a blazingly fast, rust-based terminal reimagined from the ground up to work like a modern app.
    www.warp.dev/
    Warp is a new high-performance terminal built entirely in Rust that makes you and your team more productive and the CLI easier to use. The input editor for commands is a full text-editor that supports selections, cursor positioning, and shortcuts like you are used to in other apps. Commands and their output are visually grouped into blocks, and existing shortcuts like up-arrow and ctrl-r have new visual menus to make them easier to use.

    In this article, I walk through how we built the foundation of Warp: the UI, blocks, and the input editor. Building this foundation ultimately helped us unblock even more exciting features that we’re launching in the coming months, like infinite history, real-time collaboration, and shared environment variables.

    Designing Warp required us to be intentional about our stack at nearly every level. At the start we had a key requirements:

    Speed: Speed is critical when using a terminal, especially for commands that can have a lot of output. In practice, this means Warp should always be running at 60fps even on 4K or 8K monitors.

    Compatibility with Existing Shells: Warp needs to work with popular existing shells like Bash, ZSH, and Fish and with existing keybindings.

    Multiplatform, including supporting the Web: Warp needs to run on multiple platforms, including rendering Warp in a browser to support real-time collaboration.

    Integration with shells to support blocks (including over SSH): To support features like blocks, Warp needs to be able to integrate deeply with the current running session in the shell.

    Arbitrary UI elements: Unlike traditional terminals that mostly just render characters, Warp needs to render arbitrary UI elements (snackbars, overflow menus, etc). This is critical to our vision of making the terminal more accessible and functional.

    Native and Intuitive Editing: Warp needs a full text editor to support intuitive editing (e.g. selecting text, cursor positioning, and multiple cursors) that users are familiar with from other modern applications.


    Rust + Metal
    One of the most important priorities when building Warp was speed. Many terminals built on Electron are capable tools but can quickly lag under certain conditions. Since we’re adding a layer of UI on top of the terminal, we wanted to be sure we chose a stack that would allow us to be in the upper echelon of terminals in terms of speed even while rendering more complicated UI elements.

    There are quite a few points during the process of outputting text to the terminal screen that can be potential performance bottlenecks for a terminal. A few include:
    Reading from the pseudoterminal: Reading from the pseudoterminal (see the Implementing Blocks section for more context on what a pseudoterminal is) and parsing ANSI escape sequences can be expensive, especially if there is a program running that prints a lot of output to the screen (such as cating a large file)
    Rendering: Depending on the implementation, actually rendering pixels onto the screen can be expensive. If the terminal has output that is constantly changing, this can very quickly cause a terminal to feel laggy and be under 60fps.
    Scrolling: Once the terminal viewport is full, new lines that are printed out to the terminal require the previous lines to be scrolled up before re-rendering. Scrolling speed often scales with the number of visible lines in the viewport.

    The diagram below shows the output of vtebench for scrolling in various terminals. For some reason Hyper generally could not handle running the benchmarks at all and did not terminate after a reasonable amount of time.
    Interestingly, GPU-accelerated rendering for terminals has become fairly standard recently (iTerm, Hyper, Kitty, and Alacritty all support it). It may seem that rendering on the CPU would be better suited since it’s mostly just text and 2D shapes that are being rendered. However, terminal rendering is more complex now than it was in the 80s. Terminals today need to be able to render high resolution text on a 4K display and possibly at a very high FPS since some displays run at 240hz or even higher.
  • Věda a technologie

Komentáře • 22

  • @casadogaspar
    @casadogaspar Před 5 měsíci +20

    The last thing a Hacker would use is a terminal that track your info for 'improvment reasons''

  • @andrewcrook6444
    @andrewcrook6444 Před 6 měsíci +8

    I don’t use terminals that require an online account full-stop

  • @binarysource
    @binarysource Před rokem +7

    Terminal didn't begin with DOS - Unix terminals pre-date it by at least a decade and it wasn't the only system that had an equivalent.

    • @jduprey
      @jduprey Před 6 měsíci

      It all began with.. DOS? No. Not even.

  • @cidhighwind8590
    @cidhighwind8590 Před rokem +8

    The editing…why god why…

  • @schto173
    @schto173 Před 8 měsíci +1

    Good one. Thanks for showing it!

  • @cristianorodrigues9353
    @cristianorodrigues9353 Před 6 měsíci

    Congratulations on the project ! Do you have a Linux version?

  • @kadirozmen141
    @kadirozmen141 Před rokem

    Thanks😊

  • @jeffg4686
    @jeffg4686 Před 2 měsíci

    @4:31 - how much did the advertisers pay for that one.

  • @franciscordon9230
    @franciscordon9230 Před 7 měsíci

    Loved this one! Super helpful and full of details. The search on the top results was amazing!

  • @pipper_papper
    @pipper_papper Před 2 měsíci +1

    really gonna get the zoomers with this one

  • @anonymoususer13666
    @anonymoususer13666 Před 6 měsíci

    I fucking love warp

  • @OGMann
    @OGMann Před rokem

    It all began with dos? 😂

  • @pico3378
    @pico3378 Před rokem +3

    With all due respect, I feel you're milking the coral AI thingy, I always see your shorts with it and it gets a little bit repetitive.

  • @gabrielherz2781
    @gabrielherz2781 Před měsícem

    40 requests to AI? paying 22 euros per moth??? really?? and with 200 requests as limitation . come on!!!

  • @i--i4933
    @i--i4933 Před 11 měsíci

    linux when

  • @rand0m-pers0n
    @rand0m-pers0n Před rokem +1

    First yoooo im fast as fuck boiii

  • @beepmach
    @beepmach Před 6 měsíci

    The words covering your mouth - no good. lose them. put them lower down.

  • @JNET_Reloaded
    @JNET_Reloaded Před rokem

    lol ex google ppl using gpt when bard is a thing an thats google haha makes little sense!

    • @TJ-om4zy
      @TJ-om4zy Před rokem

      I don't think bard has an api