# Steam Economy Enhancer: one userscript for market pricing and bulk actions

> Steam Economy Enhancer is a single JavaScript file you install through Violentmonkey that adds price detection, bulk listing and quick-sell controls to the Steam market, inventory and trade offer pages. Its pricing can follow the lowest listed price, price history or your own floor and ceiling, and its test script is a linter.

**Nuklon/Steam-Economy-Enhancer** — Enhances the Steam Inventory and Steam Market.

- Repository: https://github.com/Nuklon/Steam-Economy-Enhancer
- Stars: 2,036 · Forks: 199
- Language: JavaScript
- License: MIT
- Published: 2026-10-12 · Updated: 2026-10-12 · Language: en
- Canonical page: https://hysenlabs.com/projects/nuklon-steam-economy-enhancer

## What it is: one file, one extension, no build step

Steam Economy Enhancer is a userscript, not an extension and not an application. The entire deliverable is code.user.js, installed by pointing a userscript manager at the raw file on the repository: 
Violentmonkey is required, and that is the whole installation story. There is no package to build, no configuration file to write and no account to create.

The package.json confirms how small the footprint is. It is marked private, so it is never published to a registry, and its only scripts are fix and test, where test is literally eslint. The devDependencies are four linting packages, including eslint-plugin-userscripts, which is the piece that knows about userscript-specific globals and metadata.

That tells you the engineering shape before you read a line of the script. This is a single-file tool maintained by one person, kept lint-clean, with no test suite. For a project that only touches page markup you do not control, that is a defensible level of rigour, and it is also the honest answer to how much confidence the code carries.

n
The file is fetched from a raw GitHub URL rather than a package registry, which is the norm for userscripts:

```text
https://raw.githubusercontent.com/Nuklon/Steam-Economy-Enhancer/master/code.user.js
```
The top level is correspondingly small: the script, the README, an eslint configuration, an .editorconfig, and an assets directory holding the icon and the four screenshots the README shows.

## Price detection, and the three bases you can price from

The market side of the script is built around one question: is this listing a good price or a bad one, and the README answers with detection of overpriced and underpriced items.

What you compare against is configurable, and the configuration matters more than the detection. Pricing can be based on the lowest listed price, the price history, or your own minimum and maximum prices.

Those three options are genuinely different, and choosing wrongly makes the tool actively harmful. Lowest listed price is a snapshot: it tells you the current floor, which is what you want when you are buying and what you want to undercut when selling. Price history is a trend, which is what you want when a listing is cheap because the whole market moved rather than because that item is mispriced. Your own minimum and maximum are a policy, which is what you want once you have decided what a skin is worth to you.

Settings live at the top of the page near the Install Steam button, which is an unusual placement and worth knowing before you go looking for them in a menu.

The inventory and trade offer pages reuse the same idea, showing the lowest listed price for each item you own, so the reference price is visible where you are deciding rather than only where you are listing.

## Bulk market actions: select, remove, relist

The market features are the ones that change behaviour rather than add information, and they are worth reading as a group.

Selection is tiered: you can select 5 overpriced items, 25, or all of them, and then remove them at once. That is a quantity-of-clicks solution, and it is the feature that changes how you use the page.

Removal has an automatic variant. The README lists automatically relisting overpriced items, which is a different thing from deleting them: a listing removed and immediately replaced at a different price is a repricing operation, executed at whatever cadence you configure.

The rest of the market surface is navigation. Sort and search by name, price or date, and a total price for listings computed both as seller and as buyer. The seller and buyer totals are the detail that shows this was built by someone who has done it: the same list of listings is worth a different number of dollars depending on whether you are liquidating into it or taking items out of it, and a single total would hide the difference.

Taken together, the market story is: enter with a price basis, find the items that disagree with it, select them in bulk, and either delete them or reprice them without leaving the page.

## Inventory features, including the ones that bypass confirmation

The inventory side covers selection, selling and two conversions that are specific to Steam's economy.

Selection is multi-select with Shift and Ctrl, which is the ordinary desktop convention and the reason the script feels native rather than bolted on. On top of that it adds sell all for selected items or for trading cards automatically.

The item details page gains market sell and buy listings, so you can see what your item is listed at without opening another tab, and quick sell buttons that sell an item without confirmations. That last one deserves its own warning. A confirmation dialog exists to make you look at the price before you commit, and quick sell exists to skip it. Nothing in the documentation adds safeguards, so the safeguard is your own reading of the price first.

Two conversions stand out because they have no equivalent outside Steam. You can turn selected items into gems, and unpack selected booster packs. Both operate on your inventory contents and both are irreversible in the sense that you cannot undo a conversion by closing a dialog.

Alongside those, the script shows the lowest listed price for each item, which is the same reference price used on the market page, applied where the decision is actually made.

## Trade offers: counting before you commit

The trade offer page gets a smaller set of additions, and they are all about seeing the whole picture instead of the current page.

The main one is a summary of all items from both parties. It includes the total number of items, the number of unique items, and an item count breakdown showing how many of each item there are.

That distinction between total and unique is the useful part. A trade offer listing twenty identical stickers is a different proposition from one listing twenty different items, and a total count alone cannot tell you which you have been offered. Once you add a per-item breakdown, you can check a trade against what you intended to send without scrolling back and forth.

