29 releases

Uses new Rust 2024

new 0.6.6 Feb 4, 2026
0.6.4 Dec 2, 2025
0.6.2 Sep 22, 2025
0.6.0 Jul 22, 2025
0.1.3 Mar 15, 2024

#139 in Authentication

Apache-2.0

50KB
1K SLoC

OIDC CLI

crates.io GitHub release (latest SemVer) CI

A command line tool for working with OIDC

Installation

From source with cargo:

cargo install oidc-cli

A binary with cargo-binstall:

cargo binstall oidc-cli

Download a released binary: https://github.com/ctron/oidc-cli/releases

On Windows, you can use winget:

winget install ctron.oidc

With brew to you can:

brew tap ctron/tap
brew install ctron/tap/oidc

Example

Creating a new (confidential) client:

oidc create confidential my-client --issuer https://example.com/realm --client-id foo --client-secret bar

Creating a new (public) client:

oidc create public my-client --issuer https://example.com/realm --client-id foo

Then, get an access token:

oidc token my-client

Or combine it with e.g., HTTPie:

http example.com/api "Authorization:$(oidc token my-client --bearer)"

Or even shorter:

http example.com/api $(oidc token -H my-client)

More examples

Create a public client from an initial refresh token. This can be useful if you have a frontend application, but no means of performing the authorization code flow with a local server. In case you have access to the refresh token, e.g via the browsers developer console, you can initialize the public client with that:

oidc create public my-client --issuer https://example.com/realm --client-id foo --refresh-token <refresh-token>

Dependencies

~42–62MB
~1M SLoC