her / README.md
geekwrestler's picture
Update README.md
cd47424 verified

A newer version of the Gradio SDK is available: 6.17.3

Upgrade
metadata
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 · हेर

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 with fetch.
  • 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.