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

Overview

Workflows

The repo for all public Workflows that appear within Warp and within commands.dev.

To learn how to create local or repository workflows, see our docs.

image

What are Workflows?

Workflows are an easier way to execute and share commands within Warp. They are searchable by name, description, or command and are easily parameterized. See our documentation for more details: https://docs.warp.dev/features/workflows

How Do I Access Workflows within Warp?

Workflows can be accessed directly within Warp, either through the Command Palette or by pressing ctrl-shift-r.

All public workflows (i.e. workflows within this repo) are also available at commands.dev.

Contributing

Contributions are always welcome! If you have a workflow that would be useful to many Warp users, feel free to send a PR to add a Workflow spec.

All workflows are defined as YAML files within the specs/ directory.

File Format

A comprehensive description of the file format is available in FORMAT.md. Additionally, see the workflow below as an example to quickly get started:

---
# The name of the workflow.
name: Uninstall a Homebrew package and all of its dependencies
# The corresponding command for the workflow. Any arguments should be surrounded with two curly braces. E.g `command {{arg}}`.
command: |-
    brew tap beeftornado/rmtree
    brew rmtree {{package_name}}
# Any tags that the workflow should be categorized with.
tags:
  - homebrew
# A description of the workflow.
description: Uses the external command rmtree to remove a Homebrew package and all of its dependencies
# List of arguments within the command.
arguments:
    # Name of the argument within the command. This must exactly match the name of the argument
    # within the command (without the curly braces).
  - name: package_name
    # The description of the argument.
    description: The name of the package that should be removed
    # The default value for the argument.
    default_value: ~
# The source URL for where the workflow was generated from, if any.
source_url: "https://stackoverflow.com/questions/7323261/uninstall-remove-a-homebrew-package-including-all-its-dependencies"
# The author of the workflow.
author: Ory Band
# The URL of original author of the Workflow. For example, if this workflow was generated from StackOverflow, the `author_url` would be the StackOverflow author's profile page.
author_url: "https://stackoverflow.com/users/207894"
# The valid shells where this workflow should be active. If valid for all shells, this can be left empty. 
# See FORMAT.md for the full list of accepted values.
shells: []

Testing

To test a workflow within Warp before submitting, you can use it as a local workflow within warp.

To do this:

  1. Copy the workflow to your local ~/.warp/workflows directory:
    mkdir -p ~/.warp/workflows && cp {{workflow}}.yaml; ~/.warp/workflows/
  2. Open Warp and open workflows by pressing ctrl-shift-r or using the command palette.
  3. Click on "My Workflows" on the left to filter for local workflows. README md — workflows 2022-04-19 at 11 52 53 AM
  4. Click on the workflow you've added and ensure all the information is correct.

To quickly test if a workflow file format is valid, you can also build workflows locally to validate the schema is correct:

# Download the rust toolchain, if not already installed.
brew install rust-up
rustup-init

# Ensure the workflows can successfully be converted into Rust.
cargo build

What Makes a Useful Workflow?

A good workflow is one that includes a command with many flags or arguments or one that is hard to remember.

Additionally, a workflow must include:

  • A descriptive title that includes the name of the command--this is useful for improving the experience of searching for workflows in Warp or commands.dev.
  • A tag that accurately categorizes the workflows. Avoid many repetitive tags to improve searchability of workflows within Warp.
  • A description for the workflow and each of its arguments, if applicable.
  • A default value for each argument, if applicable.
