Files
council/reading/audiopen-integration-research.md
T
jpmschweitzerandClaude Opus 4.7 79be7a9aae seed example content so Bases render non-empty on first open
Five files across four note types so every new Obsidian Base has
something to display immediately when the vault is opened:

- daily/2026-04-19.md — today's journal entry, covering the PKB
  setup work. Wikilinks to the permanent note, project brief, and
  reading note below.
- notes/pkb-as-lens-substrate.md — the load-bearing design note
  capturing the PKB-as-substrate / Council-as-lens inversion that
  drove this whole extension.
- projects/mql/brief.md and log.md — active project tracking the
  companion Markdown-Query-Language CLI (sibling repo). First log
  entry records the Go-over-Rust decision and v0.1 scope.
- reading/audiopen-integration-research.md — marked done; captures
  the two-clouds distinction (AudioPen's processing cloud
  unavoidable; Obsidian Sync optional) and names Tailscale Funnel
  as the chosen webhook-exposure path.
- inbox/2026-04-19-1900_test-ingestion.md — hand-authored fleeting
  note (source: manual, distinguishable from AudioPen drops) so
  /triage-inbox has something to exercise on before the real voice
  pipeline is running.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 20:18:14 +02:00

2.4 KiB

type, title, author, source, status, started, finished, tags
type title author source status started finished tags
reading AudioPen integration paths — self-hosted research various web (conversation notes during PKB planning, 2026-04-19) done 2026-04-19 2026-04-19
audiopen
self-hosting
pkb
tailscale

AudioPen integration paths — self-hosted research

Summary

AudioPen ships several output integrations: email, webhooks, direct-to-Obsidian (which routes through Obsidian's sync cloud), clipboard, and a few third-party automation platforms. The "direct to Obsidian" path is the one an earlier investigation surfaced, and it implicitly sends content through Obsidian Sync. For a self-hosted setup, that path is the wrong choice.

The cleaner architecture routes AudioPen's polished prose into user-controlled infrastructure via either a webhook (to a self-hosted receiver exposed via Tailscale Funnel) or email with IMAP pull on the desktop. Both fully avoid Obsidian's sync cloud.

The distinction worth holding: AudioPen's processing cloud (audio → polished prose) is unavoidable with AudioPen. The storage/sync cloud (Obsidian's paid service) is optional. This document is about the second.

Highlights

  • Tailscale Funnel is the right tool for the webhook path. Outbound-initiated; *.ts.net endpoint; no router ports opened; bypasses Authentik (which is gating Gitea's HTTPS in this setup).
  • Email+IMAP is the no-open-ports fallback. Works if running a public-reachable receiver isn't feasible. Fully outbound.
  • Raw → normalised is a two-step pipeline. AudioPen produces bare prose; a small bash wrapper wraps it in frontmatter and moves it from inbox/raw/ to inbox/. Keeps the receiver stupid; all schema decisions live in one shell script.

My notes

  • AudioPen's payload shape varies slightly across versions. The receiver accepts multiple possible body keys (body, output, summary, polished) to avoid fragility; the raw payload is logged to stderr so you can inspect drift.
  • If AudioPen's pricing or terms ever change, the documented escape hatch is whisper.cpp + a local polishing LLM + a phone-side Tasker/Shortcut. Out of scope for v1 but noted.

Connections