SteamWand.
Maintainedto Present
Use Steam Workshop, achievements, cloud saves, and multiplayer services from TypeScript without writing a native binding.
I needed to publish translated Steam Workshop titles and descriptions. SteamWand generates bindings from Valve’s steam_api.json and calls them through koffi, avoiding a handwritten native wrapper for each function. TypeScript helpers cover Workshop, achievements, cloud saves, lobbies, and other common tasks.
The update that started it
The API documentation covers the helpers and generated flat API. A running Steam client and an app ID are still required.
const steam = init({ appId });
await steam.workshop.submitUpdate(itemId, {
language: 'german',
title: 'Mein Mod',
description: 'Deutsche Beschreibung',
});My contribution and AI use
An independent library developed with AI assistance, growing out of my own Steam Workshop integration work. I set the API requirements and worked through the binding and release boundaries. It now receives occasional maintenance rather than active feature development.