Comments
  • feat(specs-shell): ✨ add new shell array workflows

    feat(specs-shell): ✨ add new shell array workflows

    Woo! Adds some cool array shell workflows. Also, my third pr for this repo! 🎉

    Discord: ifthisthenthat#0001 (just wondering if I can get the contributor role)

    opened by Wyatt-Stanke 6
  • Clarify workflow format

    Clarify workflow format

    Hi, at https://github.com/warpdotdev/workflows/blob/main/FORMAT.md#shells it said the shell field can be unspecified, but it can not be omitted:

    ...
    shells: [] << this line must exist even though you don't specify single shell name.
    ...
    

    shortly, "If not specified" can be interpreted in two ways: leave it as empty array or omit the field. I think it would be much helpful to point out the very first one.

    Or, maybe we can provide a bolierplate workflow file which has only required fields.

    opened by roeniss 5
  • add support for for loops in fish shell

    add support for for loops in fish shell

    Discord username (optional) please include so we can attribute you with our Contributor role (like so elvis#4747)

    Description of changes (updated or new workflows)

    Added a for loop template for fish shell

    opened by bdmorin 3
  • consider using environment vars for terminal

    consider using environment vars for terminal

    Adding environment variables for columns and lines can fix terminal issues when entering a container. also -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM if no command subprocess is desired

    Discord username (optional) please include so we can attribute you with our Contributor role (like so elvis#4747)

    Description of changes (updated or new workflows)

    opened by bdmorin 3
  • ios: Add workflow to clear Xcode Derived Data

    ios: Add workflow to clear Xcode Derived Data

    This PR adds probably the most common command run by iOS Devs 😛 And also introduces the iOS specs so that more people can add more commands for common iOS workflows 🙂

    Btw, congrats on the work done in Warp 👌 I'm really enjoying using it and excited for what is to come 🙂

    opened by nuno-vieira 3
  • Identical workflows for copying files between host and container?

    Identical workflows for copying files between host and container?

    opened by wzzrd 3
  • feat(specs): add playwright workflows

    feat(specs): add playwright workflows

    Discord username (optional), please include so we can attribute you with our Contributor role (like so elvis#4747)

    KOO#8922

    Description of changes (updated or new workflows)

    Add 9 Playwright workflows

    opened by DominusKelvin 2
  • Create rename_docker_volume.yaml

    Create rename_docker_volume.yaml

    Discord username

    Sebastian#0304

    Description of changes (updated or new workflows)

    Renames a Docker volume by creating a new volume, copying all of its content to from the old to the new volume and then deletes the old volume.

    opened by SebDanielsson 2
  • K8:add port-forward, scale, rollback, node state helpers

    K8:add port-forward, scale, rollback, node state helpers

    This adds helpers for:

    • port forward from service/pod;
    • scale deployment;
    • rollback to the previous deployment;
    • node state (schedulable/unschedulable).
    opened by alexandru-iacob 2
  • feat: Add Meroxa workflows

    feat: Add Meroxa workflows

    Discord username (optional) please include so we can attribute you with our Contributor role (like so elvis#4747)

    raulb#3523

    Description of changes (updated or new workflows)

    • [x] Adds new workflows for Meroxa
    • [x] Fix README
    opened by raulb 1
  • Added laravel's official installer workflow

    Added laravel's official installer workflow

    Description of changes (updated or new workflows)

    Added a workflow for installing Laravel's official installer via Composer, which is the main dependency manager for PHP.

    Screenshot 2022-12-27 at 06 34 37
    opened by 4cyberlord 0
  • adds a workflow for macOS spotlight indexing

    adds a workflow for macOS spotlight indexing

    Discord username

    • JV [John Vajda]#0767

    Description of changes (updated or new workflows)

    • adds a new directory macOS
    • adds a new workflow to enable and disable macOS spotlight indexing which can be a very CPU heavy process.
    opened by jpvajda 0
  • feat: add cosmwasm optimization workflows

    feat: add cosmwasm optimization workflows

    Discord username (optional) please include so we can attribute you with our Contributor role (like so elvis#4747)

    chadoh#8432

    Description of changes (updated or new workflows)

    Adds long, hard-to-remember commands for optimizing CosmWasm projects.

    opened by chadoh 0
  • Workflow to create a workflow

    Workflow to create a workflow

    Is this a new workflow or an update?

    New

    What is the name of the workflow?

    warp > workflow

    What should the workflow do?

    Initialise a new workflow. Basically you can pass in some flags and it will create a local yaml file. Possibly needed to support this is a warp settings file that sets the common details needed in the yaml template such as author. However, is this a new workflow or a CLI tool for warp, I don't even know? Copying a workflow template from the internet and saving it in ~/.warp/workflows, then editing it, does not seem like how workflows should work in 2022.

    What does it do (only if it's an update)?

    If it's a CLI tool, I expect warp workflow init --author "Tom Smith" --type "fish" --cmd "echo 'Hello Warp!" that will initialise a workflow.

    At minimum I'd expect a workflow that will download a workflow template to ~/.warp that I could then open in an editor.

    enhancement 
    opened by twocs 1
  • osx, workflows and command search panels dont show

    osx, workflows and command search panels dont show

    What section of this project is the bug in?

    Workflows

    What is the bug?

    workflows and command search panels dont show if you switch to different shell

    What is the expected behavior?

    i start the tab in zsh, and when i press control-shift-R or control-R, the panels pop up, but if i switch/launch any other shell (bash or fish), the same shortcuts do not show the pop up panels

    What is the actual behavior?

    if i switch/launch any other shell (bash or fish), the same shortcuts do not show the pop up panels

    How would you replicate this bug?

    start new tab with zsh, switch to bash, press control-shift-R or control-R and nothing shows up, and the menu options under View menu are grayed out

    bug 
    opened by gsiawGH 1
A tiny crate to make it easy to share and apply Git hooks for Rust projects

Shareable git hooks for Rust project. Sloughi is a friend of Husky from North Africa! :algeria:

Walid ZIOUCHE 24 Oct 6, 2022
Browse and listen to thousands of radio stations across the globe right from your terminal 🌎 📻 🎵✨

TuneIn CLI A command line interface for TuneIn Radio. You can search for stations, play them, and see what's currently playing. ?? Installation Compil

Tsiry Sandratraina 8 Mar 2, 2023
Keybinder to type diacrytical characters without needing to hack the layout itself. Supports bindings to the left Alt + letter

Ďíáǩříťíǩád I just thought that it's a shame the word diakritika does not have any diacritics in it. Key points diakritika is a simple Windows daemon

null 4 Feb 26, 2024
Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.

Leetcode TUI Use Leetcode in your terminal. Why this TUI: My motivation for creating leetcode-tui stemmed from my preference for tools that are lightw

Akarsh 8 Aug 10, 2023
hackernews_tui is a Terminal UI to browse Hacker News with vim-like key bindings.

hackernews_tui is written in Rust with the help of Cursive TUI library. It uses HN Algolia search APIs to get Hacker News data.

Thang Pham 364 Dec 28, 2022
Dash is a CLI tool that rapidly sets up new projects by running a series of pre-defined commands.

Dash Dash is a CLI tool that rapidly sets up new projects by running a series of pre-defined commands. Features Quick Initialization: Initialize the c

Kunal Bagaria 4 Nov 7, 2023
Cornucopia is a small CLI utility resting on tokio-postgres and designed to facilitate PostgreSQL workflows in Rust

Cornucopia Generate type checked Rust from your SQL Install | Example Cornucopia is a small CLI utility resting on tokio-postgres and designed to faci

Louis Gariépy 1 Dec 20, 2022
AI-TOML Workflow Specification (aiTWS), a comprehensive and flexible specification for defining arbitrary Ai centric workflows.

AI-TOML Workflow Specification (aiTWS) The AI-TOML Workflow Specification (aiTWS) is a flexible and extensible specification for defining arbitrary wo

ruv 20 Apr 8, 2023
Share clipboard between machines on your local network.

Clipshare Do you ever have to work on multiple machines? Do you ever used your Github™ Gists just to send some text between then? Clipshare is here to

Rodrigo Navarro 39 Jun 19, 2023
it aims to augment git with primitives to build integrated, cryptographically verifiable collaboration workflows around source code

it aims to augment git with primitives to build integrated, cryptographically verifiable collaboration workflows around source code. It maintains the distributed property of git, not requiring a central server. it is transport agnostic, and permits data dissemination in client-server, federated, as well as peer-to-peer network topologies.

Kim Altintop 4 Jan 16, 2023
A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.

Welcome to rust-qrcode-cli ?? A CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal. Install git clon

Dhravya Shah 2 Mar 2, 2022
Search on google in your terminal

goog Search on google from your terminal. Supported Browsers: Chrome Firefox Supported Operating Systems Linux Unsupported or not tested operating sys

Haider ali 5 Sep 11, 2022
🔍 quickly search with your favorite websites straight from the terminal

gg Search with your favorite websites straight from the terminal! gg-example.mp4 Configure gg To add more websites, just edit the ~/.gg.toml or %APP_D

Vedant Nandwana 4 Dec 31, 2022
REC2 (Rusty External Command and Control) is client and server tool allowing auditor to execute command from VirusTotal and Mastodon APIs written in Rust. 🦀

Information: REC2 is an old personal project (early 2023) that I didn't continue development on. It's part of a list of projects that helped me to lea

Quentin Texier (g0h4n) 104 Oct 7, 2023
🐢 Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

Aldrin Zigmund Cortez Velasco 18 Oct 24, 2022
A program to share a TTY like a GPS UART between 2 processes.

TTYTEE - A process that exposes 2 copies of the same TTY. The initial use case for this crate has been sharing a single GPS device talking through an

Skyways 4 Jun 25, 2023
Make data-driven table rendering easy with Dioxus

Dioxus Table Make data-driven table rendering easy with Dioxus Installation Until the next release of Dioxus this requires Dioxus nightly from git. Th

null 9 Oct 9, 2022
A gui tool written in Dioxus to make it easy to release a workspace of crates to crates.io

Easy-Release: a visual tool for releasing workspaces of libraries A work-in-progress GUI for releasing a large workspace of crates manually, but easil

Jon Kelley 13 Jan 18, 2023