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

Custom triggers #630

gagata announced in Product ideas
Aug 25, 2021 · 15 comments · 6 replies
Discussion options

Is your feature request related to a problem? Please describe.

Requested on Discord by zouhir

Describe the solution you'd like?

what are custom triggers?
allow users to define some regular expression and when matched in a command output, trigger an action. Example:
- if matched '^ERROR.*' -> highlight red.
- if matched ^https?:// -> make clickable link

Additional context

iTerm2 triggers & supported actions

You must be logged in to vote

Replies: 15 comments 6 replies

Comment options

+1 on this. The one big thing I miss from iTerm2 is their trigger support, namely:

  • Highlighting text various colors when it matches some regex
  • Having text link to a URL if it matches some regex, where the URL includes the matched string
You must be logged in to vote
5 replies
Comment options

Hey, just wanted to bump this and see if it’s on the roadmap at all or if there’s any blockers to implementing. I still miss this feature a lot 😅

Comment options

+1 on this. I use this feature with iTerm all the time with my work. This is the only thing holding me back from fully switching to warp

Comment options

I'm a vibe coder. I would like Warp to have common sense. I would like it to automatically know that it should format everything, so as you save copies, the copies do not get effected by edits to the original. I would like a file manager. Which keeps track of what types of files go into which folders. I made a diagram for how a good LLM would work for a Vibe coder. I would put it into Warp so they can grab my idea, but I don't think they want me to put it in their system. At any rate, there are several small steps in my break down of what an LLM should be for a "Vibe Coder". You know, when you know your dealing with people who don't know what they are doing, you have to make some assumptions. I think Warp should focus more on those assumptions. I assume you want to make copies to save. I assume you want to keep structured files, and not have me throwing notes and tests all over the file. Meh, I couldn't have done it without you guys!. My structure is prompter, translates the conversation from common speech into computer code. Then a Code selector, that actually picks the best code for the job. That was a big issue for me, as the Warp program wanted to aim towards HTML for a bunch of things at first, where HTML really wasn't a good option. It had a poor decision making process for which languages, and which formats to use for a guy who knows nothing, but explains himself in English. An organizer, to keep your files managed. A file recognizer, which knows how files work with eachother on a more general level, and keeps track of this. This helps to determine for example when a test goes in the test folder... So many times Warp just couldn't seem to understand that a test, should go in a folder named tests with all the other tests.... A feature tracker, so Warp has a list of your project's features. So when it goes to back-test, or smoke-test, it doesn't end up leaving out a ton of your features. You end up having to go back on it, and test everything yourself. Because it just seems to kind of... not test everything. Unfortunatly, 3.5 Sonnet, actually caught tons of mistakes warp failed to find. However Sonnet also broke the programs in general... But I asked warp specifically.. Why does this program fail to close.. oh no problem no problem.. Switched models.. no problem no problem.. Used 3.5.. There's a timeout window of 5 seconds for 2 things causing a 10 second closing time.. Okay,, And this thing I want to devote my life to, failed to find that, despite mentioning it over and over and over again. Moving on... They could have specific Code LLM's. So instead of the stupid thing EVERYONE is doing, trying to handle all these languages at 1 time.. You could just work in Java, or C... Or Python... But We're all running weights from everything all the time... HUGE waste of resources. A test maker, that automatically gets the tests ready for a Vibe Coder, knowing that the Vibe coder won't know much, so it has to double check everything, so it plans it's tests out as it goes. Simple list. A save feature, where the program just saves back-up copes. So for a 5 hour period, it saves 11 copies. The copy to start, then every 30 minutes a new copy is saved. After the quota is reached, it recycles, so it never saves more then 11 copies. User has to know that there will be a certain amount of HD space dedicated to saving files. Make the Debugging process like Sonnet 3.5. It runs non-gui tests. Warp gets stuck in loops constantly trying to run tests. You gotta stop it, then tell it got stuck.. It used to argue with you.. But anyways, Sonnet 3.5 just does the testing, then corrects it, and keeps flowing with no GUI's or anything popping up.. And it just seems to do a better job then anything I have seen from Warp's selection... but 3.5 kinda sux in ways... And I think that the system should automatically make regular assessments on how to optimize programs. Of course, that in reality would involve various code style changes. Turning Python into C, or Rust. Lots of complication. But if it just kinda kept track of things as it went, and then built up some suggestive measures, the LLM would probably have an easier chance of optimizing your program. And a Note Keeper. I asked GPT about "what makes professional notes for software development"... And he had a small library of various categories which are pretty much standard practice with developers. So why not just incorporate that note structure into the whole thing. Then even if you don't understand how to keep professional notes, the system keeps the professional notes, and thus keeps it's self lined out... Notes can be a duel edge sword however... and are not as simple as words on paper... Wrong notes, in the wrong places will produce consistant wrong responses and errors... And realizing your notes can actually make the program respond in a way is important. But a really good LLM, would know that when it makes adjustments, that the notes it keeps would also need changed... So if you for example had it make 1 feature, then changed that feature, it would adjust those notes... Not rely on my remembering to change those notes.. Because you end up running into situations where you have double commands in the notes, and it does the same thing twice. Then you get duplicate code... and it's all from the notes.... But yeah.. Love warp, hate being poor. If I wasn't poor, I would have Warp on a video camera hooked to my face all day long... But since I am poor, I'm probably going to have to try and figure out a way to engineer my own coding LLM which can run on less resources by using levels of processes... Like... Only using Python, while keeping many other aspects stored on the HD ready to load when needed... But I'm sure they know how to do these things... I'm just surprised they don't have their own custom model that runs with more efficiency..... It's like Deepseek 408B... It runs 32B at a time.. But you gotta load the whole 408B... There's a lot of parameters that are for C, Java, Rust, C++, Zig, Assembely.. and the only parameters I'm really using are for Python... So why do I want to handle the weights of all those languages.... The whole aspect of how everyone is doing everything is stupid.. and wasteful.... But yeah... my 2 cents, that don't earn me a dime!

