# grpc-tools

> Tools for developing with gRPC on Node.js

Latest version **1.13.1** (published 2025-12-01) · 0 weekly downloads

## Install

```sh
npm install grpc-tools
pnpm add grpc-tools
yarn add grpc-tools
bun add grpc-tools
```

Provides the commands `grpc_tools_node_protoc`, `grpc_tools_node_protoc_plugin`.

## Health

**Score 50/100 (C)** — status: stable.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.13.1 |
| Published | 2025-12-01 |
| First published | 2016-05-10 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 113.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| GitHub stars | 4844 |
| Author | Google Inc. |
| Maintainers | murgatroid99, grpc-packages |

## Links

- npm: https://www.npmjs.com/package/grpc-tools
- Repository: https://github.com/grpc/grpc-node
- Homepage: https://grpc.io/
- Issues: https://github.com/grpc/grpc-node/issues
- npm.io page: https://npm.io/package/grpc-tools

## Dependencies (1)

- [@mapbox/node-pre-gyp](https://npm.io/package/@mapbox/node-pre-gyp.md) ^2.0.0

## Recent versions

- 1.13.1 (latest) — 2025-12-01
- 1.13.0 — 2025-02-06
- 1.12.4 — 2023-01-31
- 1.12.3 — 2022-12-05
- 1.12.2 — 2022-12-05
- 1.12.1 — 2022-12-05
- 1.12.0 — 2022-12-01
- 1.11.3 — 2022-10-05
- 1.11.2 — 2021-06-18
- 1.11.1 — 2021-03-23
- 1.11.0 — 2021-03-17
- 1.10.0 — 2020-11-18
- 1.9.1 — 2020-07-21
- 1.9.0 — 2020-05-21
- 1.8.1 — 2020-01-07
- … 32 more at https://npm.io/package/grpc-tools/versions

## README

# grpc-tools

This package distributes the Protocol Buffers compiler `protoc` along with the
plugin for generating client and service objects for use with the Node gRPC
libraries.

## Usage

This library exports the `grpc_tools_node_protoc` executable, which accepts all
of the same arguments as `protoc` itself. For use with Node, you most likely
want to use CommonJS-style imports. An example of generating code this way can
be found in [this guide](https://github.com/protocolbuffers/protobuf-javascript/blob/main/docs/index.md).
The `grpc_tools_node_protoc` automatically includes the Node gRPC plugin, so
it also accepts the `--grpc_out=[option:]path` argument. The option can be
one of the following:

 - `grpc_js`: Generates code with `require('@grpc/grpc-js')` instead of
   `require('grpc')`
 - `generate_package_definition`: Generates code that does not `require` any
   gRPC library, and instead generates `PackageDefinition` objects that can
   be passed to the `loadPackageDefinition` function provided by both the
   `grpc` and `@grpc/grpc-js` libraries.
 - `omit_serialize_instanceof`: Omit the `instanceof` check for messages in
   client code. This is useful when the message was renamed or is from a
   different package, and serialization would fail with
   `Expected argument of type …`.

---
_Source: https://npm.io/package/grpc-tools · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
