Brian Hung
Software Engineer. At the intersection of human interfaces and model harnesses.
Personal Software
Asking Sam and Victor where to eat in Seoul.
Prism
The media backend behind YapGPT and other apps: it describes, embeds and searches any photo or video.
Palate
An iPhone app that turns your photos and screenshots into a private map of places, with a concierge that plans around them.
palate.brianhung.meVisual Lookup
GeoGuessr agent that looks up places from text or GPS data in your photos.
·
·
·
✗
~
·
✓
·
photoGPS 35.0029, 135.74631/8
in
kyoto-actual-cafe.jpg
out
{
"coordinates": {
"latitude": 35.0029323,
"longitude": 135.7463441
}
}action: the model calls a tool
nearbySearch({ placeTypes: ["cafe"] })result: what the tool returns (JSON)
{
"places": [
{
"name": "ACTUAL KYOTO",
"distanceFromPhoto": 36.39,
"types": ["cafe", "bar", "coffee_shop", "…"]
},
{
"name": "イノダコーヒー",
"distanceFromPhoto": 83.24,
"types": ["coffee_shop", "food_store", "cafe", "…"]
}
]
}update: stateₙ → stateₙ₊₁ (JSON diff)
↓ the middleware renders the state into the next prompt; the model sees only this
view(stateₙ₊₁): the prompt the model is given (text)
CONTEXT: Current Candidate Summaries: - Candidate: ACTUAL KYOTO (ID: 9ab7aa8b…) - Proximity: 36.39m - Found in 1 search (Recent queries: 'cafe') - Latest Evaluation: None yet - Candidate: イノダコーヒー (ID: cb9271d4…) - Proximity: 83.24m - Found in 1 search (Recent queries: 'cafe') - Latest Evaluation: None yet Now I need to evaluate the places I've just found using filterPlaces. Remember to ALWAYS follow the search -> evaluate pattern… Before calling 'filterPlaces', use the 'thought' tool… REQUIRED EVIDENCE (Item 1): "SEARCH ENGINE MATCH: Google Maps returned this place for query 'cafe'. This provides MODERATE initial evidence of relevance."
·
✗
✓
·
✓
·
nearbySearch1/6
The agent95.0%209/220
Extract a name, then geocode93.6%206/220
One dot per photo; ○ is a miss. Highlighted: resolved by that side only.
The agent also returns no place for the 2 photos that show none.
Dispatch
Run Claude Code and Codex on your own machine, and drive them from any browser.
Agent Infrastructure
ai-sdk-harness
Sandboxes and durable runtimes for running Claude Code and Codex through the AI SDK.
Evals
A TypeScript framework for evaluating language models, built on the Vercel AI SDK.
Geoguessr Arena
Evaluation of various LLMs on street view photos.
Spreadsheet SWE-bench
A SWE-bench-style benchmark: implement one spreadsheet function in a Rust engine, graded by its tests.
Harness
Recursive language models and a continual harness, as MCP servers any agent can use.
Composer
A web app that runs Claude Code in a Cloudflare Sandbox and talks to it over the Agent Client Protocol.
Oncall
One inbox for the decisions that many Claude Code and Codex sessions need from you.
mcp-components-ui
Turns a team's React components into MCP tools that render in chat and return what the user chose.
Cloudflare computer-use
A remote MCP server that gives a model a real Linux desktop and browser inside a Cloudflare Sandbox.
Atlas
An agent-native super app where each user gets a persistent VM, a durable database, and mini-apps installed as packs.
auto-distill
Turns Claude Code and Codex sessions into reusable skills, scored against the work people already did.
Claude Code Proxy
A Cloudflare Worker that lets Claude Code run on any model the Vercel AI SDK supports.
Collaborative Software
Spreadsheet MCP
Real spreadsheets for agents over MCP, with a demo where an agent and a person edit one sheet.
Workflow
Workspace for integrated chats and notes between you and your LLMs.
Chat with Spreadsheet
Spreadsheet that can be used normally, or with LLMs.
Threads
A social notes app: write in a rich-text editor, collect posts into lists, and follow other people.
Write
Text editor built on ProseMirror.
Automerge PartyServer
Automerge sync on Cloudflare, one Durable Object per room.
git-zero
Browse and chat with a GitHub repo cloned into your browser.
Experiments
Fieldnotes
Turns a photo into an engraved field-guide plate, captioned with where and when it was taken.
Chinese Food Embeddings
Plots 307 regional Chinese dishes with eight image embedding models, to see which best tells the cuisines apart.
Cadence
If Linear made a music player.