Comment options

Oh, and it can't seem to understand how to make scroll bars.... And it needs to default to make everything easy to copy and paste, so you can feed it various information with a simple right click copy paste feature. And it seems to not really think about the fact that stuff needs to be saved... I don't really totally know how to explain it's problems with testing... Like.. It knows... You want something to function a certain way.. Then you tell it to test it, but it doesn't really make a good test.... And I already mentioned this, but as I went through things to see just how far my program was off truly being finished.. I realized it just isn't saving stuff..... So what I thought may have been ready for a test... turns out was a giant waste of time, that's still pretty much dysfunctional.. And every time, I'm like... Lets get ready to test this... and then there's always an issue... And it's weird, because it seemed like once it was RIGHT AT THE END... It just like... Makes impossible stupid errors... And I guess maybe that's the people under the ground in the bunkers trying to stop me... Like, I understand that problem pretty well too... But.. Other then all the shit heads in the bunkers trying to stop the surface people from succeeding in taking the AI tit away from them.... Some of these mistakes seem..... idk.. almost intentional.. But hey hey hey.. I do realize there are people under the ground.. So honestly, maybe it was the bunker and not warp... I guess I gotta kinda defer some of this krap into the unknown.. because the underground is real... and they produce very few actual products... So the Crypto and the AI have pretty much been defended with blood since the whole thing started.

Comment options

Oh and... Because you can get caught... It is proof, in the pudding, they either A, evaluate your CPU, and your Machine ID using commands against your approval. Or B, they save all of your work, and your software that you make, which probably sits in the user agreement, as their property also... So... If you do anything special.. and you can't afford your own coding AI, in your own house... Then you're SOL... they own it... And worse yet... If you try to get a good Coding AI, the Federal Government will watch you, in a bad bad way. And they won't let you block your chip ID's and your Machine ID's for this reason. Why did Linux allow a command to leak your information? What idiot is like "Hey, can you make me a super secure OS, with password protection, oh hey, by the way, let people use commands to run my Machine ID." Which I know for a fact that they only save your programs, and won't run machine ID against your approval. But.... I mean... If I made 100k a year... would I really want the program I spent all my time on, sitting in the hands of people who quite obviously are saving my work? And there's the crux. If I had the money, I wouldn't want them saving my stuff. If I didn't have the money, I couldn't afford the service. So somewhere in the middle, you gotta figure... Obsification? Oh yeah, the suggestion.. That fancy word that means to make all your krap so random that no one can understand it. I'd just unblock it. Oh and as the voices in my head discuss this Obsificatoin thing... They are saying you could obsificate on a system wide level, and still evaluate patterns. But User ---> System --> Log ---> interpreter. But as it goes, User ---> System ----> Log ---> Company. And I would say you can trust the company, or the government, but they are all people. They like money, and they'll do whatever they think they can get away with. Just like everyone else.

