Files
yaak-mountain-loop/plugins/action-copy-grpcurl
Gregory Schier eb3d1c409b Merge pull request #256
* Update environment model to get ready for request/folder environments

* Folder environments in UI

* Folder environments working

* Tweaks and fixes

* Tweak environment encryption UX

* Tweak environment encryption UX

* Address comments

* Update fn name

* Add tsc back to lint rules

* Update src-web/components/EnvironmentEditor.tsx

* Merge remote-tracking branch 'origin/folder-environments' into folder…
2025-09-21 07:54:26 -07:00
..
2025-07-19 09:10:49 -07:00
2025-09-21 07:54:26 -07:00
2025-07-19 09:10:49 -07:00
2025-07-19 09:10:49 -07:00

Copy as gRPCurl

An HTTP request action plugin that converts gRPC requests into gRPCurl commands, enabling easy sharing, debugging, and execution of gRPC calls outside Yaak.

Screenshot of context menu

Overview

This plugin adds a "Copy as gRPCurl" action to gRPC requests, converting any gRPC request into its equivalent executable command. This is useful for debugging gRPC services, sharing requests with team members, or executing gRPC calls in terminal environments where grpcurl is available.

How It Works

The plugin analyzes your gRPC request configuration and generates a properly formatted grpcurl command that includes:

  • gRPC service and method names
  • Server address and port
  • Request message data (JSON format)
  • Metadata (headers)
  • Authentication credentials
  • Protocol buffer definitions

Usage

  1. Configure a gRPC request as usual in Yaak
  2. Right-click on the request sidebar item
  3. Select "Copy as gRPCurl" from the available actions
  4. The command is copied to your clipboard
  5. Share or execute the command

Generated gRPCurl Examples

Simple Unary Call

grpcurl -plaintext \
  -d '{"name": "John Doe"}' \
  localhost:9090 \
  user.UserService/GetUser

Call with Metadata

grpcurl -plaintext \
  -H "authorization: Bearer my-token" \
  -H "x-api-version: v1" \
  -d '{"user_id": "12345"}' \
  api.example.com:443 \
  user.UserService/GetUserProfile

Call with TLS

grpcurl \
  -d '{"query": "search term"}' \
  secure-api.example.com:443 \
  search.SearchService/Search

Call with Proto Files

grpcurl -import-path /path/to/protos \
  -proto /other/path/to/user.proto \
  -d '{"email": "user@example.com"}' \
  localhost:9090 \
  user.UserService/CreateUser