---
name: "jose-fmt"
section: "1"
platform: "linux"
package: "jose"
version: "15-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/jose-fmt"
---

# jose-fmt(1)

Converts JSON between serialization formats

## NAME

jose-fmt - Converts JSON between serialization formats

## SYNOPSIS

**jose fmt** \[OPTIONS\]

## OVERVIEW

This **jose fmt** command provides a mechanism for building and parsing JSON objects from the command line. It operates as a simple stack machine. All commands operate on the TOP item of the stack and, occasionally, the PREV item of the stack. Commands that require a specific type of value will indicate it in parentheses. For example: "TOP (arr.)".

This program returns 0 on success or the index of the option which failed.

## OPTIONS

• **-0**, **--null** : Assert TOP to be null

• **-a**, **--append** : Append TOP to the end of PREV (arr.)

• **-a**, **--append** : Set missing values from TOP (obj.) into PREV (obj.)

• **-A**, **--array** : Assert TOP to be an array

• **-B**, **--boolean** : Assert TOP to be a boolean

• **-c**, **--copy** : Deep copy TOP, push onto TOP

• **-d** *NAME*, **--delete**=*NAME* : Delete NAME from TOP (obj.)

• **-d** , **--delete**= : Delete # from TOP (arr.)

• **-d** -, **--delete**=- : Delete # from the end of TOP (arr.)

• **-e**, **--empty** : Erase all items from TOP (arr./obj.)

• **-E**, **--equal** : Assert TOP to be equal to PREV

• **-f** *FILE*, **--foreach**=*FILE* : Write TOP (obj./arr.) to FILE, one line/item

• **-f** -, **--foreach**=- : Write TOP (obj./arr.) to STDOUT, one line/item

• **-F**, **--false** : Assert TOP to be false

• **-g** *NAME*, **--get**=*NAME* : Get item with NAME from TOP (obj.), push to TOP

• **-g** , **--get**= : Get # item from TOP (arr.), push to TOP

• **-g** -, **--get**=- : Get # item from the end of TOP (arr.), push to TOP

• **-i** , **--insert**= : Insert TOP into PREV (arr.) at #

• **-I**, **--integer** : Assert TOP to be an integer

• **-j** *JSON*, **--json**=*JSON* : Parse JSON constant, push onto TOP

• **-j** *FILE*, **--json**=*FILE* : Read from FILE, push onto TOP

• **-j** -, **--json**=- : Read from STDIN, push onto TOP

• **-l**, **--length** : Push length of TOP (arr./str./obj.) to TOP

• **-M** , **--move**= : Move TOP back # places on the stack

• **-N**, **--number** : Assert TOP to be a number

• **-o** *FILE*, **--output**=*FILE* : Write TOP to FILE

• **-o** -, **--output**=- : Write TOP to STDOUT

• **-O**, **--object** : Assert TOP to be an object

• **-q** *STR*, **--quote**=*STR* : Convert STR to a string, push onto TOP

• **-Q**, **--query** : Query the stack by deep copying and pushing onto TOP

• **-R**, **--real** : Assert TOP to be a real

• **-s** *NAME*, **--set**=*NAME* : Sets TOP into PREV (obj.) with NAME

• **-s** , **--set**= : Sets TOP into PREV (obj.) at #

• **-s** -, **--set**=- : Sets TOP into PREV (obj.) at # from the end

• **-S**, **--string** : Assert TOP to be a string

• **-t** , **--truncate**= : Shrink TOP (arr.) to length #

• **-t** -, **--truncate**=- : Discard last # items from TOP (arr.)

• **-T**, **--true** : Assert TOP to be true

• **-u** *FILE*, **--unquote**=*FILE* : Write TOP (str.) to FILE without quotes

• **-u** -, **--unquote**=- : Write TOP (str.) to STDOUT without quotes

• **-U**, **--unwind** : Discard TOP from the stack

• **-x**, **--extend** : Append items from TOP to the end of PREV (arr.)

• **-x**, **--extend** : Set all values from TOP (obj.) into PREV (obj.)

• **-X**, **--not** : Invert the following assertion

• **-y**, **--b64load** : URL-safe Base64 decode TOP (str.), push onto TOP

• **-Y**, **--b64dump** : URL-safe Base64 encode TOP, push onto TOP

## EXAMPLES

Extract the **alg** parameter from a JWE Protected Header:

```
$ jose fmt -j "$jwe" -Og protected -yOg alg -Su-
A128KW
```

List all JWKs in a JWKSet (one per line):

```
$ echo "$jwkset" | jose fmt -j- -Og keys -Af-
{"kty":"oct",...}
{"kty":"EC",...}
```

Change the algorithm in a JWK:

```
$ echo "$jwk" | jose fmt -j- -j '"A128GCM"' -s alg -Uo-
{"kty":"oct","alg":"A128GCM",...}
```

Build a JWE template:

```
$ jose fmt -j '{}' -cs unprotected -q A128KW -s alg -UUo-
{"unprotected":{"alg":"A128KW"}}
```

## AUTHOR

Nathaniel McCallum \<npmccallum@redhat.com\>
