Registry / web-framework / trpc-cli

trpc-cli

JSON →
library0.14.0jsnpmunverified

trpc-cli transforms a tRPC (or oRPC) router into a type-safe, documented CLI with zero boilerplate. Current stable version is 0.14.0, released frequently (multiple releases per month). It automatically generates positional arguments, options, help text, and shell completions from Zod/Valibot/Arktype schemas. Unlike general-purpose CLI frameworks like Commander or yargs, trpc-cli leverages tRPC's type system for end-to-end type safety and reuse of router logic across CLI, HTTP server, and programmatic APIs. It depends only on Commander as a runtime dependency (peer deps for validation libraries). Supports tRPC v10/v11, oRPC, and experimental standalone mode. ESM-only since v0.12.0.

npm install trpc-cli
INSTALL
IMPORT
SIG · TRPC-CLI
T
trpc-cli
web-frameworkjavascriptv0.14.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

cli
import { cli } from 'trpc-cli'
const { cli } = require('trpc-cli')
ESM-only since v0.12.0; CommonJS require will fail. Use ESM or dynamic import.
parseRouter
import { parseRouter } from 'trpc-cli'
Utility to parse a tRPC router into a serializable structure; available since v0.12.3.
proxify
import { proxify } from 'trpc-cli'
Experimental helper to create CLI for a remote tRPC server. Added in v0.12.1.

Creates a tRPC router with a 'greet' procedure and maps it to a CLI using trpc-cli. Run with 'node cli.js greet --name World' to see output.

import { initTRPC } from '@trpc/server'; import { z } from 'zod'; import { cli } from 'trpc-cli'; const t = initTRPC.create(); const appRouter = t.router({ greet: t.procedure .input(z.object({ name: z.string(), greeting: z.string().default('Hello') })) .query(({ input }) => `${input.greeting}, ${input.name}!`), }); const program = cli({ router: appRouter }); program.parse(process.argv); // Usage: node greet.js greet --name World // Output: Hello, World!
trpc-cli --version
Debug
Known issues
breakingtrpc-cli v0.12.0 switched to ESM-only. CommonJS require() will throw.
fix
Convert your project to ESM (type: 'module' in package.json) or use dynamic import: const { cli } = await import('trpc-cli').
affects: >=0.12.0
breakingv0.11.0 introduced peer dependencies for all packages except commander. Missing peer deps will cause runtime errors.
fix
Install peer dependencies: @trpc/server, @valibot/to-json-schema, effect, valibot, zod as needed.
affects: >=0.11.0
deprecatedStandalone mode (norpc) is experimental and may be removed in future versions.
fix
Avoid relying on standalone mode for production; use with @trpc/server or @orpc/server.
affects: >=0.13.0
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module .../node_modules/trpc-cli/index.js not supported.
trpc-cli is ESM-only since v0.12.0, but the project uses CommonJS require.
fix
Switch to ESM (type: 'module' in package.json) or use dynamic import: const { cli } = await import('trpc-cli').
Cannot find module '@trpc/server' or its corresponding type declarations.
Missing peer dependency @trpc/server.
fix
Run 'npm install @trpc/server' (v10.45.2+ or v11.0.1+).
TypeError: cli is not a function
Default import used incorrectly (import cli from 'trpc-cli') instead of named import.
fix
Use named import: import { cli } from 'trpc-cli'.
Upgrade
Version history
0.14.0latest on npm
Audit
Dependencies
commanderrequiredRuntime dependency for CLI argument parsing and help generation.
@trpc/serveroptionalPeer dependency if using tRPC routers (v10.45.2+ or v11.0.1+).
zodoptionalPeer dependency for input validation (v3.24.0+ or v4.0.0+).
Agent activity
16 hits · last 30 days
node
14
Amazon
1
OpenAI (training)
1
Resources
trpc-cli — npm install trpc-cli · libregistry