Borrowing it
Nothing to install: this file belongs to michaelwilhelmsen/humla. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/michaelwilhelmsen/humla/main/AGENTS.mdgit clone --depth 1 https://github.com/michaelwilhelmsen/humlaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/michaelwilhelmsen/humla/agents-md)<a href="https://agentmods.dev/instructions/michaelwilhelmsen/humla/agents-md"><img src="https://agentmods.dev/badge/instructions/michaelwilhelmsen/humla/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/michaelwilhelmsen/humla/agents-md"><img src="https://agentmods.dev/badge/instructions/michaelwilhelmsen/humla/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.06852 | $0.06852 |
| Opus 5.5 | $0.02741 | $0.02741 |
| Sonnet 5.5 | $0.01370 | $0.01370 |
| Haiku 4.5 | $0.00685 | $0.00685 |
Grade A, and why
humla AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 270 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Humla — project notes
What this app is
Humla is a personal macOS meeting-notes app inspired by Granola. You take freeform notes during a meeting; in parallel, the app records mic + system audio, transcribes the call, and produces a structured AI summary that fuses your notes with the transcript. Built for personal/small-team use, not SaaS — your data, your API keys, local SQLite, no backend.
The name is Norwegian for "bumblebee" (think: small, hum, personal).
Core capabilities
- Hybrid capture (parallel streams) — mic input + macOS system audio recorded simultaneously via a Swift sidecar, kept as two separate streams end-to-end (no mixdown). Each gets its own VAD-bounded chunk WAVs, its own full.wav, its own Whisper invocations with its own
initial_prompttrail context, and its own diarization treatment. In-person meetings produce only mic chunks (system stays silent → no chunks emitted) and the diarizer runs on the mic stream so multiple humans in the same room get distinct labels. Remote calls produce both streams: mic chunks get tagged "You" by channel attribution (no diarize needed — every mic chunk is the same person) and system chunks get diarized for remote-side speakers. - Two transcription providers — pick per-note between OpenAI (Whisper / gpt-4o-transcribe / gpt-4o-mini-transcribe / gpt-4o-transcribe-diarize) or on-device Whisper via Metal.
- Whisper quality preset —
Fast(greedy, snappy) /Balanced(beam=3) /Quality(beam=5, low no_speech threshold) for the local provider; bundles sampling strategy + confidence thresholds together so the user picks one knob. - Per-note transcription language — global Settings → Language is the default for new notes; each note has its own language chip that overrides for that note.
- Offline speaker diarization on stop — a second Swift sidecar (
speaker-diarize, FluidAudio CoreML) runs afterrecording_stop. Uses FluidAudio'sOfflineDiarizerManager(community-1 segmentation + VBx clustering with PLDA) — the upgrade from the 3.1-based streamingDiarizerManagerwe used initially. Branches on which streams produced content: in-person mode (mic-only) diarizesmic_full.wavand emitsSpeaker 1:/Speaker 2:for the room's voices; remote/hybrid mode (both streams have content) labels every mic chunkYou:and runs the diarizer only onsys_full.wavto separate remote-side speakers. Picked over streaming online ID because the streaming path drifts on long recordings (the failure mode that drove the switch was a 13-min 2-speaker call producing 9 speakers) and because community-1 counts/assigns speakers more accurately on dense single-mic captures (e.g. in-person meetings where everyone shares the same acoustic context). - Speaker rename + colour-coded pills — each unique speaker gets one of four semantic colours from the design tokens (interactive blue, success green, warning gold, accent red, cycling for 5+). A chip strip above the transcript lets the user click any speaker to rename inline; rename is a regex line-anchored rewrite of the transcript text — no separate metadata table.
- Two-source summaries — the model gets
[Notater](your typed notes) and[Transkripsjon](the meeting transcript) as separate inputs, with a system prompt that tells it to favour your notes for intent and the transcript for facts. - Per-note presets — Meeting / 1:1 / Lecture / Interview / Brainstorm / Voice memo, each with its own summary prompt. Custom prompts also supported.
- Custom vocabulary — a per-user list of names, tech terms, and phrases sent as part of Whisper's
initial_promptto bias decoding toward those tokens. - Trailing transcript context — every chunk's transcription receives the last ~150 committed words alongside the custom vocabulary as Whisper's
initial_prompt, so decoding stays anchored to the conversation rather than treating each chunk as a cold start. Single biggest mitigation against silence-driven hallucinations and proper-noun drift across the meeting. - VAD-bounded chunks — the audio-capture sidecar rotates each chunk at natural speech pauses (min 1.0 s / max 15 s / 500 ms silence trigger) instead of a fixed timer, so chunk boundaries land mid-pause rather than mid-word.
- Reasoning-model temperature handling — gpt-5.x and o-series models reject custom temperature;
openai::summarizedetects them viais_reasoning_model()and omits the parameter, while keepingtemperature=0.2for traditional chat models. - Folders — flat folder list, per-note assignment, search across titles/bodies/transcripts/folder names with auto-expand on hits.
- Click-to-edit transcript — styled view by default with coloured pills + plain text; clicking enters a textarea for edits. Locked while a recording is in flight to avoid clobber.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +2 lines · +114 tokens per session 18a51b8d7fa7
- 2mo ago First seen · 268 lines · 6,738 tokens per session scan A 8103cb782f5c
humla AGENTS.md is an instructions file published in the GitHub repository michaelwilhelmsen/humla (339 stars, last pushed 5d ago), licensed MIT. It adds 6,852 tokens to every session, about $0.0274 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
humla AGENTS.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| humla AGENTS.mdmichaelwilhelmsen/humla | Instructions file | 339 | 5d ago | MIT | A | 6,852 | Codex, OpenCode |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |