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

Workflows V1 #625

Jan 19, 2022 · 5 comments · 23 replies
Discussion options

[0] Overview and Mockups

Entering commands in the terminal can be tedious and hard–developers often need to construct commands one argument and flag at a time, often using StackOverflow.

Workflows (formerly called Tasks) make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Warp wants to make it easier to enter commands by launching with 100+ common workflows and an open-source file format--so devs can create private workflows for themselves or their team.

Please comment with feedback, we’ll create an individual sub-thread for each mockup and memo section!

[A] The Workflow’s menu.
A
[B] Filling a Workflow in the Input Editor with the menu expanded.
B
[C] Filling a Workflow in the Input Editor with the menu collapsed and tab completion.
C

[1] Pain Points and Goals

Our team, tends to run into a few pain points when entering commands:

  1. We need to find a command but
    1. the arguments and flags do not represent the task we are trying to perform
      1. To "undo last git commit" -> git reset --hard SOFT
    2. our team's playbook (guide) lives outside of the terminal
  2. We can’t find aliases that other team members have made
    1. No store to browse aliases
    2. Sharing, revoking access, or updating aliases through version control is not straightforward, especially
      since aliases are global
  3. The shell does not provide enough documentation or UI to help enter parameters to commands

[2] How is this Different from Aliases?

Power users tend to save aliases, create shell functions, and leverage CLI tools that streamline this.
Aliases, however, have major pain points:

  1. need to context switch
    1. leave vim, source dotfiles, or reset shell
  2. it’s difficult to attach documentation
  3. are not easily searchable or sharable
  4. are not easily parameterized

Getting aliases and functions to a productive state requires an upfront investment that’s justifiable for devs who
spend most of their workday in the terminal but less so for beginners and casual users.

[3] Workflows V1

We’re planning on the first launch of Workflows to include:

  1. The ability to search and execute a workflow directly from the input editor
  2. The top 100 workflows across various commands already bundled
    1. git, sed, and grep
  3. The ability for devs to create private workflows in an open-source file-format, including repo-specific workflows that live in a .warp directory
  4. The ability to create a workflow from a Block by right-clicking on it

[4] S/O Open Source Projects

These are some of the open source projects that we’ve gotten inspiration from: tldr; cheat.sh, cheatsheets, navi, howdoi, cheat, how2, kb, eg.

Navi in particular!

[5] Question for the Community

We’ve made a thread for each section; please reply in the appropriate threads to help organize discussion!

We'll ship with some prebuilt workflows, what are some workflows to include?

If you can, try to use this format:

Title of workflow (what does it do)

Extract a field from a json

Command

cat channel_versions.json | jq '.stable.versions'

Parameters

channel_versions.json -> a json file

Articulation or links to StackOverflow (or other sites)

https://stackoverflow.com/questions/39228500/extract-a-specific-field-from-json-output-using-jq

You must be logged in to vote

Replies: 5 comments 23 replies

Comment options

[5] We'll ship with some prebuilt workflows, what are some workflows to include?

If you can, try to use this format:

Title of workflow (what does it do)

Extract a field from a json

Command

cat channel_versions.json | jq '.stable.versions'

Parameters

channel_versions.json -> a json file

Articulation or links to StackOverflow (or other sites)

https://stackoverflow.com/questions/70777851/need-feedback-on-warps-workflows-v1

You must be logged in to vote
2 replies
Comment options

1.

Title of workflow:

2

Title of workflow:

  • kill a port
    Command:
sudo lsof -i:8080 // this outputs the PID
kill -9 <PID Number>
Comment options

Title of workflow:

  • Project start - open a particular directory, open 4 tiled windows (2x2 square) and run particular services in each
    Command
  • Dependance but similar to cd ~/{project}, split the terminal and run ./app/run1 in the first terminal, cat app/file.log in the second, etc.
Comment options

[0] Overview and Mockups

Share your feedback on the mockups here! When referring to a specific mockup, try to include the mock's id / label: A, B, or C

You must be logged in to vote
1 reply
Comment options

I like the command pallete for searching for tasks.

  1. (Mock A)
    Once a command is executed, it would be nice if there was a successful toast banner that informs the user that the command successfully executed
Comment options

[1] Pain Points and Goals

Share your feedback and experiences on the pain points and our goals here!

You must be logged in to vote
5 replies
Comment options

I could imagine Warb workflows being shared with others.
It would be nice to have a user profile with Warp (connect with Github?)
You can follow others.

Example

  • Imagine my coworkers and I use Warp>
  • Having the ability to follow someone (coworker etc) & be able to see their public scripts would be nice.
    • I work with Backend engineers & SRE's and they have all the awesome cool commands for SSH & grepping machines & it would be nice to be able to see those (if they shared them publicly in Warp user intefacs)
