Live
argus.build — the search, upload, and analysis flow described above is running today.
Case study
A media asset catalog that reads an image the moment it lands and writes down what's actually in it, so the search that follows is about meaning rather than filenames.
Every creative team ends up with the same problem, just at a different scale: a library of thousands of photos and graphics, sitting in folders named by date or by whoever exported them last, and no way to find "the warm, celebratory hero shot" inside that pile without opening every file by hand. Manual tagging is the fix everyone reaches for, and it's also the fix that never finishes — it's backlog work, and backlog work always loses to whatever shipped yesterday. What I wanted was something that reads an image the moment it lands and writes down what's actually in it — palette, mood, composition, visual language — so the search that follows is about meaning, not filenames.
I built Argus alone, nights and weekends, around everything else — no team, no outside budget, nothing resembling a deadline. It started as an itch, not a roadmap item, and I think that shows in the decisions below: there was no one else in the room to weigh in, so each one got made once, and had to be right enough to live with.
There's one decision here worth explaining, because from the outside it looks like foresight, and it really wasn't.
Argus exposes the same asset graph two ways: a REST API
for anything that isn't an agent, and an MCP server at
argus.build/mcp for Claude and other agents
to call directly. I didn't build both because I'd mapped
out some future where agents mattered more than scripts
— I built both because I had two different use cases in
mind at the same time, and testing them in parallel
turned out to cost almost nothing, since they share the
same test suite underneath. I still don't know which use
case wins. Building both just meant I didn't have to
decide yet.
Here's how it actually works, mechanically. Upload
triggers analysis asynchronously — the API hands back a
response in under 3 seconds and the actual vision pass
runs in the background, so the write path never blocks
on a model call. Analysis results (palette, mood, tags)
land in a searchable index; semantic queries like "warm,
celebratory hero shot" run against that index and come
back ranked by relevance rather than exact match.
Authentication runs through two token types: long-lived
ak_-prefixed API keys for normal
integrations, and short-lived at_-prefixed
agent session tokens that can't mint new keys or
escalate privileges — a narrower blast radius for
anything an agent is holding mid-transcript.
This is the piece other engineers will actually want
detail on. It's a hosted endpoint at
argus.build/mcp, not a local process — an
agent connects to it the way it'd connect to any other
MCP server, no separate SDK required. It exposes over 20
tools — search_assets,
get_asset, upload_from_url,
generate_style_guide, and
adapt_svg_to_palette among them — the same
operations available over REST, just wrapped for
tool-calling instead of HTTP verbs. That parity is the
whole point of building both surfaces: an agent working
through MCP and a script hitting REST are working
against the identical asset graph, not two versions of
the truth.
Every claim above points at something you can go and check.
Live
argus.build — the search, upload, and analysis flow described above is running today.
Scale & speed
50,000+ assets analyzed, under 3 seconds average analysis time — both figures are the product's own counters, published on the argus.build homepage.
Schema
Search and list endpoints return one pagination envelope, documented publicly rather than described:
GET /assets → { total, limit, offset, hasMore, assets }
The same shape backs the MCP
search_assets tool. Full reference:
argus.build/docs.
BRO-1090
The acceptance gate for Argus's own Design Skills
library was this: rebuild a real
brkdllc.com
deck end to end through the Argus MCP server, with
zero hand-carried context.
get_brand_kit pulled the real palette
(#FFFFFF, #111111,
#DC2626) and typography tokens.
search_assets semantically matched five
real cataloged images — hero, product demo,
pricing, problem statement, for-builders — with no
broken slots. The result was a 10-slide HTML deck
with keyboard navigation, touch swipe, and print
export, assembled by an agent rather than a human
picking assets.
That's the part I couldn't have predicted from the spec: Argus isn't only cataloging images, it's a brand kit an agent can build real deliverables from unassisted.
If I'm honest, there's nothing I'd change. Argus was never about shipping fast — it was about sitting with every piece of the problem long enough to actually understand it: what creative teams need from a tool like this, and just as importantly, what kills the experience when an agent gets it wrong.