Simple Steam Auth

approved

by dreamscached

Generate Steam Guard codes right in your vault.

โ˜… 6 starsโ†“ 283 downloadsUpdated 2mo agoGPL-3.0

๐Ÿ”‘ Simple Steam Auth

Workflow status Latest release GitHub downloads GitHub license

A dynamic, real-time Steam Guard code component directly in your Obsidian notes!

๐Ÿค” Why?

This plugin is extremely convenient if you use multiple Steam accounts and need to switch between them frequently. It is especially useful for bot developers (e.g., automated trading) who manage dozens of accounts within their vault.

๐ŸŽž๏ธ Demo

Hover to revealAlways revealed (unsafe)
Hover-reveal demoRevealed code demo

๐Ÿ“ฆ How to install

This plugin is available in the Obsidian Community plugin list. Click here to quickly install it directly within your Obsidian app.

๐Ÿ““ How to use

[!NOTE] You are expected to know how to obtain the shared secret for your Steam account. If you don't, please refer to this extensive guide.

After installing the plugin, simply create an inline code block with the following content inside the backticks:

::steam-guard-code::YOUR_SHARED_SECRET_HERE

That's it! You now have quick access to your Steam Guard codes.

๐Ÿ”’ Security Information

[!CAUTION] Steam Guard, via the official Steam mobile app, is the only two-factor authentication application officially endorsed by Valve Corporation. This plugin is a third-party implementation and should be used at your own discretion.

Steam Guard codes are generated locally using the cryptographic secret you provide. Neither the secret nor the generated codes ever leave your device.

However, be wary of other software (including other plugins) that could potentially access your Obsidian vault to steal your secret. You should also be mindful of anyone who might see your screen while a code is visible.

Version releases are generated by GitHub Actions, attested, and verifiable against the source commit. Immutable releases ensure no tampering occurs between the commit and the final .js file production.

The original steam-totp implementation has been patched with minimal changes: Node-specific crypto is ported to the Web Crypto API for the Obsidian browser JS environment (with added buffer@6.0.3 dependency), and the unused getTimeOffset() function (which made a network request to Steam's servers) has been removed, as this plugin never calls it.

๐Ÿ™Œ How to contribute

We welcome contributions! See CONTRIBUTING.md to learn how you can help us.

๐Ÿ“œ Acknowledgements

During development, inspiration for various components was drawn from:

  • Dataview โ€” Live Preview/Source mode separation and inline code span replacement
  • Steam TOTP โ€” this plugin uses a version of the steam-totp npm library adapted for the browser JS environment (patch)

โš–๏ธ License

This plugin is licensed under the GNU GPLv3 license.

Steam, the Steam logo, Valve, and the Valve logo are trademarks and/or registered trademarks of Valve Corporation. All other trademarks are property of their respective owners. This project is not affiliated with, sponsored by, or endorsed by Valve Corporation.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.