Comment options

From brendan via Discord: https://discord.com/channels/851854972600451112/907407371997970492/907407376569737277

There are many times I find myself running commands in an exploratory manner and then rerunning them in order later once I have it figured out. For e.g. building then deploying to preprod then running integ tests against preprod. The first time it might take a handful of times to get the syntax right, but after that I just repeat them in order. It can then be scripted but sometimes I can't be bothered and just keep repeating them.

It would be really cool if warp could detect this and create a script/command out of it automatically. Not sure what the ideal UX would be, but one possibility would be a toast in the bottom right like how VS code does it. Hit accept and it will ask you to name it and confirm the steps involved

Comment options

From jfmomnty2 via Discord: https://discord.com/channels/851854972600451112/907407371997970492/907692365395935264

This sounds really cool, especially if you could have an option to do it in an "ephemeral" way. My thinking is, often I find myself running the same 3-6 commands many times one day, but then never again b/c it was just some specific setup logic for a particular thing I was working on.

Would be really cool if Warp could detect the same sequence of commands and say "you've run these x commands n times in the last 20 minutes. Would you like to save them? And if so, save them forever or just for now?

Comment options

I'd love to have something similar to the project files in VSCode so you don't have to modify the path for each user, you just use a .warp file or similar that can be placed in the directory. This would work quite similarly to launch.json files for vscode

Comment options

Discord Comment Relating (feature-requests - 07/14/2021)

"Something cool I think would be valuable to me is ad-hoc variable or alias creation and a UI to see what you have access to. For instance, I have several IPs that I regularly SSH into. I'd love to either save those IPs as variable, or even just set the entire command as an alias, without having to jump in and configure a file."

Comment options

[3] Workflows V1

What functionality should Workflows support?

You must be logged in to vote
10 replies
Comment options

From CA_Lobo via Discord

Excellent start! I like it! Glad to see others have the same ideas! Do we have a UI to go along with it? Can the UI chain existing tasks together in the same principles of a Unix tools- eg multiple reusable individual tasks when chained together can automate a multi step process? something along the lines of "do a clean development checkout, do a debug build, package it, smoke test it and notify me and the QA team if passes, and any failures notify me" I can't wait to play with this as I have a dozen "scraps of paper" receipes on my computer to deal with repetitive tasks... humm, in a previous life, one thing I'd love to be able to do would be to share these tasks/receipes with others... so exporting/importing of packaged tasks would be something to think about...

Comment options

From Discord (feature-requests - 08/08/2021)

"That's perfect! I'm imagining being able to build up a selection of these blocks, and add them into a playlist - to automate console tasks a little like how ansible does"

Comment options

Sourced from Discord: (General Channel - 09/03/2021)

"It'd also be super cool to be able to reference executed blocks (either the command to be run live again or using existing output) in other blocks/commands and have visual cues while doing so."

Comment options

It would be nice if there was a list of possible values for a given variable. For example, for a variable such as docker_container_id, a list with 2fa1b and c4d2a could be shown.

This list could have multiple columns showing extra data.

Comment options

Syntax highlighting

Comment options

[4] Open Source Projects

Are there other open source projects related to workflows that we should be aware of?

The one's we already know of: tldr; cheat.sh, cheatsheets, navi, howdoi, cheat, how2, kb, eg.

What opportunities are there for collaboration?

You must be logged in to vote
5 replies
Comment options

Other workflow launchers

Raycast

  • I like their API for defining workflows & UIs
  • they're app is a Swift app, but their extension ecosystem uses React. Docs
    • Pros of react+typescript API: lots of engineers know javascript & react. React is declarative
    • React has an API called react-reconciler which allows you to create your own declarative abstraction over imperative code.
      • For example: with reconciler you can have users write React/Typescript code & you could output to whatever platform you want. This is how react-native, react-three-fiber & react-blessed (terminal renderer) and many other libraries use react, the difference is they choose a different rendering targer
Comment options

The ability to trigger a workflow from something like https://www.raycast.com/ so you could utilize both Raycast for spotlight style workflow running but also run the workflows directly if needs be

Comment options

Author of navi here. I'd be more than glad to integrate navi with Warp if possible :)

For example, navi could support the open-source file-format you're proposing:

The ability for devs to create private workflows in an open-source file-format, including repo-specific workflows that live in a .warp directory
Comment options

From vinaygattu via Discord:
https://discord.com/channels/851854972600451112/906269689116770304/949611067363983411

Any integration with Alfred workflows and warp

Comment options

I quite like raycast script commands syntax: https://github.com/raycast/script-commands
It is simple, allows to pass arguments, and works with any language.
An important feature for me is that raycast script are still executable as regular scripts.

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

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