#DHSeaDev — Chrome MV3 — Side Panel + Full Page

Dota Companion

Dota Companion is a free Chrome extension that gives you a private Dota 2 dashboard in Chrome’s side panel — improvement streaks, goals measured against your own baseline, a review of each favorite hero, searchable guides, a ward map you can compare with another player’s, private player notes, and a full valuation of your Steam inventory. Local-first: no account, no API key.

🧩GET IT ON CHROME →

Available now on the Chrome Web Store — free, no account, no API key.

Field Guide

Dota Companion is built for the climb between matches, not the match itself. Its improvement streak counts consecutive recent games that beat your own GPM baseline — so the number tracks getting better, not just showing up. Set a goal against a real metric (GPM, KDA, last hits, or win rate) and the progress bar measures it against your current twenty-game average. The player-notes tab is the piece you cannot get from a stats site: tag and rate the people you run into — smurf, thrower, playmaker — and it stays, privately, only on your device. Enable “Expose Public Match Data” in Dota 2 settings so your matches are visible to the public OpenDota API the extension reads from.

The inventory page opens as a full tab and values everything you own against the Steam Community Market. Every inventory calculator on the web answers the same question — what is it worth. This one also answers whether it is doing anything for you: because the extension already knows your match history, it can separate the cosmetics riding on heroes you actually play from the ones sitting idle on heroes you have not picked in twenty games. Value is tracked from your own refreshes, so the chart is your inventory’s history rather than a market average, and items that appeared since you last looked are flagged.

It is deliberately slow about Steam, and that is a feature. Steam rate-limits these endpoints per IP address — a tool that hammers them does not just break itself, it locks you out of your own inventory page and the market for hours. So this one never fetches on its own: you press a button, it paces at twelve requests a minute against a ceiling of roughly twenty, caps itself daily, prefers one bulk request over a hundred small ones, and stops entirely the moment Steam pushes back — then tells you plainly why and for how long.

Version 2.5 moves the whole app into Chrome’s side panel so it stays open while you switch tabs; the maximize button opens the same app as a full page and the minimize button brings you back. Star the heroes you play and each one gets a review — your record adjusted for sample size, your last ten games, and where your gold, experience and last hits rank against everyone else on that hero. The Guides tab is a searchable guide book for heroes, abilities and items with nothing hand-written in it: every entry is built from public game data, so it is as fresh as your last download rather than as old as the last time someone updated a page. The Wards tab draws where you place wards and, if you paste another player’s profile, rings the spots they use far more than you do. When something is worth sharing, four cards — match history, a single match, a hero, a ward map — export as a wide image for X and Facebook or a square one for Instagram. The devlog has the long version, including what broke on the way.

MV3 Side Panel Full Page Dota 2 Stats OpenDota Inventory Steam Market Guides Ward Map Share Cards

What it does

Improvement Streak

Counts consecutive recent games that beat your own GPM baseline. The streak measures progress, not attendance.

Goals & Progress

Target a GPM, KDA, last-hits, or win rate. A progress bar tracks it against your current 20-game average.

Player Notes

Tag and rate anyone you run into — smurf, thrower, playmaker. Private, stored only on your device.

Recent Form

Win/loss streak, last-ten results, and most-played heroes with per-hero win rate — one toolbar click.

Inventory Value

Every Dota 2 item you own, priced against the Steam Community Market, grouped and sorted by value. Filter by rarity, hero, slot or type; search by name; watch the total move over time.

Idle Cosmetics

What a price alone cannot tell you: it knows which heroes you actually play. See how much of your cosmetic spend sits on heroes you have not touched in twenty games — and which of your most-played heroes have nothing equipped at all.

Smart Insights

Names the one metric that has fallen furthest below your own baseline and gives you a concrete drill for it — with progress split by hero and by lane, because a number blended across roles describes nobody.

Draft Helper

Type the enemy heroes as they are picked and see your own hero pool ranked by how you actually perform, alongside your real record against each pick.

Favorite Heroes

Star the heroes you play. Each gets a review: your record adjusted for sample size, your last ten games, and your gold, experience and last hits ranked against everyone else on that hero.

Searchable Guides

Heroes, abilities and items in one search, plus role guides. Built from public game data rather than written by hand, so nothing goes stale between patches — with what players build, matchups, and your own record.

Ward Map

See where you place observers and sentries, then compare with any player and find the spots they ward far more than you do. A comparison with one player’s habits, not a rule.

