Overview
Restish 2.2.0 adds TOON output for compact, model-friendly structured data, makes local OpenAPI spec startup faster and fresher, and smooths a few upgrade paths around OAuth token caches and PKCS#11 TLS signer setup. It also includes docs updates for the new output format and a small homepage/blog CTA polish pass.
TOON output format
Restish now supports -o toon anywhere rendered response bodies can use an output format. TOON is designed to keep tabular and nested JSON-like data readable while using fewer tokens than pretty JSON or YAML, which is handy when piping API responses into LLM workflows.
The formatter includes dedicated scalar, object, list, tabular-array, delimiter, key-folding, whitespace, and official fixture coverage. toon is also wired into help, completions, filtering, generated command output, and the output-format docs.
Faster local spec startup
Registered APIs that use local spec_files now avoid more unnecessary startup work while still noticing file changes before generated commands run. Local spec cache metadata now tracks nanosecond mtimes when available, falls back safely for older cache entries, and refreshes stale generated metadata before dispatching the selected operation.
Cold starts with missing generated operation caches now point users toward restish api sync, which should make stale or incomplete local cache states easier to recover from.
OAuth and PKCS#11 upgrade polish
Restish now migrates legacy OAuth token cache entries on first use after upgrade. If a token is still cached under the old apiName:profileName key, Restish falls back to it, writes it under the newer OAuth cache key, and removes the old entry without requiring the user to sign in again.
Legacy PKCS#11 TLS config migration also now tells users that restish-pkcs11 must be installed separately in v2, and missing pkcs11 TLS signer errors include the same install hint instead of a generic plugin-not-found message.
Docs and site polish
The docs now cover TOON output, including when tabular encoding applies and how it compares to other response formats. The homepage and blog CTAs also got a small presentation pass.
Changelog
- [9a17d9] Merge pull request [#371] from rest-sh/fix/local-spec-startup-cache
- [679747] Merge pull request [#369] from omer-amar/feat/toon-output-format
- [f78dcb] Merge pull request [#367] from natalie-o-perret/fix/migrate-oauth-token-cache-key
- [c6dbac] Merge pull request [#366] from rest-sh/docs/homepage-cta-polish
- [b34aac] test: verify local spec mtime cache precision
- [6d5ed0] fix: speed up local spec startup
- [ba610f] docs(output): clarify TOON tabular eligibility
- [8431d0] fix(output): harden TOON formatter conformance
- [1e3527] tests: fix misleading comment
- [c51621] test(auth): cover legacy oauth cache migration
- [d255eb] test(output): cover TOON scalar and list edge cases
- [6aa979] refactor(output): collapse TOON integer encoding cases
- [d3d9d5] docs(output): document TOON format with cross-format benchmarks
- [94e987] feat(output): add TOON output format
- [d9b803] fix(pkcs11): warn on migration and improve missing plugin error
- [9ccc0d] fix(cli): hint api sync when spec cache is empty on cold start
- [87e14d] fix(auth): migrate legacy token cache keys on first use after upgrade
- [4eb84b] docs: polish homepage and blog CTAs
Full Changelog: https://github.com/rest-sh/restish/compare/v2.1.2...v2.2.0