Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Supporting shell completions (spec) #434

Discussion options

Is your feature request related to a problem? Please describe.
Ex. I'm always frustrated when autocomplete doesnt work.

Eg:

  • touch TAB doesnt work
  • ~/pre TAB doesnt work (should expand to ~/prefix
  • ninja ins TAB completes to ninja install_manifest.txt, not ninja install
  • cd rustd TAB completes to cd rustdoc/, not cd rustdoc, where I can then specify I wanted to go to rustdoc-json, (in rustc src/test dir
  • man cla TAB doesn't comlete (zsh shows clang clang++ clang++-12 clang-12 classes.conf)

Describe the solution you'd like

I'd like to be able to deligate to the underlying shell to provide autocompletion.

You must be logged in to vote

Replies: 83 comments 63 replies

Comment options

Makes sense as a request.

Our current approach is to try move this logic into Warp by building out our own completion grammar and library, with the rationale being:

  1. Shell autocomplete is pretty hard to configure
  2. You lose most of your completions when you go to remote boxes unless you've also configured completions on them
  3. The current shell completion specs are (in our opinion) pretty hard to write new completions for

That said, we are missing a bunch of context right now from the shell which is making our completions worse than they should be. And we just have a number of bugs. I think we will see how far we can get without delegating to the shell, and add that as a fallback if we can't make it great.

Thanks for the report.

You must be logged in to vote
7 replies
Comment options

I'm seeing this today with Bazel & Kubernetes, both of which use compinit in zsh.

Comment options

Is there a way to create custom Warp completions for custom scripts? I have created many handy bash scripts for which I created bash completions, however, those are useless on Warp.

Comment options

All I know, is you can spend over 700ドル a month on this garbage, and it can't take 4 words off a screen in 10 hours, unless you know how to direct it... Amazing what it can do.. if it costed 20ドル. But you can literally spend over 2000ドル a month on Warp. After that 20,ドル they drive the price up to over 20ドル for like 400 or 600 requests. So at first you pay, and your like okay, 20,ドル this is cool, and then after a couple days, when you spend your money, you realize your spending 50ドル a day sometimes to keep going... And it's pretty addictive, and pretty amazing... But... The money... VS. it's inability to do simple things, like make sure your files are able to be copied, and then unmanipulated by the edits to the original.... And it's inability to keep your files clean, causing massive overhauls to the organization after you have spent hours trying to get things done... and then messing up trying to organize things... I mean I have tried everything to "Vibe Code" with, and I do admit warp is amazing... But to actually afford it... You'd have to be 100k+ per year, a developer, or just using it in a very worst case scenario. Maybe using Github primarily, and then using warp to fix all the mistakes... I love it.. It's just insane what they want to charge. I could pay like 50ドル a month or something, but you get WAY more time on Github for the same price.. Even if it's a pinch less accurate.... I do admit if I ever get rich, I will pay for warp for my whole family. But unless I'm rolling 6 figures... I just can't afford it... and neither can most people who aren't already wealthy enough to make their own coding LLM on their own server and avoid all the publication of their work... meh.

Comment options

Ohh, that's damning. Is this a death knell? I really like warp for what it provides except that AI part, which just gets in the way. The only dark spot in Warp is this lack of shell completions. Is a shame that all the ai functionality can't just be kept separate from the core product and allow users to opt to use warp in an agentic manner or continue to use it in a sane classic way that preserves the users control over execution of commands.

Comment options

  1. Shell autocomplete is pretty hard to configure

For some people, not for me. And you know, we are in the AI age, therefore, this issue can be very easily overcome.

  1. You lose most of your completions when you go to remote boxes unless you've also configured completions on them

Maybe, but if I need them there, I’ll make sure there are installed there too. YMMV, but this is an irrational reason for not supporting shell completions IMO.

  1. The current shell completion specs are (in our opinion) pretty hard to write new completions for

But they are still de facto stamdards im various shells, therefore: who cares? As you can see, there are many actual users of shell completions who rely on them, therefore, IMHO Warp should follow the convention in this case. I have no problem with Warp being a pioneer in the next shell completion convention, however, in the meantime, I think you should just add support for shell completions.

That said, we are missing a bunch of context right now from the shell which is making our completions worse than they should be.

This smells like a skill issue (but I might be wrong). If everything else fails, just look at other open-source terminals, see how they do it and adapt it for Warp.

I am really interested in what context exactly you miss and the issues you face.

Comment options

Maybe a hybrid aproach works best, where if you know about a tool (npm, etc) you provide native support, but if not, you can delegate to the underlying shell (ninja, r2, rg etc).

Some of the more basic stuff (starting with ~ or /, completing touch) should definatly be fixed in your layer

You must be logged in to vote
2 replies
Comment options

Shall-defined functions should also be included in the auto-completion. If i say
myfunction () { bla bla }

The myfunction should be available in auto-complete. Just like normal zsh.

Comment options

The myfunction should be available in auto-complete. Just like normal zsh.
Not just zsh, but also Bash and many other shells.

Comment options

Yup, we will explore that. We actually started with an approach of delegating the shell, but it did introduce extra latency. As a fallback though it might be acceptable. Appreciate the feedback.

You must be logged in to vote
0 replies
Comment options

Is your feature request related to a problem? Please describe.
Ex. I'm always frustrated when autocomplete doesnt work.

Eg:

  • touch TAB doesnt work
  • ~/pre TAB doesnt work (should expand to ~/prefix
  • ninja ins TAB completes to ninja install_manifest.txt, not ninja install
  • cd rustd TAB completes to cd rustdoc/, not cd rustdoc, where I can then specify I wanted to go to rustdoc-json, (in rustc src/test dir
  • man cla TAB doesn't comlete (zsh shows clang clang++ clang++-12 clang-12 classes.conf)

Describe the solution you'd like

I'd like to be able to deligate to the underlying shell to provide autocompletion.

Completion using variables is also broken, e.g. ls $HOME/Dow expands the variable and autocompletes to ls /Users/simjnd/Downloads but it doesn't work in Warp

You must be logged in to vote
0 replies
Comment options

Throwing my +1 into the mix on this that the autocomplete issues definitely hinder my ability to use Warp as a primary driver right now. I also source an open source git_completion.sh script to get autocomplete for git branches and commands, but that doesn't seem to work with warp either. Would definitely like a fallback to native autocompletion when warp has no suggestions.

You must be logged in to vote
0 replies
Comment options

I think the lack of make autocompletion is related too.
Otherwise I may open another feature-request to support make 🙂

You must be logged in to vote
0 replies
Comment options

While it's a beta (and pretty impressive so far - I find very little of what it actually does that I don't like a lot!), not having some sort of command completion at least for filenames working is really going to make things difficult to continue. Maybe my setup (bash) is interfering, but even just '. ~/.bash_al' doesn't do anything - no list of files, no default pick, nothing. I have no choice but to retype in the file name completely. Anybody reported anything in bash that might interfere with what you're building (so I could at least get the minimal file completion?)

You must be logged in to vote
0 replies
Comment options

I definitely think that the shell needs to take precedence here over any autocompletion by the terminal. I have my shell configured exactly how I want it to be, with the autocomplete that I want it to have. Regardless of if I'm using Warp, iTerm2, Terminal.app, or any other terminal, I don't want to have a difference experience. The terminal should enhance the shell, not replace it.

You must be logged in to vote
0 replies
Comment options

I definitely think that the shell needs to take precedence here over any autocompletion by the terminal. I have my shell configured exactly how I want it to be, with the autocomplete that I want it to have.

+1 for this!

Having default autocompletion included in the terminal is fine, but I think that users must have the ability to customize it exactly the way they want is very important.

Being able to simply use what was already made at the shell level would be best, but another acceptable possibility, imo, would be to be able to customize it with a config file for Warp.

As someone else mentioned already, this is the single thing that prevents me to daily test Warp.

You must be logged in to vote
2 replies
Comment options

Same here! This is preventing me from switching to warp from iterm

Comment options

+1 So far I like Warp a lot, but configurable completions is a must have.

Comment options

I think a JOSN like command structure would be of great help. More info here: #585

You must be logged in to vote
0 replies
Comment options

From @arunkumar413

Hi Team,

Most of the Linux commands don't have a common structure. Each command has its own options and flags. I recommend a JSON like structure for the commands and their options.

For example:


{
 commandName: "ls",
 options: {
 all: true,
 author: true,
 humanReadable: true,
 recursive: true
 }
 }

This JSON like structure should be parsed into the regular Linux commands and executed. We'll have a terminal feature like text editor that takes JSON input, interprets the JSON like structure into regular commands and outputs the result.

This feature would make the documentation, linting, code completion easier. Each command option would be self explanatory and easier to understand.

Note: This wont be a complete replace of the existing command line but just an addition to the existing command line which takes a JSON structure as a command.

You must be logged in to vote
0 replies
Comment options

Had a ticket related to this discussion here: #622.

I was having issues using commands like kubectl and skaffold where the tab autocompletion would simply do nothing (presumably because there wasn't a file in my working dir with the same prefix). I think in cases where the command is unsupported, delegating to shell is a good way to go, even if it adds latency.

For kubectl for instance, the shell completion fetches suggestions from the k8s API I believe to give autocompletions that wouldn't be found on machine. I can see how this would be tricky to build a custom solution for in Warp so falling back to shell could be a good stopgap.

You must be logged in to vote
0 replies
Comment options

From ChrisVarenChris via Discord: https://discord.com/channels/851854972600451112/852251449068486773/900932342653255700

i assume a shell's native completion system is just incompatible, so you need to write new ones for Warp? At the moment, this 100% what's stopping me from using Warp for the majority of work. A crowd sourced repository of open source completions wouldn't solve it since we have completions for internal tools that are used all the time. Though most of these completions are autogenerated from getopt-style help texts so just the ability to have custom user completions would be enough. (I believe fish shell auto-magically generates completions in a similar way)

You must be logged in to vote
0 replies
Comment options

It doesn't autocomplete functions defined .zshrc, e.g.
function rstoserver { rsync 1ドル user@server.com:2ドル }.
Is there a work around?

You must be logged in to vote
0 replies
Comment options

From blitz2145 via Discord: https://discord.com/channels/851854972600451112/906269689116770304/908912605232529418

Perhaps this one is out of scope for the warp terminal in the short term, but the UI could build on a shell that supported this theoretical completions protocol. How about something like the LSP (Language Server Protocol) but for autocompletions, perhaps cli programs themselves could be invoked to output completions for their own commands, rather than having to build stuff like fig (which is nice, but cli programs themselves should take on the responsibility for completions), etc. The Oil shell actually has a great design/architecture for how to do this, https://github.com/oilshell/oil/wiki/Shellac-Protocol-Proposal

You must be logged in to vote
0 replies
Comment options

+1

You must be logged in to vote
0 replies
Comment options

I was going to swap to warp, but this issue is a serious dealbreaker. Unfortunate, back to Hyper for me.

You must be logged in to vote
1 reply
Comment options

I have been using Warp for many years. Today I found this issue and decided to switch to another terminal.😭

Comment options

So still nothing on this after 4 years. You cant just tell every other cli tool that you dont support to go fuck it self. at least have an option to turn off the warps completion so we can use shell completions or a way to submit cli tool completions to warp. How can you just be silent?. You keep adding all this ways to interact with AI but dont care about this crucial issue

You must be logged in to vote
1 reply
Comment options

So still nothing on this after 4 years. You cant just tell every other cli tool that you dont support to go fuck it self. at least have an option to turn off the warps completion so we can use shell completions or a way to submit cli tool completions to warp. How can you just be silent?. You keep adding all this ways to interact with AI but dont care about this crucial issue

Thats exact the point, AI can be implemented if everything else is working as it should, thats how i see it.
But AI is in the time now the super seller i think, so every software need to have it, regardless if it is needed.
Every IT professional will not use it if autocompletion will not work.

This shell has the potential to be the new standard for all, also for it professionals but for that this has to work.
I think you will sell more if this is working, i think you loose so much possible customers this way.
Because right now every it professional will download it and use it until he gets that this isn't working and thats it. (like me, at first i couldn't believe that this common thing isn't working)

So please have a look into this!!!

Comment options

+1 - Without shell completions, Warp, which otherwise looks great, is a not-starter.

You must be logged in to vote
0 replies
Comment options

Agreed, this is kinda a deal breaker for custom workflows, and really breaks a corner stone of CLI :/

You must be logged in to vote
0 replies
Comment options

Is this still not implemented?
Only reason I stopped using a few months back when ghost came out. Ridiculous destruction of productivity

You must be logged in to vote
0 replies
Comment options

This has been on the list for 4 years and is pretty much my only blocker from using this tool permanently. Honestly this is a bear signal on y'all succeeding (thus not worth building my workflow around)

You literally would save money with less AI api calls by using the default shell behavior here. Please don't bet on pure vibe coders. If you're building a dev tool, build for devs. Optimize your roadmap for vibe coders second.

I recommend you get leadership involved here. Maybe doing so will help with your adoption rates.
image

All the best team.

You must be logged in to vote
0 replies
Comment options

I was not expecting this. This is really bad and unfortunately breaks too much for me to be able to use this :/

It's good to be different, but you should try to keep some basics around that people rely on :)

You must be logged in to vote
0 replies
Comment options

+1. This thread seems to have got a little hostile. But I think the ability to add your own completion specs would be great.

You must be logged in to vote
0 replies
Comment options

sorry if i miss topic but guys please finally fix it

image

every time in powershell command adding first character Georgian "პ" utf8 and no more command not working after and full session is dead :(

You must be logged in to vote
0 replies
Comment options

Wild. I'm switching to Ghostty.

You must be logged in to vote
2 replies
Comment options

tried to move to ghostty but failed 🥲

Comment options

Ghostty lacking many features. Company blocked warp so can’t use at work and my days it’s so annoying having to config a terminal to have what warp has out of the box. I’ve just been using basic wezterm cause I can’t be bothered to setup terminal

Comment options

There is one positive thing about that. I somehow managed to learn every command's "commands". 😂

You must be logged in to vote
0 replies
Comment options

Damn I tried to implement my own custom tab completion for a program I write.
And nearly go crazy about it. Just to find out my script is completely fine. Warp just doesn’t support it. :(

You must be logged in to vote
1 reply
Comment options

lol, yup! 2 hours wasted today.

I was using compdef and all I was getting for auto complete were file folders.

I tested in Ghostty and would you look at that, it's was working this whole time.

Comment options

This has been rubbing me the wrong way and I've been thinking of switching for a long time now. But, inertia is a powerful thing so I kept using Warp. Today, it updated and shoved in my face notifications about a bunch of AI features I never wanted in my terminal. At the same time, this is just getting ignored.

So congratulations, you finally managed to change me from someone recommending warp to others to switching away from it today.

Clap ... clap ... clap ...

You must be logged in to vote
2 replies
Comment options

Tabby, Ghostty, and maybe WindowsTerminal if you are on windows

Comment options

Thanks, I'm on Mac and I reached for Ghostty as first choice. I pretty much rage installed it just a few hours ago but so far so good. :)

Comment options

Time walks away and still no autocompletion.
So much time was spent here to work out AI and the coders tools, would be great if someone would have a eye on it administrators so that we can also use it.

You must be logged in to vote
1 reply
Comment options

it seems AI gets everyones time these days. Not necessarily instead of this particular issue, but generally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /