Leonxlnx / earshot
git clone https://github.com/Leonxlnx/earshot.git
v0.2.0 · 3d ago
Ears for coding agents: let AI hear, review and make sound. CPU-only, open source.
—
stars, 24h
+1.9k
stars, 7 days · #42
+1.9k
stars, 30 days · #163
1.9k
★ total · +1918% this week
109
forks · 4 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
LicenseMIT
Created2026-10-15 (5d ago)
Last push2d ago
Watchers4
OwnerUser
GitHub topics
Links
README excerpt
# earshot **Ears for coding agents.** **Watch the 22 s launch film** - every sound in it was made in code by `earshot forge`; no recordings, no music track. AI coding agents can now write the code that renders a film, a product demo or a game. They still cannot hear what they made. They cannot tell a premium key press from a cheap one, notice that a hit lands 80 ms after the cut, or hear that the music swells in the wrong place. earshot turns sound into evidence an agent can reason about: what a file sounds like in words, how well it fits a description, the best moment inside a long recording, whether it is a real recording or code-synthesized, a second-by-second listening transcript of a whole film, an annotated picture of it, and a scorecard against professional launch films. It runs locally on CPU, as a CLI, a Python API and an MCP server. With ears, an agent can also **make its own sounds in code** and improve them by listening (`earshot forge`), and **translate a recording into code** it can vary (`earshot fit`). Both below. **New in 0.3: sound for code-made films.** A bank of 201 sound effects stored as code that render by id in seconds, with no models and no network: `earshot sfx` aims a whoosh, hit, click or note at a moment in the picture, and `earshot kit` renders a whole film's effects with measured sync points (below). [code] ## What it does | command | what an agent gets | |---|---| | `describe FILE` | what it sounds like: calibrated tags (z) with the closest alternative readings, AudioSet labels, measurements | | `match FILE QUERY [--alts ...]` | how well a description fits: cosine, z among the vocabulary, a verdict (strong / plausible / weak / no match) with held-out evidence | | `rank QUERY PATHS...` | many candidate files sorted by a description (pick the best download) | | `find FILE QUERY` | the best moments inside a long recording, as sample trims (start / end seconds) | | `compare FILE --refs DIR` / `ab A B` | nearest reference recordings and typicality; A/B two sounds or two trims, the differences in words | | `realness FILE...` | real recording / pro-produced vs code-synthesized, with evidence and per-window scores | | `timeline FILE [--video V] [--cues C]` | the listening transcript: events (time, level, tag), sections, loudness, beat grid, sync of sound to picture cuts and cue frames | | `sheet FILE -o out.png` | an annotated PNG (video frames, sections, labelled events, spectrogram, waveform, loudness, sync markers) for agents that read images | | `critique FILE [--video V]` | a launch-video scorecard against a profile of 7 professional launch films, with timestamped fixes | | `profile REFS... -o p.json` | build your own reference profile from films you admire | | `measure FILE` | objective measurements only (no models): LUFS, true peak, LRA, envelope, spectrum, tempo / key | | `forge RECIPE --refset CAT` | make a sound in code and improve it by listening (see below) | | `fit FILE -o recipe.py` | translate a recording