[{"data":1,"prerenderedAt":262},["ShallowReactive",2],{"project-44742710":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":78,"maker_in_thread":150,"shape":152,"grid":157,"attempts":224,"same_week":225,"maker_shows":32,"maker_hidden":254,"reader_version":255,"card":256},"44742710","AgentGuard","Auto-kill AI agents before they burn through your budget","title","Show HN: AgentGuard – Auto-kill AI agents before they burn through your budget","https:\u002F\u002Fgithub.com\u002Fdipampaul17\u002FAgentGuard","github.com","dipampaul17",1753941244,2025,47,26,1306,3837,35,"shown","dev_tools","api cost monitoring","library",[24,25,26,27],"ai agent budget","openai cost limit","api spend monitoring","llm cost control","roasted",-0.679,{"positive":31,"neutral":32,"mixed":31,"critical":33},0,2,15,17,{"design":36,"idea":37,"execution":39,"pricing":41},{"positive":31,"critical":32},{"positive":31,"critical":38},3,{"positive":31,"critical":40},10,{"positive":31,"critical":31},[43,43,31,31,31,31,31,43,43,43,43,43,43,43,43,43,31,43,31,31,43,43,43,38,31,38],1,"Your AI agent hits an infinite loop and racks up $2000 in API charges overnight. This happens weekly to AI developers.\n\nAgentGuard monitors API calls in real-time and automatically kills your process when it hits your budget limit.\n\nHow it works:\n\nAdd 2 lines to any AI project:\n\n\n```\n  const agentGuard = require('agent-guard');   await agentGuard.init({ limit: 50 }); \u002F\u002F $50 budget    \u002F\u002F Your existing code runs unchanged   const response = await openai.chat.completions.create({...});   \u002F\u002F AgentGuard tracks costs automatically \n```\n When your code hits $50 in API costs, AgentGuard stops executio",{"problem":46,"audience":52,"pricing":57,"motivation":58,"time_to_build":57,"stack":62,"openness":75,"stage":76,"team_size":77},{"value":47,"source":48,"evidence":49},"AI agents with infinite loops can run up large API bills overnight.","maker",[50],{"id":51},"post",{"value":53,"source":54,"evidence":55},"AI developers running agents or LLM code.","inferred",[56],{"id":51},null,{"value":59,"source":48,"evidence":60},"Got tired of accidental overspending posts; existing tools only measure costs after the fact.",[61],{"id":51},[63,67,71],{"value":64,"source":48,"evidence":65},"JavaScript (Node.js)",[66],{"id":51},{"value":68,"source":48,"evidence":69},"OpenAI API",[70],{"id":51},{"value":72,"source":48,"evidence":73},"Anthropic API",[74],{"id":51},"open_source","unknown","solo",{"praise":79,"objections":88,"requests":127,"questions":132,"alternatives":140},[80],{"value":81,"source":82,"evidence":83},"Idea of a budget circuit breaker for AI costs is good.","commenter",[84],{"id":85,"by":86,"text":87},"44743048","almost","So it monkey-patches a set of common http libraries and then detects calls to AI APIs? Not obvious which APIs it would detect or in what situations it would miss them. Seems kind…",[89,97,112],{"value":90,"source":82,"evidence":91},"Monkey-patching HTTP libraries is intrusive and fragile; unclear which APIs are detected.",[92,93],{"id":85,"by":86,"text":87},{"id":94,"by":95,"text":96},"44743049","yifanl","So this is essentially monkey-patching every variation of fetch\u002Flibrary fetch and doing math on the reported token counts? It's an... intrusive solution. Glad to hear it works…",{"value":98,"source":82,"evidence":99},"A proxy server such as LiteLLM already does this better.",[100,104,108],{"id":101,"by":102,"text":103},"44744227","stingraycharles","Yeah I don’t understand this problem, who uses so many agents at the same time in the first place? And if this is really a problem, why not funnel your AI agents through a proxy…",{"id":105,"by":106,"text":107},"44744807","sothatsit","In fact, proxy servers like LiteLLM[1] already exist that are very easy to setup and set limits in. [1] LiteLLM: https:\u002F\u002Fwww.litellm.ai\u002F",{"id":109,"by":110,"text":111},"44743095","samsk","For this I use LiteLLM proxy - you can create virtual keys with daily\u002Fweekly\u002F... budget, its pretty flexible and has a nice UI. See https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fproxy\u002Fusers",{"value":113,"source":82,"evidence":114},"Code appears vibe-coded with overstated README claims.",[115,119,123],{"id":116,"by":117,"text":118},"44743962","jeffhuys","Honestly feels very vibe-coded [1] [2] and would not really trust my money with something like this. I had to read the code to understand what it actually protects me from, as…",{"id":120,"by":121,"text":122},"44745758","hansmayer","\"Commit 2ef776f dipampaul17 committed Jul 31, 2025 · Update READMEs: honest, clear, aesthetic - Removed pretentious language and marketing speak - Added real developer experience…",{"id":124,"by":125,"text":126},"44744439","diggan","> [1] https:\u002F\u002Fgithub.com\u002Fdipampaul17\u002FAgentGuard\u002Fcommit\u002Fd49b361d7f345ddba538deebcda9e23a2cdaeaa8 It's kind of crazy that people use these multi-billion parameter machine learning…",[128],{"value":129,"source":82,"evidence":130},"Make it clear how and when it fails to detect calls.",[131],{"id":85,"by":86,"text":87},[133],{"value":134,"source":82,"evidence":135},"Why not use agents that respect usage limits instead?",[136],{"id":137,"by":138,"text":139},"44744000","throwaway_ocr","Wouldn't the obvious solution to this problem to stop using agents that don't respect your usage limits instead of trying to build sketchy containers around misbehaving software?",[141,146],{"value":142,"source":82,"evidence":143},"LiteLLM proxy with virtual keys and budgets",[144,145],{"id":109,"by":110,"text":111},{"id":105,"by":106,"text":107},{"value":147,"source":48,"evidence":148},"tokencost for measuring costs",[149],{"id":51},{"comments":31,"answered":31,"key":151},[],{"commenters":153,"max_depth":154,"maker_replies":31,"first_comment_mins":155,"lifespan_hours":156},20,5,54,9,[158,160,161,165,167,170,172,175,177,178,179,182,183,186,189,191,192,195,198,200,202,205,207,212,215,219],[85,31,43,159,86,31],"project\u002Fcritical\u002Fdesign",[94,43,43,159,95,31],[162,43,31,163,164,31],"44744166","commenter\u002Fneutral\u002Fnone","RedShift1",[109,32,31,166,110,31],"other\u002Fneutral\u002Fnone",[168,32,31,166,169,31],"44744405","oc1",[171,32,31,166,110,31],"44744737",[173,32,31,166,174,31],"44745596","therealpygon",[137,38,43,176,138,31],"project\u002Fcritical\u002Fidea",[101,38,43,176,102,31],[105,38,43,176,106,31],[120,180,43,181,121,31],4,"maker\u002Fcritical\u002Fexecution",[116,154,43,181,117,31],[184,154,43,181,185,31],"44744192","StevenWaterman",[187,154,43,181,188,31],"44744286","eqvinox",[190,154,43,181,117,31],"44744767",[124,154,43,181,125,31],[193,154,31,163,194,31],"44745343","johnisgood",[196,154,43,181,197,31],"44745542","throwawayoldie",[199,154,31,166,117,31],"44745642",[201,154,31,166,197,31],"44745701",[203,154,43,181,204,31],"44744882","delusional",[206,154,43,181,117,31],"44745350",[208,209,43,210,211,31],"44743606",6,"project\u002Fcritical\u002Fexecution","can16358p",[213,209,38,214,125,31],"44744455","project\u002Fneutral\u002Fpricing",[216,217,31,166,218,31],"44743689",7,"atemerev",[220,221,38,222,223,31],"44746104",8,"project\u002Fneutral\u002Fidea","bwfan123",[],[226,231,236,241,245,249],{"id":227,"name":228,"points":229,"category":230},"44787902","Kilopixel",1145,"creative",{"id":232,"name":233,"points":234,"category":235},"44807868","Kitten TTS",1003,"ai",{"id":237,"name":238,"points":239,"category":240},"44792005","Carbon",322,"web_saas",{"id":242,"name":243,"points":244,"category":20},"44747229","Mcp-use",155,{"id":246,"name":247,"points":248,"category":235},"44767775","browser-llm",145,{"id":250,"name":251,"points":252,"category":253},"44801399","Whittle",141,"games",false,"v2",{"id":257,"name":5,"line":6,"ai":254,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":258,"top":18,"kw":259,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":260,"url":9,"mix":261,"praise":81,"objection":90,"sub":21},44742710,-0.68,[24,25,26,27],"11000001111111110100111303",[31,32,31,33],1794036679399]