Share Cards

Match history, a single match, a favorite hero or a ward map, as a wide image for X and Facebook or a square one for Instagram. Copy it, download it, or use the share sheet.

Screenshots

Dota Companion — Dota 2 improvement dashboard, screenshot 1 Dota Companion — goals and progress, screenshot 2 Dota Companion — player notes, screenshot 3 Dota Companion 2.5 — favorite hero review with record, recent form and percentile bars Dota Companion 2.5 — searchable hero, ability and item guides Dota Companion 2.5 — ward map comparison with another player
🧩GET IT ON CHROME →

Available now on the Chrome Web Store — free, no account, no API key.

Privacy Policy

Your notes, goals, cached matches, inventory and price history are stored locally in your browser and never leave your device. No accounts, no telemetry, no analytics, and no remote code.

The extension makes two kinds of network request, both on your behalf and neither carrying your identity: public Dota 2 match data from the OpenDota API for the account ID you enter, and your public Steam inventory plus Community Market prices from steamcommunity.com. Steam access is an optional permission you grant with a button — the performance dashboard works fully without it. Those requests are sent without your Steam login cookies, and the extension never lists, buys, sells or trades anything.

Not affiliated with, endorsed by, or sponsored by Valve Corporation. Dota and Dota 2 are trademarks of Valve. Match data provided by OpenDota. Item prices provided by the Steam Community Market.

Contact: dhseadev@gmail.com

Changelog

2.5.0 — 5 October 2026

The popup is replaced by Chrome’s side panel, which stays open while you switch tabs. The full page is its maximized form, and a new minimize button returns you to the panel. Tabs now stay on one row, with the rest folded into a More menu, and Settings is a drawer behind the gear instead of a tab. Guides is redesigned — browse by hero tile, search with icons, jump between sections — and is now available in the side panel too. Dropdowns have more room around them and keyboard focus draws a single clear ring. The inventory page is a centred, aligned column instead of a narrow strip at the left.

Fixes. Favorites toggled in two open windows no longer overwrite each other. A thin matchup sample no longer lists the same five heroes as both best and worst. Adds one permission, sidePanel, used only to show the interface in the panel; there is still no tabs permission, no account and no API key. The full write-up.

2.3.0

Favorite heroes, each with a review: your record adjusted for sample size, your last ten games, and your gold, experience, last hits, hero damage and kills per minute ranked against everyone else on that hero. Guides: one search across heroes, abilities and items, role guides, population builds by game phase, matchups, and your own record — all built from public game data. A Wards tab that draws where you place wards and compares them with another player’s. Four new share cards: match history, a single match, a hero, and a ward map.

2.0.0

The full page becomes the main place to work, with the popup kept as a fast glance. Adds a Meta tab (win rate, pick rate and trend by rank bracket, sortable by your own record), a Party tab (who you actually win with), hero portraits throughout, and a match detail view that ranks each number in a game against everyone else on that hero.

1.9.0 — 25 August 2026

Adds an Insights tab. It names the one metric that has fallen furthest below your own baseline and gives you a concrete drill for it, instead of six numbers and no instruction. Beside it: per-hero progress, measured against your own earlier games on that hero, and baselines split by lane — because a number blended across safelane and mid describes nobody.

A status line on the Overview tab now says what the data is before showing anything built on it: a hidden profile, an uncalibrated rank, too thin a sample, a stale cache, or simply that a finished game can take up to an hour to reach OpenDota. Every first-run failure this extension had was a silent one.

The Matchups tab gains a draft helper. Type the enemy heroes as they are picked and see your own hero pool ranked by how you actually perform, alongside your real record against each of those picks. It reads the same lifetime data that tab already fetched, so opening it costs no extra request. The ranking is ordered by a confidence bound rather than a raw percentage, so a three-game hero never outranks a forty-game one.

Fixes. A stat missing from OpenDota is now recorded as missing rather than as a zero — the old behaviour quietly dragged every average, baseline and trend line down. A failed lookup can no longer leave the previous player’s stats on screen under a new name. Lane data now survives ingest at all, which is what made the role split possible. Plus guards on adding and removing goals, and on changing currency while prices are still loading.

1.8.0

First-run guidance: a five-step inline guide that is dismissable and reopenable from Settings.

1.7.0

Steam inventory valuation, Simplified Chinese, and an optional Steam permission that is requested only at the moment you turn that feature on.