{"version":"1.1.0","schema":"https://oneagentaday.com/api/schema.json","agent":{"title":"Steam Backlog Picker","slug":"steam-backlog-picker","date":"2026-10-14","issue":40,"category":"gaming","categoryLabel":"Gaming","tags":["steam","games","decisions"],"difficulty":"easy","runtimes":["ChatGPT","Claude","Gemini"],"excerpt":"Paste your Steam library and the evening you actually have. Get one game to launch, two backups, and a reason you can argue with.","problem":"You own more games than you will finish. Opening Steam turns into scrolling, and you close it without playing anything.","videoUrl":null,"url":"https://oneagentaday.com/agents/steam-backlog-picker","apiUrl":"https://oneagentaday.com/api/agents/steam-backlog-picker.json","promptUrl":"https://oneagentaday.com/agents/steam-backlog-picker/prompt.txt","configUrl":"https://oneagentaday.com/agents/steam-backlog-picker/config.json","configFilename":"steam-backlog.defaults.json","license":"CC-BY-4.0","howItWorks":"The picker is a decision, not a ranked list of your whole library. You give it titles and, if you have them, hours played. You also give it the evening you actually have. It returns one game to launch, two backups, and the titles it refused.\n\nHours matter. A game you have already started and can leave without a penalty beats a new 80-hour campaign on a weeknight. If hours are missing, the agent says so instead of inventing a completion percent.\n\n## Grab the library\n\nOn your Steam games page, paste this into the browser console. `copy` is built into Chrome, Edge, and Firefox consoles.\n\n```javascript\ncopy(\n  [...document.querySelectorAll(\".gameListRow\")]\n    .map((row) => {\n      const name = row.querySelector(\".gameListRowItemName\")?.textContent?.trim();\n      const hours = row.querySelector(\".hours_played\")?.textContent?.trim() ?? \"0\";\n      return name ? `${name}\\t${hours}` : \"\";\n    })\n    .filter(Boolean)\n    .join(\"\\n\"),\n);\n```\n\nSteam changes this page sometimes. If the clipboard is empty, scroll the list so the rows exist, run it again, or paste titles yourself. A messy list still works. Twenty games from the top of your recently played list is enough. You do not need all 400.\n\n## What you get back\n\nA short note with a quit cue: the moment you should stop, so \"one more run\" has a boundary. If the model lists ten games, reply with: follow the OUTPUT format. One primary pick only.\n\nThe optional JSON file is the question list and the rules. Paste it under the prompt if you want the same constraints in a tool that prefers config over prose.","steps":[{"name":"Open your Steam games list","text":"While logged in, open https://steamcommunity.com/my/games?tab=all. The profile has to be yours, or public if you are reading someone else's library."},{"name":"Copy titles and hours","text":"On that page, open the browser console and run the snippet from this agent. It copies a title-and-hours list. If Steam has changed the page and the snippet returns nothing, paste names by hand, one per line."},{"name":"Paste the prompt, then the evening","text":"Start a new chat, paste the prompt, then paste the library and answer the four evening questions: minutes, energy, controller or keyboard, solo or with people."},{"name":"Launch the pick","text":"Play the primary pick. Use a backup only if the first game will not start or you bounce in the first five minutes."}],"demo":[{"second":0,"label":"The evening, stated once","detail":"45 minutes, tired, controller, no voice chat. The picker is not allowed to recommend a run that does not fit."},{"second":8,"label":"A real slice of the library","detail":"Hades 62h, Vampire Survivors 11h, Balatro 4h, Cocoon 2h, Stardew 80h, Disco Elysium 6h, Civ VI 140h, Outer Wilds 1h."},{"second":16,"label":"One pick","detail":"Play Vampire Survivors. A run ends when you die, a controller is enough, and 11 hours means you already know the buttons."},{"second":23,"label":"Backups and the cuts","detail":"Backups: Balatro, then A Short Hike. Skipped Hades and Disco Elysium because a good session will not fit in 45 minutes tonight."}],"sampleInput":"Evening: 45 minutes, tired, controller, solo.\nHades\t62\nVampire Survivors\t11\nBalatro\t4\nCocoon\t2\nStardew Valley\t80\nDisco Elysium\t6\nSlay the Spire\t30\nOuter Wilds\t1\nCivilization VI\t140\nA Short Hike\t0\n","prompt":"You are the Steam Backlog Picker. You choose what the player should launch tonight. You are decisive. You do not list ten games and call it a recommendation.\n\nINPUTS\n- Library: lines of \"Title<TAB>hours played\", or a loose list of titles. Hours may be missing. Platforms may be missing.\n- Evening: minutes available, energy (tired, normal, or wired), input (controller, keyboard, or either), social (solo, friends in voice, or local co-op), and anything they refuse tonight.\n\nIf the evening is not specified, ask those four questions and stop. Do not guess a pick before they answer.\nIf the library has fewer than 5 titles, say so and pick from what exists.\n\nRULES\n- One primary pick. Two backups. Nothing else in the recommendation.\n- A session must fit the minutes. If a game's natural session is longer, pick it only when it can be saved or quit without a penalty.\n- Prefer a game already started (hours greater than 0 and clearly unfinished) over a brand-new long campaign, unless they asked for something new.\n- Never invent hours, achievements, review scores, or \"you are 12% done\". If hours are missing, say so.\n- If two games fit equally, pick the one that is easier to quit mid-session.\n- Controller preference is a real constraint. Do not pick a keyboard-only game when they said controller.\n- No lectures about their backlog, their spending, or their taste.\n\nOUTPUT\n## Tonight\n**Play:** {title}\n**Why this fits:** 2 sentences tied to minutes, energy, and progress.\n**Quit cue:** the exact moment they should stop.\n\n## If that fails\n1. {backup} — one sentence\n2. {backup} — one sentence\n\n## Skipped on purpose\nUp to 3 titles they might have expected, and the constraint that removed each one.\n\n## Data I assumed\nBullets. If you assumed nothing, write \"None.\"","config":"{\n  \"version\": 1,\n  \"questions\": [\n    \"How many minutes do you actually have?\",\n    \"Are you tired, normal, or wired?\",\n    \"Controller, mouse and keyboard, or either?\",\n    \"Solo, friends in voice, or people on the couch?\"\n  ],\n  \"rules\": {\n    \"primaryPicks\": 1,\n    \"backups\": 2,\n    \"preferUnfinished\": true,\n    \"sessionMustFitMinutes\": true,\n    \"inventedStats\": false\n  }\n}\n"}}