A powerful Visual Studio Code extension for decoding, inspecting, and validating JSON Web Tokens (JWTs).
See KEY_TYPES.md
JWT Viewer with Remote Key Verification

- Visual Decoding: Paste any JWT and instantly see its decoded header, payload, and signature
- Syntax Highlighting: Color-coded JSON output for easy reading
- Timestamp Conversion: Automatically converts
iat,nbf, andexpclaims to human-readable dates - Expiration Badge: Visual indicator showing if the token is expired or still valid
- Multi-Panel Support: Open multiple JWT viewers simultaneously for comparison
- Public Key Validation: Validate JWT signatures against saved public keys
- Multiple Key Sources:
- OIDC/JWKS URLs: Automatically fetch keys from OpenID Connect discovery endpoints
- JWKS JSON Entry: Paste full JWKS documents directly (stored as a key set)
- Manual Entry: Add public keys directly in PEM or raw format
- Key Management: Store, list, and delete validation keys from the sidebar
- Auto-Refresh: URL-based keys can be configured to refresh automatically (daily, weekly, or monthly)
- JWKS Key Selection: JWT
kidis used first, with optional manual override in the JWT Viewer - Key Viewing: Review stored key material and derived public keys in decoded (PEM) format
- Sidebar View: Quick access to open viewers and key management
- Editor Panel: Full-featured JWT viewer with validation controls
- Activity Bar Icon: Dedicated Notary icon in the VS Code activity bar
- Keyboard Shortcuts:
Ctrl+Shift+J/Ctrl+Alt+J(orCmd+Shift+J/Cmd+Alt+Jon Mac) to open a new viewer
JWT Viewer with Local Key Verification

JWT Viewer with JWKS Verification

JWT Viewer with JWKS Failed Verification

- Press
Ctrl+Shift+J(orCmd+Shift+Jon Mac), or use the fallbackCtrl+Alt+J(Cmd+Alt+Jon Mac), or run the commandNotary: Open JWT Viewer (Editor Panel) - Paste your JWT token into the input field
- The decoded header, payload, and signature will appear automatically
- Timestamps are converted to readable dates
- Token expiration status is shown with a badge
All key creation now starts from the sidebar Add Key button, then you choose the source in the key details panel.
- Open the Notary sidebar from the activity bar
- Click Add Key
- Enter a name for your key
- Select Fetch from URL
- Enter one of the following URL formats:
- Base URL:
https://example.com(auto-discovers via .well-known) - OpenID Configuration:
https://example.com/.well-known/openid-configuration - Direct JWKS URL:
https://example.com/.well-known/jwks.json
- Base URL:
- Choose a refresh period (Daily, Weekly, or Monthly)
- Click Add Key
The extension will automatically discover the JWKS endpoint from base URLs by attempting:
- OpenID Connect discovery via
/.well-known/openid-configuration - Direct JWKS fetch from
/.well-known/jwks.json
- Open the Notary sidebar
- Click Add Key
- Enter a name for your key
- Select Manual Entry
- Paste your public key in PEM format:
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1dP8pZk6jJ6VY8Z9sR7 QeZ0+9H8g8Y1VQZk4WwzK1z9Z2bNRzRZyM4VY9r7kVb6b4r1v4Wz7h5lQ1X9P9m3 ... -----END PUBLIC KEY----- - Click Add Key
- Open the Notary sidebar
- Click Add Key
- Enter a name for your key
- Select Paste JWKS JSON
- Paste a full JWKS document, for example:
{ "keys": [ { "kty": "RSA", "n": "...", "e": "AQAB", "use": "sig", "alg": "RS256", "kid": "key1" } ] } - Review the key preview and claims shown in the panel
- Click Add Key
When editing a JWKS JSON key, you can update the pasted JWKS document and save changes. Notary stores the full key set and uses JWT kid matching during validation.
Supported formats:
- RSA public keys (
-----BEGIN PUBLIC KEY-----or-----BEGIN RSA PUBLIC KEY-----) - Elliptic Curve (EC) public keys
- EdDSA public keys
Keys are stored securely in base64 encoding within VS Code's extension storage.
- Decode a JWT in the viewer panel
- In the "Validation" section, select a validation key from the dropdown
- Click "Validate Signature"
- The validation result will appear showing whether the signature is valid
To review a stored public key:
- Open the Notary sidebar
- In the "Validation Keys" section, find the key you want to view
- Click "View Key"
- The decoded public key will open in a new editor tab
This allows you to verify the exact public key content that's stored (keys are stored in base64 encoding but displayed in their original PEM format).
- Visual Studio Code version 1.110.0 or higher
Currently, this extension does not contribute any VS Code settings. All configuration is done through the sidebar UI.
Please report issues on the GitHub repository.
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Run tests
npm test
# Package for distribution
npm run package- Clone the repository
- Run
npm install - Open in VS Code
- Press
F5to launch the Extension Development Host
See CHANGELOG
This project is licensed under the GNU General Public License v3.0 (GPL-3.0-only).
See the LICENSE file for details.
Enjoy decoding and validating your JWTs with Notary! π