The other two additions are consistency with the rest of the script: select all items of the current page, and the lowest listed price shown for each inventory item in the offer.

So the trade offer work is deliberately modest. It does not attempt to price a trade or warn you about imbalance, which is the same restraint visible elsewhere in the project: the script shows information and removes clicks, and leaves judgement to you.

## What you get when something breaks

The README carries a note that settles the question of who to ask when something breaks: it is free but there is no support, and if you want to add functionality you are invited to submit a pull request.

That is the honest framing for a project of this size, and it should shape your expectations before installation rather than after. There is no issue tracker with a maintainer response time, no support channel, and no changelog in the repository listing.

What there is: a lint-clean single file, pull requests welcome, an eslint-plugin-userscript configuration, and the terms file at the top of the repository. The repository was last pushed to on 2026-08-17.

The dependency picture is minimal by design. With no runtime dependencies and no build output, the script runs the code you read, and any update is a new copy of the same file. That cuts both ways: there is no supply chain to worry about beyond the script itself, and no mechanism to deliver a fix once the Steam page markup changes.

The page-markup dependency is the structural risk. A userscript that finds elements by class name or data attribute breaks when Steam redesigns a page, and the author has already described a similar situation in other contexts, where application UIs moved faster than a theme could follow. When that happens here, the detection features are the ones that fail quietly, returning fewer items than you expect rather than raising an error.

## Where this script is the wrong tool

It is worth being concrete about the boundaries, because a tool that automates actions on an account deserves a clear-eyed assessment.

It is a page enhancement, not an API client. Everything it does happens inside a browser tab you opened, driven by the markup Steam serves you. Anything you would want to do on a schedule, without a browser, is outside what it does, and no configuration changes that.

It does not do anything the site does not already permit you to do manually, which is both its safety property and its limitation. There is no bulk operation that Steam refuses you and this script performs anyway, and equally no automation that would survive you closing the tab.

It has no test suite, so a change in Steam markup is discovered by you, mid-use, rather than by a maintainer before shipping. With a single-file script and no support commitment, the recovery path is reading the diff yourself, which is realistic only if you are comfortable with JavaScript.

The quick-sell and automatic-relist features are the ones to configure carefully rather than enable immediately. Both place real orders. Setting your own minimum and maximum prices before turning on automatic relisting is the difference between a tool that reprices within your policy and one that repricing according to a policy you never set.

For anything larger than that, the boundaries are clear: you need an extension with a real update channel, or your own script with tests.

## Conclusion

Adopt this userscript if you trade on the Steam market in volume and your bottleneck is clicking, because the bulk selection, seller and buyer totals, automatic relisting and lowest-listed-price display are exactly the repetitive work it removes, and it costs one file and one extension. Do not adopt it as anything you want to maintain or extend without reading the code, because the whole project is a single userscript whose declared test command runs eslint and nothing else, and there is no support, with pull requests welcome. Verify four things first. Read the raw file before installing it, since a userscript executes on the Steam domain with your session, and you are being asked to trust a file served as a raw URL from a repository rather than an audited extension. Confirm the pricing basis you want in the settings near the Install Steam button, because lowest listed price, price history and your own minimum and maximum are different answers to the same question and the default is not stated in the README. Understand that quick sell bypasses confirmations by design, so a misclick places a real listing at a real price. And check how you will update: the README gives a single download link, so upgrades are a manual re-fetch unless the userscript manager handles the update URL. Start by installing it, opening the market on one item, and comparing its price verdict against the listings in front of you.

## FAQ

### How do I install Steam Economy Enhancer?

Install Violentmonkey, then point it at the raw code.user.js file linked from the README. It is a userscript, so there is nothing to build and no configuration file to write; settings appear at the top of the page near the Install Steam button.

### What can Steam Economy Enhancer do on the market page?

It detects overpriced and underpriced items, lets you select 5, 25 or all overpriced items and remove them at once, can relist overpriced items automatically, sorts and searches by name, price or date, and shows total prices computed as seller and as buyer.

### What pricing options does the script use?

Pricing can be based on the lowest listed price, the price history, or your own minimum and maximum prices, all configured in the script's settings on the page.

### Does the script work on Steam inventory and trade offers?

Yes. On the inventory it adds multi-select with Shift and Ctrl, sell all for items or trading cards, quick sell buttons, gem conversion, booster pack unpacking and lowest listed prices. On trade offers it adds a summary with item totals, unique counts and a per-item breakdown.

### Is Steam Economy Enhancer supported?

The README states it is free but there is no support, and invites pull requests if you want to add functionality. The repository also has no test suite, since the test script runs eslint.

## Sources

- [Issues](https://github.com/Nuklon/Steam-Economy-Enhancer/issues)
- [License: MIT](https://github.com/Nuklon/Steam-Economy-Enhancer/blob/master/LICENSE)
- [Nuklon/Steam-Economy-Enhancer on GitHub](https://github.com/Nuklon/Steam-Economy-Enhancer)
- [README](https://github.com/Nuklon/Steam-Economy-Enhancer/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nuklon-steam-economy-enhancer
