OIDC-GEN(1)
π oidc-gen β bestie edition
okay so this is oidc-gen, a User Command, and it's literally the tool that generates account configurations for oidc-agent. that's the whole vibe. π«Ά
β¨ NAME β¨
oidc-gen β generates account configurations for oidc-agent. no cap, that's the job. π
πΈ SYNOPSIS πΈ
oidc-gen [OPTION...] [ACCOUNT_SHORTNAME]
π¦ DESCRIPTION π¦
oidc-gen is the tool for generating oidc account configurations which can be used by oidc-add. it's giving "I make the config, my friend oidc-add uses the config." iconic division of labor tbh. π
π Managing account configurations
-d,--deleteβ delete the configuration for the given account. gone. bye. π-l,--accountsβ prints a list of all your configured account configurations. literally the same as runningoidc-add -l.-p,--print=FILEβ prints the decrypted content of FILE. and FILE can be either an absolute path, or just the name of a file sitting in oidc-dir (like, say, an account configuration short name). β¨--reauthenticateβ this one updates an existing account configuration file with a new refresh token. use it when you want a fresh token and don't need to touch any other metadata. periodt.--rename=NEW_SHORTNAMEβ renames an existing account configuration file. glow-up for your filenames. π-u,--update=FILEβ decrypts and then reencrypts the content for FILE. heads up bestie, this might update the file format and the encryption. FILE can be an absolute path or the name of a file placed in oidc-dir (e.g. an account configuration short name).
π Generating a new account configuration
--client-id=CLIENT_IDβ uses CLIENT_ID as the client id. this requires an already registered client. also, sneaky: it implicitly sets-m. π--client-secret=CLIENT_SECRETβ uses CLIENT_SECRET as the client secret. also requires an already registered client.-e,--editβ edit an existing account configuration. same as--manual, except the account configuration has to already exist. no creating from scratch here.-f,--file=FILEβ reads the client configuration from FILE. implicitly sets-m.--iss=ISSUER_URL,--issuer=ISSUER_URLβ sets ISSUER_URL as the issuer url to be used.--mytoken=PROFILEβ a mytoken profile string to use.--mytoken-profile=PROFILEβ yeah, that's the profile one.--mytoken-url[=URI],--mytoken-issuer[=URI]β the url of a mytoken instance to use.-m,--manualβ does not use Dynamic Client Registration. the client has to be manually registered beforehand, bestie, that part's on you.--no-saveβ do not save any configuration files. which meansβ¦ the moment the agent stops, nothing will be saved. it's giving "here for a good time, not a long time." π--oauth2,--oauthβ set this when you're using an OAuth2 provider.--port=PORTβ use this port in the local redirect uri. it's a shorter way to pass redirect uris compared to--redirect-uri. and yes, you can use this option multiple times to provide additional backup ports. π--pubβ uses a public client defined in thepublicclient.conffile.--redirect-uri=URI,--redirect-url=URIβ uses URI as the redirect URI. it can be a space separated list. and listen β the redirect uri must follow the formathttp://localhost:<port>[/*]oredu.kit.data.oidc-agent:/<anything>. no freestyling. π«--scope=SCOPEβ sets SCOPE as the scope to be used. multiple scopes can be provided as a space separated list, or by using the option multiple times. usemaxto use all available scopes for this provider. slay.--scope-all,--scope-maxβ use all available scopes for this provider. same as using--scope=max. β¨
π Generating a new account configuration β Advanced
--at=ACCESS_TOKEN,--access-token=ACCESS_TOKENβ uses ACCESS_TOKEN for authorization at the registration endpoint.--aud=AUDIENCE,--audience=AUDIENCEβ limit issued tokens to the specified AUDIENCE. multiple audiences can be specified separated by space.--cnid=IDENTIFIER,--client-name-identifier=IDENTIFIERβ an additional identifier used in the client name, to distinguish clients on different machines that have the same short name. like, the host name, for example.--configuration-endpoint=ENDPOINT_URI,--config-endpoint=ENDPOINT_URI,--discovery-endpoint=ENDPOINT_URIβ uses this uri as the configuration endpoint to read the server's metadata from.--cp=FILE,--cert-path=FILE,--cert-file=FILEβ FILE is the path to a CA bundle file that will be used with TLS communication. π--dae=ENDPOINT_URI,--device-authorization-endpoint=ENDPOINT_URIβ uses this uri as the device authorization endpoint.--only-atβ when you use this option,oidc-genprints an access token instead of creating a new account configuration. no account configuration file gets created. heads up though: this option does not work with dynamic client registration, but it does work with preregistered public clients. π--op-password=PASSWORDβ uses PASSWORD in the password flow. requires--flow=passwordto be set.--op-username=USERNAMEβ uses USERNAME in the password flow. requires--flow=passwordto be set.--rt=REFRESH_TOKEN,--refresh-token=REFRESH_TOKENβ uses REFRESH_TOKEN as the refresh token in the refresh flow, instead of using another flow. implicitly sets--flow=refresh.--rt-env[=OIDC_REFRESH_TOKEN],--refresh-token-env[=OIDC_REFRESH_TOKEN]β like--rt, but it reads the REFRESH_TOKEN from the passed environment variable (default:OIDC_REFRESH_TOKEN). πΈ-w,--flow=code|device|password|refreshβ specifies the OIDC flow to be used. you can use this option multiple times to allow different flows and to express priority. very main character of you.
π Advanced
--codeExchange=URIβ uses URI to complete the account configuration generation process. URI must be a full url to which you were redirected after the authorization code flow.--confirm-defaultβ confirms all confirmation prompts with the default value.--confirm-noβ confirms all confirmation prompts with no.--confirm-yesβ confirms all confirmation prompts with yes. yes-queen behavior, honestly. π--no-schemeβ this option applies only when the authorization code flow is used.oidc-agentwill not use a custom uri scheme redirect.--no-url-callβ does not automatically open the authorization url in a browser.--no-webserverβ this option applies only when the authorization code flow is used.oidc-agentwill not start a webserver. redirection tooidc-genthrough a custom uri scheme redirect uri and 'manual' redirect is possible.--prompt=cli|gui|noneβ changes the mode of howoidc-genshould prompt for information. the default iscli.--pw-cmd=CMDβ a command from whichoidc-gencan read the encryption password, instead of prompting the user. π--pw-env[=OIDC_ENCRYPTION_PW]β reads the encryption password from the passed environment variable (default:OIDC_ENCRYPTION_PW), instead of prompting the user.--pw-file=FILEβ uses the first line of FILE as the encryption password.--pw-gpg=KEY_ID,--pw-pgp=KEY_ID,--gpg=KEY_ID,--pgp=KEY_IDβ uses the passed GPG KEY for encryption.--pw-prompt=cli|guiβ changes the mode of howoidc-genshould prompt for passwords. the default iscli.
π§ Internal options
--state=STATEβ only for internal usage. uses STATE to get the associated account config. not for you, bestie, this one's the tool's own business. π
β Verbosity
-g,--debugβ sets the log level toDEBUG.-v,--verboseβ enables verbose mode.
π₯ Help
-?,--helpβ give this help list.--usageβ give a short usage message.-V,--versionβ print program version.
π’ Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. (yes that sentence is a whole mood and yes it's still true.)
π FILES π
~/.config/oidc-agentor~/.oidc-agentβoidc-genreads and writes account and client configurations in this directory. this is home base. π/etc/oidc-agent/issuer.configβ this file is used byoidc-gento give a list of possible issuer urls. the user should not edit this file. it might be overwritten when updating oidc-agent. if you want to specify additional issuer urls, the user can use theissuer.configlocated in the oidc-directory instead. π«βοΈ~/.config/oidc-agent/issuer.configor~/.oidc-agent/issuer.configβ this file (combined with/etc/oidc-agent/issuer.config) is used byoidc-gento give a list of possible issuer urls. the user can add additional issuer urls to this list, one url per line. β¨
π EXAMPLES π
oidc-gen exampleβ generates a new account configuration with name 'example' using dynamic client registration. the classic. β¨oidc-gen example -mβ generates a new account configuration with name 'example' NOT using dynamic client registration.oidc-gen example -f ~/.config/oidc-agent/example.com_2018-01-31_f34a.clientconfigβ generates a new account configuration using the client configuration stored in~/.config/oidc-agent/example.com_2018-01-31_f34a.clientconfig.oidc-gen example --at=token1234β generates a new account configuration with name 'example' using dynamic client registration. the access tokentoken1234is used for authorization at the (protected) registration endpoint. π₯
π REPORTING BUGS π
found a bug? report bugs to https://github.com/indigo-dc/oidc-agent/issues π
and subscribe to the mailing list to receive important updates about oidc-agent: https://www.lists.kit.edu/sympa/subscribe/oidc-agent-user.
π«Ά SEE ALSO π«Ά
oidc-agent(1), oidc-add(1), oidc-token(1)
low-traffic mailing list with updates such as critical security incidents and new releases: https://www.lists.kit.edu/sympa/subscribe/oidc-agent-user
full documentation can be found at https://indigo-dc.github.io/oidc-agent/usage/oidc-gen/
okay that's the whole page, bestie, you ate it. π
this was oidc-gen 5.3.8, dated September 2026, and you can find the whole thing filed under OIDC-GEN(1). mwah. ππ
π¦ where this page comes from
- epel 10: oidc-agent-cli 5.3.8-1.el10_3 Β· MIT AND ISC AND LGPL-2.1-or-later AND BSD-2-Clause
- fedora 43: oidc-agent-cli 5.3.8-1.fc43 Β· MIT AND ISC AND LGPL-2.1-or-later AND BSD-2-Clause
- fedora 44: oidc-agent-cli 5.3.8-1.fc44 Β· MIT AND ISC AND LGPL-2.1-or-later AND BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms