Skip to content

Instantly share code, notes, and snippets.

@VityaSchel
Last active October 2, 2025 19:55
Show Gist options
  • Select an option

  • Save VityaSchel/57a887d680d9f910009669c56561c1a2 to your computer and use it in GitHub Desktop.

Select an option

Save VityaSchel/57a887d680d9f910009669c56561c1a2 to your computer and use it in GitHub Desktop.
Reset Steam achievements on MacOS without SAM (updated for macOS 26 and 2025)

This took me a while to figure out, so here's all you need to know:

  1. In order to clear an achievement we're going to use Steam's client secret console and achievement_clear command
  2. You'll need the game ID (appid, number like 123456) and an achievement id (text like ACHIEVEMENT_NAME) in order to lock it
  3. Since there is no "clear all achievements" command, we're going to use keyboard simulation to paste a long list of commands to the Steam's client console

Steps to reset all achievements for a Steam game

  1. Open https://steamdb.info/ and find your game in the search
  2. Open "Achievements" page
  3. Open your browser's DevTools and paste this script into the browser console on SteamDB page:
(() => {
	const appId = document.querySelector('[itemtype="http://schema.org/SoftwareApplication"]').getAttribute('data-appid')
	const osascript = (
		"delay 5\\n" + 
		Array.from(
			document.querySelectorAll('.achievements_list .achievement[id^=achievement]')
		)
		.map(a => a.querySelector('.achievement_api').innerText)
		.map(achid => `tell application \\"System Events\\" to keystroke \\"${`achievement_clear ${appId} ${achid}`}\\" & return\\ndelay 0.1`)
		.join('\\n')
	)
	document.write(`echo "${osascript}" | osascript`)
})()

Copy the results in the page to your clipboard

  1. Open Steam's console by going to steam://open/console. You can just copy-paste this URL into your browser address bar and it should prompt you to open Steam

Run this line of code in your system's terminal. Make sure your terminal app has access to "System Events" and "Accessibility" in the OS settings in "Privacy & Security". Otherwise it simply won't be able to paste commands and press 'return' key for you.

echo "tell application \"System Events\" to keystroke \"aboba\" & return" | osascript

If you see output like zsh: command not found: aboba then osascript worked correctly and automatically typed the word aboba, so you're good to go!

Paste the long script generated in the browser to your console and press enter.

echo "delay 5\ntell application \"System Events\" to keystroke \"achievement_clear 105600 TIMBER\" & return
<...>
PURIFY_ENTIRE_WORLD\" & return\ndelay 0.1" | osascript

Quickly switch back to the Steam client console, click on the input field and wait 5 seconds until it starts inputting commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment