Spaces:
Running on Zero
A newer version of the Gradio SDK is available: 6.17.3
title: Her · हेर
emoji: 🕵️
colorFrom: gray
colorTo: indigo
sdk: gradio
sdk_version: 6.16.0
app_file: app.py
python_version: 3.10.13
pinned: false
short_description: A detective for your Claude Code sessions
startup_duration_timeout: 1h
tags:
- backyard ai
- off the grid
- off-brand
- field notes
Her · हेर
हेर — Marathi for “detective.”
A detective for your coding-agent sessions. Drop a Claude Code session export and Her
reads the whole trace — so you can see what actually happened, and what to do better
next time.
What this Space does
Upload your Claude Code session exports (.jsonl) and Her investigates them:
- The journey. Every query as a node, sized by cost, the heaviest glowing — with a plain-English “what happened” on top and the deterministic cost-shape below.
- The dataflow. The tool calls along each turn, with the proven value-flow path highlighted on focus (a value that reappeared verbatim from an earlier result) — proven (solid) vs. hypothesis (dotted), always kept separate.
- Risky moves, surfaced. Deploys, production & config changes, secrets — the actions worth a second look, each traceable to the turn it happened in.
- What to do better. Tips grounded in Anthropic’s and the community’s best practices. Her suggests, never asserts — and stays silent unless a named, fixable pattern fires.
- Ask Her. A chat bound to your trace. “Why was this turn so expensive?” → she answers from the trace, cites the turns, and opens the exact tool call.
How to use it
One or a few sessions — drag & drop. Find a session file under
~/.claude/projects/<encoded-folder>/<session-id>.jsonl, then drop it onto the page
(or click Upload .jsonl). One file opens a session view; drop several to build a
project view across them.
All your projects at once — the uploader script. Grab scripts/her_upload.py from
this Space’s Files tab (or hf download <owner>/<space> scripts/her_upload.py --repo-type space --local-dir .) and run it:
python scripts/her_upload.py
It copies the sessions you pick into a staging folder, scrubs likely secrets, and uploads them — each step waits for your approval — then prints a link that opens your Projects view here. A project groups many sessions under one working directory, with a plain-English changelog across sessions and Ask Her about the project (“when did we add column X?” → names the exact session).
Your data & privacy
This is the hosted version, so your sessions are uploaded to analyze them — but they stay yours and don’t stick around:
- Private to your browser. Each browser gets a random token (
crypto.randomUUID()); your uploads land in a namespace keyed to it, so you only ever see your own sessions. - Temporary by default. A background sweeper deletes anything older than 24 hours; “clear my data” wipes your namespace immediately, and the tab-close does a best-effort clear too.
- Scrubbed on the way in. The uploader redacts likely secrets before anything leaves your machine (best-effort — review the staged copies if unsure).
- No trace content ever leaves the Space. The optional “share learnings” path (bare, scrubbed tool names only — never commands, paths, code, or JSONL) is off here.
- Guardrails. Up to 70 MB per session file, 50 sessions per project, 50 projects per browser — enough for real work, capped so no one can flood the box.
What makes her trustworthy
- Deterministic core, model for prose only. Value-flow edges, token sums, loop & re-read detection, heavy-turn ranking, entity & binary extraction, risk scanning — pure code, no model. A model is used only to write the English and to propose (never assert) findings. The numbers don’t move when the model changes.
- Proven vs. hypothesis is always separated. A verbatim value reappearance is asserted; temporal proximity is a hypothesis you judge.
- Cost alone is never advice. “Expensive but clean” is a valid, important output.
The model
Narration — the plain-English summaries, advice prose, and chat — runs on the Space
on nvidia/Nemotron-Mini-4B-Instruct via ZeroGPU. The first narration after a cold
start can take a few seconds while the GPU spins up. Swap the model with the
SPACE_MODEL_REPO Space variable — no code change. (Tool/binary identification here
is the bundled offline registry — top Homebrew/npm/PyPI tools shipped with the Space;
the live registry enricher is off here, see HER_ENRICH below.)
How it’s built
ZeroGPU is Gradio-SDK-only and its GPU quota needs the HF iframe auth headers forwarded,
so the app runs in Gradio Server mode (app.py):
upload ─▶ /data/<your-namespace>/… ─▶ engine (deterministic) ─▶ narrator (ZeroGPU) ─▶ UI
(HF storage bucket) pure code, no model Nemotron, prose only
- Deterministic engine endpoints (
/api/health|sessions|upload|analyze|project|clear) are plain FastAPI routes the React UI calls withfetch. - GPU narration (
overview · advice · chat · project_chat · project_narrative) are Gradio API endpoints the browser calls via@gradio/client(auth forwards for quota). - Storage is an HF bucket mounted at
/data, namespaced per browser; the React UI (ui/dist) is served from/. The deterministic engine is the same one the local product uses — only the transport and the model backend differ.
Prefer to keep everything local?
The same repo ships a fully-local product: ./her finds llama.cpp, downloads a local
GGUF model, and runs the whole thing on 127.0.0.1 with no upload and no egress —
it reads ~/.claude directly. Use that if you’d rather nothing leave your machine.
Self-host this Space
python scripts/deploy.py --space <owner>/<name> --create
Creates the Space + a private storage bucket, mounts the volume, uploads the app, and
requests ZeroGPU. ZeroGPU needs a paid plan: a personal PRO account for a
<you>/<name> Space, or a Team/Enterprise org for an <org>/<name> Space. See
DEPLOY.md for the full mechanics (bucket mount, factory reboot, env vars).
#backyard-ai Blog: https://huggingface.co/blog/build-small-hackathon/her-blog Social Media Post: https://www.linkedin.com/posts/ashishchalke_buildsmallhackathon-huggingface-gradio-ugcPost-7469368911361204224-IENm/?utm_source=share&utm_medium=member_ios&rcm=ACoAAAbqZTcBi7SuPZ07c89T6iyjc2PEJKICvE4 Demo: Video attached to space
हेर — she watches the work, not you.