• Modern UX

    Edit and navigate faster in the terminal with Warp's IDE-like input editor.

  • Warp AI

    AI suggests what commands to run and learns from your documentation.

  • Agent Mode

    Delegate tasks to AI and use natural language on the command line.

  • Warp Drive

    Save and share interactive notebooks, workflows, and environment variables.

  • All Features

Warp supports subshells with modern IDE, blocks, and autocompletions

Melanie Crissey

Thumbnail for Warp supports subshells with modern IDE, blocks, and autocompletionsWarp supports subshells with modern IDE, blocks, and autocompletions

Subshell support is here! Now you can “Warpify” your bash, zsh, or fish subshells to enable all the core features you’d expect from Warp, even when you’re working in a nested session.

Thumbnail for

Warp displays a banner inviting you to "Warpify subshell."

What counts as a subshell?

The classic definition of a subshell is any child process launched by a shell or shell script.

Within the context of Warp, a “subshell” is defined as any nested interactive shell session that’s spawned and running in the context of an existing, running shell. Common examples would be a shell session running a Docker container or a remote server accessed through SSH.

How to Warpify an initiated subshell

Until now, if you initiated a subshell while using Warp, the terminal would fall back into a sparse mode. You could continue to work, but you’d lose access to the features that make Warp more powerful and easier to use than your basic emulator.

Now, when you initiate a subshell that Warp recognizes as compatible, you will have the option to “Warpify” that subshell. This will enable the complete Warp experience with: modern IDE-style output, blocks, autocompletions, workflows, AI Command Search, and so on. 

Out of the box, Warp has a short list of commands it will recognize as “subshell-compatible” including:

  • bash, zsh, fish
  • docker exec
  • gcloud compute ssh
  • eb ssh
  • poetry shell

Warpified subshells get wrapped with helpful labels and visual cues. And, you can nest endless subshells within subshells if the need arises.

Thumbnail for

Each subshell is wrapped with an indicator that describes the type of subshell session that's running.

Customize your subshell preferences

You can also add your own custom list of bash/zsh/fish commands under Settings > Subshells

Once added, commands that initiate subshells will generate a prompt that lets you “Warpify” on the fly. If you’d like to remember your preferences and bypass the banner, you can edit your RC files for automatic Warpification. 

On the flip side, if you’d prefer to never Warpify one of the commands Warp recognized as “subshell-compatible,” you can use the blocklist under Settings > Subshells to ensure you’re never interrupted with a banner.

Go forth and Warpify

Support for subshells has been one of the most highly requested features. We’re so glad to make this available and excited about what this unlocks for developers — especially teams that work with CLIs that generate subshells as part of key workflows.

Check out the docs or run a command like docker exec to experience the power of Warpification today!

Related

Thumbnail for Dynamically sync env vars into your terminal sessionDynamically sync env vars into your terminal session

Dynamically sync env vars into your terminal session

By Warp Team

Trusted by hundreds of thousands of professional developers

Download Warp to get started

Download for Mac
Thumbnail for null