a CS2 inventory and market ledger: what you paid, where it went, what it is worth today, for every item. every purchase and sale on the steam market, csfloat and buff163 is read and tied to its item automatically. it runs on your machine and opens in your browser, or as a closed beta at forcebuy.net: sign in with steam to join the waiting list, or try the demo without signing in. ForceBuy is an independent fan project and is not affiliated with Valve or Steam.
what it does
- keeps a ledger of your CS2 items: what you own, what it is worth right now, what it cost, and what you actually made when you sold.
- matches every purchase and sale automatically. steam records that an item arrived by trade but never what it cost; the marketplace knows the price but not the item. ForceBuy joins the two, and the match holds when you apply stickers, slab an item, trade it on or put it in a storage unit.
- syncs your steam inventories, including private ones once you connect the account, and works from public profiles without any credentials at all.
- shows what is really inside your storage units, rebuilt from your inventory history.
- prices from csfloat, buff163, skinport and the steam community market, ask and bid kept apart, in your currency.
- what you have listed right now on csfloat and steam, next to each item.
- a full CS2 catalogue you can filter by kind, rarity, collection, sticker finish and float range.
- a currency calculator on european central bank reference rates, with USD, EUR and CNY side by side.
- dashboards you build yourself, as many as you like, with 42 ready-made panels to start from, and your own collections with their own totals.
it only reads
adding an inventory by SteamID, vanity name or profile URL reads a public
inventory. to read more you connect the account, and there is no password
field, ever. you paste one cookie (steamLoginSecure) from a
browser you are already signed in to. ForceBuy checks it against steam,
checks that it belongs to the account you pasted it into, and stores it
apart from everything else. marketplaces work the same way: a csfloat API
key or a buff163 login, next to the account it belongs to.
with that it reads private inventories, inventory history, market
history, storage unit movement and your marketplace trades. it reads:
that is the whole list. nothing here lists an item, accepts a trade,
sends a trade, buys, sells or changes a price. every outbound request is
a GET, the steam cookie only ever travels to
steamcommunity.com over https, and it is never carried
across a redirect. every login can be revoked on the inventories page
whenever you want.
local or on the web
the download runs entirely on your machine. the local API binds to
127.0.0.1 and refuses requests from any web page that is not
served from this machine, so a website you have open cannot reach into
your ledger. no account, no analytics, no crash reporting.
the web version at forcebuy.net is the same app with a steam sign-in in front. access is by invitation during the closed beta. every account's data is kept apart in the database itself, not only in the app, and what is stored there is described in its privacy policy.
where your data lives
locally you pick the folder during setup. it holds the database with your
items, prices, history and dashboards, a config file, a separate secrets
file for the steam cookie and marketplace logins, cached images and
catalogue, and the sync logs. defaults are
%APPDATA%\ForceBuy on windows,
~/Library/Application Support/ForceBuy on macos and
~/.local/share/forcebuy on linux. updating is replacing the
app folder with the new one, the data folder is untouched.
under the hood
a react UI on top of a node API, with an embedded postgres database locally and postgres on the web, a job queue, and a core covered by about 1,240 tests. the catalogue comes from the public ByMykel/CSGO-API dataset and refreshes as a delta: ETags on every source file, per-row fingerprints, and unchanged files come back as a 304 with no body at all. every figure in the app that is not calculated locally says where it came from.
beta
portable, no installer: download the zip, unpack it, run
ForceBuy.cmd on windows or ./forcebuy.sh on
macos and linux, and it opens in your browser at
http://127.0.0.1:8787. node.js 20 or newer has to be
installed; the start script says so if it is not there. a self-contained
build is on the list.
what does not work yet
- steam prices come one item at a time and are throttled hard. the daily lists from csfloat, skinport and buff163 cover most items in one go.
- steam never returns what is inside a storage unit and never records taking an item out. ForceBuy rebuilds the contents from your inventory history; an item taken out shows up again when it is seen, traded or stored anew.
- where several identical items (cases, capsules) were bought on the same day, which receipt belongs to which copy cannot be told apart, and the match says ambiguous. for cost and profit it makes no difference.
- YouPin898 is not connected.
- fade percentages and pattern tiers are not calculated. they cannot be derived from a paint seed without community-maintained tables, and guessing would produce numbers that look like facts.
- no automatic backup for the local app yet, copy the data folder yourself.
licence
ForceBuy is released under the PolyForm Noncommercial License 1.0.0. private, academic and non-profit use is free, including changes and passing it on, as long as the licence and the copyright notice travel with it. commercial use or distribution needs an agreement first: licence, commercial terms, [email protected].
privacy
the local app collects no user data. read the full privacy policy. the web version has its own at forcebuy.net/privacy.