Comment options

Combining triggers with collapsable blocks +/ compact mode

only show one line of output, for instance when running yarn add react, for example it would be useful when upgrading from yarn outdated output

would be great if the output is smart ;) and you can activate it with something like shift+enter

The way I imagine it is that all output is squashed into one line with an ability to expand (or scroll).
It really depends on your current workflow in the terminal. Some commands, like code generation or package installation give a whole bunch of lines of output while the only thing I need to know is "success" or "failure". It's nice to have the blocks as a history without having to scroll a whole bunch.

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

From @rkabrick via discord:
https://discord.com/channels/851854972600451112/906269689116770304/909451712190894130

4.) Trigger commands based on Warp environment... Essentially IFTT but in the terminal... If certain events occur then background events get triggered. This could be something like:

  • If $CWD == Project-1: fd "TODO" ./ to print out TODO comments found inside repo
  • If error found in a cell w/ a corresponding filename: set $ERROR to that file so that vim $ERROR is possible
  • If working on project (extension of my previous idea): Trigger VPN connection if applicable.

The possibilities are really endless with this and I think it could be a really cool feature for Warp to have

You must be logged in to vote
0 replies
Comment options

From tetromino via discord: https://discord.com/channels/851854972600451112/852249738002956311/933808140301008988

Apologies if this has already been requested, one of the requirements we have for engineers is to change the terminal colouring when connecting to a remote SSH connection, production for example. We can do this in iTerm using profile switching triggerd from a regex on the host.

Do you foresee, adding of profiles and a way to dynamically swap between them?

You must be logged in to vote
0 replies
Comment options

A huge +1 from me on this one - this is the only reason I am still keeping iterm2 around. I have written a whole bunch of triggers that will change colors of matched strings in iterm - so I can easily distinguish important stuff in huge log files.

If Warp would add this, I would be able to migrate completely 🙏🏻

You must be logged in to vote
1 reply
Comment options

+1, I do the same with the colors. I also Post Notification for certain conditions on long-running commands. Lets me switch to the browser until something happens..

Comment options

Someone shared this cool feature from Wezterm:

a quickselect mode that allow quick copying of items by pressing character keys, similar to wezterm https://wezfurlong.org/wezterm/quickselect.html

You must be logged in to vote
0 replies
Comment options

regex triggers that run commands are a big part of my workflow, I would love to try warp if it had that feature.

Most of what I do in the terminal is compilation commands (watch/test/compile) and I have lots of triggers that run custom code based on matched regex.

I feel like the block basedt nature of warp would make my workflow even more powerful, since in iterm it can only match one line at a time.

You must be logged in to vote
0 replies
Comment options

+1, iTerm triggers are essential for me, and that's the only reason I'm staying with iTerm for now.

You must be logged in to vote
0 replies
Comment options

+1, the iTerm is essential for my everyday job. I can't fully switch without it.

You must be logged in to vote
0 replies
Comment options

any update on it feature "custom triggers"

You must be logged in to vote
0 replies
Comment options

I would also like to see this feature port over is the one thing holding me back

You must be logged in to vote
0 replies
Comment options

For me, I use triggers to automatically launch certain websites when I am using ssh.

For example, if I wrote a script that outputted OPEN_IN_HOST::https://github.com, it would open the browser on my host system

You must be logged in to vote
0 replies
Comment options

Thats a great idea Ian...
...
Message ID: ***@***.*** .com>
You must be logged in to vote
0 replies
Comment options

that would be very cool to implement, I've been using this in iTerm2 and it's been really helpful to easily find errors :)
image

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Converted from issue

This discussion was converted from issue #145 on January 20, 2022 06:28.

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