## §OIP SYSTEM ARTICLE — OPENWHISPR (12 operations)
A generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.

### Read Order
- scan operations
- open a leaf doc
- run via run_now or POST /api/dispatch
- open receipt
- repair/replay if needed

### Operations
- **OPENWHISPR_DOCTOR** — OpenWhispr backend health on the owner Mac — reports local (desktop app bridge on 127.0.0.1) and remote (api.o
  when: before any other OPENWHISPR_* row, or when a note or transcription read comes back empty — it says which backend answered.
  args: (none)
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_DOCTOR&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_DOCTOR&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_DOCTOR
- **OPENWHISPR_NOTES** — List every OpenWhispr note as JSON — id, title, content, folder_id, note_type, created_at, and the enhanced_co
  when: "what did I dictate", "my openwhispr notes", or to find the id a later OPENWHISPR_NOTE_GET / _TRANSCRIPT needs. Use OPENWHISPR_SEARCH instea
  args: (none)
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTES&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTES&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTES
- **OPENWHISPR_NOTE_GET** — One OpenWhispr note by id, full JSON — content, enhanced_content, transcript, folder, participants, audio_dura
  when: you have a note id from OPENWHISPR_NOTES or OPENWHISPR_SEARCH and need the whole record. For only the spoken words use OPENWHISPR_NOTE_TRANS
  args: $1 = note id
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTE_GET&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTE_GET&body=2&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTE_GET
- **OPENWHISPR_NOTE_TRANSCRIPT** — The transcript of one note as speaker-labeled markdown — one timestamped line per segment, "Me" for the owner 
  when: a meeting or call note and you want what was said, not the note payload. Returns nothing when the note has no transcript (typed note).
  args: $1 = note id
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTE_TRANSCRIPT&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTE_TRANSCRIPT&body=2&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTE_TRANSCRIPT
- **OPENWHISPR_SEARCH** — Search OpenWhispr notes (full-text locally, semantic + full-text against the cloud backend) and return matchin
  when: "find the note where I said X", "what did I dictate about the Loop report". Cheaper than pulling every note with OPENWHISPR_NOTES.
  args: $1 = query words
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_SEARCH&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_SEARCH&body=loop%20report&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_SEARCH
- **OPENWHISPR_NOTE_CREATE** — Create an OpenWhispr note and return the created row (id, title, content, folder_id). Lands in the default fol
  when: the build has something the owner should find in his notes app rather than in a chat — a draft he dictated a follow-up to, a summary he aske
  args: $1 = title, $2 = content
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTE_CREATE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTE_CREATE&body=Loop%20spend%20recheck%7CTwo%20TW%20tables%20disagree%3B%20take%20the%20greater%20of%20the%20three%20series&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTE_CREATE
- **OPENWHISPR_TRANSCRIPTIONS** — OpenWhispr dictation history as JSON — every hotkey transcription with its text, model and timestamp, separate
  when: "what have I dictated today", auditing which model transcribed what, or recovering text that was pasted into an app and never saved as a not
  args: (none)
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_TRANSCRIPTIONS&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_TRANSCRIPTIONS&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_TRANSCRIPTIONS
- **OPENWHISPR_FOLDERS** — List OpenWhispr note folders as JSON — id, name, is_default, sort_order.
  when: you need a folder id before filing a note, or the owner asks how his notes are organised.
  args: (none)
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_FOLDERS&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_FOLDERS&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_FOLDERS
- **OPENWHISPR_FOLDER_CREATE** — Create an OpenWhispr note folder and return it.
  when: filing a run of build-written notes under their own heading instead of the default folder. Check OPENWHISPR_FOLDERS first — names are not de
  args: $1 = folder name
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_FOLDER_CREATE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_FOLDER_CREATE&body=Build&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_FOLDER_CREATE
- **OPENWHISPR_NOTE_UPDATE** — Retitle an OpenWhispr note by id and return the updated row.
  when: a dictated note landed with a machine title ("New note", a first sentence) and needs a name the owner can find.
  args: $1 = note id, $2 = new title
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTE_UPDATE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTE_UPDATE&body=2%7CLoop%20spend%20recheck&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTE_UPDATE
- **OPENWHISPR_NOTE_DELETE** — Delete an OpenWhispr note by id. Returns {id, deleted:true}. Irreversible — the note is gone from the desktop 
  when: cleaning up a note this build wrote. Never delete a note the owner dictated unless he named it.
  args: $1 = note id
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_NOTE_DELETE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_NOTE_DELETE&body=2&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_NOTE_DELETE
- **OPENWHISPR_TRANSCRIPTION_GET** — One dictation record by id as JSON — the transcribed text, the model that produced it, duration and timestamp.
  when: you have an id from OPENWHISPR_TRANSCRIPTIONS and want the full text of that one dictation.
  args: $1 = transcription id
  doc: https://miscsubjects.com/api/dispatch?key=OPENWHISPR_TRANSCRIPTION_GET&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=OPENWHISPR_TRANSCRIPTION_GET&body=1&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=OPENWHISPR_TRANSCRIPTION_GET

### Troubleshooting
- If a row's example has placeholders, replace only the placeholder values and preserve separators.
- If a call fails, open its receipt and repair it with POST /api/dispatch {key, body, repairs:'inv_ID'}.
- If token scope denies this system, ask the owner for a row:/rows:/pfx: token scoped to the exact operation set.

Back to the tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown