tripley-rpc-cli 0.1.3

User-facing command line tool for Tripley RPC IDL and code generation.
# Tripley RPC

Tripley RPC is an IDL-first RPC toolkit for local-first applications. It provides:

- YAML IDL parsing, formatting, semantic validation, and compatibility checks.
- Rust runtime crates for request/response RPC, activation, notifications, IPC, and WebSocket transports.
- Rust and TypeScript client/server SDK generation.
- A user-facing `tripley-rpc` CLI, installable from Cargo or the `@tripley/rpc` npm wrapper.

C++ support exists in the repository as discontinued experimental work and is not part of the current product surface.

## Current Product Surface

The supported v1 track is Rust + TypeScript + CLI:

- Rust runtime and Rust generator crates are versioned together through the Cargo workspace.
- TypeScript generation targets the external `@tripley-kit/xrpc-runtime` package.
- The npm package `@tripley/rpc` wraps native `tripley-rpc` binaries; it does not include the TypeScript runtime.

## Quick Start

Validate an IDL file:

```sh
cargo run -p tripley-rpc-cli -- validate \
  --in idl/examples/kiosk_demo/card_reader.rpc.yaml \
  --import-root idl/examples/kiosk_demo
```

Use `--format json` with CLI commands when automation needs machine-readable output.
The stable JSON envelope is documented in `docs/cli-json-output-schema.md`.

Generate Rust SDK code:

```sh
cargo run -p tripley-rpc-cli -- generate rust \
  --in idl/examples/kiosk_demo/card_reader.rpc.yaml \
  --import-root idl/examples/kiosk_demo \
  --out target/generated/kiosk
```

Generate TypeScript client SDK code:

```sh
cargo run -p tripley-rpc-cli -- generate typescript \
  --in idl/examples/kiosk_demo/card_reader.rpc.yaml \
  --import-root idl/examples/kiosk_demo \
  --out target/generated/kiosk-ts \
  --runtime-package @tripley-kit/xrpc-runtime
```

Run the local product preflight:

```sh
scripts/release-preflight.sh
```

## Documentation

- CLI and npm packaging: `docs/user-facing-cli-and-npm-packaging.md`
- Integration guide: `docs/project-integration-guide-for-codex.md`
- IDL draft: `docs/rust-rpc-idl-spec-v1-draft.md`
- Runtime transport draft: `docs/rust-rpc-runtime-transport-spec-v1-draft.md`

## Security Model

The default runtime posture is same-machine use. Servers should remain local-only unless a caller explicitly enables remote connections and configures token authentication. The current WebSocket transport supports `ws://`; it does not provide TLS encryption.

See `SECURITY.md` for reporting and supported-version policy.