Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Voiceprint Studio

Voiceprint Studio builds and sharpens an email style guide, the document you paste into any AI so it drafts email in your own writing voice. It grounds each draft in your real sent emails, can self-train against a held-out test set, and turns each miss into an approved rule, across four tabs. Still in development, and it never sends email itself.

What it is

A first-party Omniscio sidebar panel that builds and sharpens an email style guide — the document you paste into any AI so it drafts email in your voice. "Voiceprint" here means your writing voice, NOT audio / TTS / spoken responses. In-development; gated via the voiceprint-studio unreleased feature (default off — reveal via Settings → Lab toggle or AMC_SHOW_VOICEPRINT_STUDIO=1). Renders as a native built-in virtual project beside the projects sidebar (NON-spawnable — it hosts no Claude session).

Where to find it

It renders as a native built-in project beside the projects sidebar, so you open it like any other panel and it hosts no Claude session of its own. Because the feature is still in development it stays hidden until you reveal it, from the Settings → Lab toggle or the launch switch named in the paragraph above.

How it behaves

What it's for

Capturing a person's email voice well enough that an AI can pass for them takes a calibration loop: show the AI a real email you sent, have it try to write that same email blind, compare, and turn each "that's not how I'd say it" into a rule. Voiceprint Studio is that loop as an app. Two levers make it converge: the AI grounds each draft in the person's REAL sent emails (few-shot), not the guide text alone; and it can self-train — draft a held-out test set, grade itself against the real replies, refine the guide from the worst miss, iterate a few rounds under a budget, and only then surface the hard cases to you.

The four tabs

  • Corpus — Pull your Gmail Sent folder (paginated/resumable, configurable size). Each email gets an auto-guess — You (hand-typed, ground truth) or AI (Claude-drafted / skip) — with the plain-English reason shown; confirm or flip with one click. The corpus splits into a training pool (grounds drafts) and a held-out test set (the self-grade eval — never used as an exemplar). AI-suggested chain exclusions drop automated / newsletter / no-reply mail so it never trains the voice. Personas (Personal vs Work) are separate profiles, each its own corpus/guide/training.
  • Interview (Calibrate) — Pick a real You email. The AI drafts it blind and grounded in your real training emails — it sees the prior context + guide + a few of your most similar real sends, never the target's real reply. Side-by-side: the incoming context · what you sent · what the AI wrote, with a 5-point "how close?" rating and the AI's own judge score. Blind mode hides which pane is which (server-fixed order) until Reveal. On a miss, a short clickable interview (the app's QuestionWidget format) turns the gap into an approved guide rule. A self-training panel starts an autonomous run (test-set size / rounds / budget) and shows the score trajectory.
  • Style Guide — The living guide: editable, versioned, with history. Approved fixes append here, each traced to the comparison that produced it.
  • Progress — Pass rate + the objective average judge/closeness score. When it climbs and stays high, the guide has captured the voice.

Requirements & graceful states

Pulling the corpus needs Gmail connected in Omniscio; generating a blind draft or a rule needs an Anthropic API key configured. If either is missing the panel shows a plain message ("Add an Anthropic API key in Omniscio to generate drafts", "make sure Gmail is connected") rather than failing. Each blind draft / rule proposal is a small metered Claude call.

Privacy / data

Your sent emails are stored locally in Omniscio's SQLite DB only (your machine — nothing new goes external beyond the Gmail read and the metered draft calls). The blind-draft context is built to exclude your real reply (a unit test locks this), so the model is never shown the answer it's being compared against.

For agents

Where the guide lives

The default profile mirrors the canonical ~/Claude/default-email-voiceprint.md: Studio seeds its first version from that existing file (so it starts from the real guide, not a blank), and every approved fix or manual save writes back to it so the paste-into-any-AI workflow stays current. Writes are atomic with a one-keep .bak; opening the panel only reads the file — it writes only on explicit Save / Approve. The DB is the source of truth; the .md is the mirror. If the .md is hand-edited between sessions, the change is imported as a new version on next open (never clobbered).

Under the hood (for agents)

  • DB: base tables in migration 20260623231430-voiceprint-studio-tables.ts; the interview/self-training redesign adds (migration 20260731020000-voiceprint-selftrain-persona-curation.ts, additive) closeness_score / judge_score / judge_rationale / interview_json / run_id on voiceprint_comparisons, split_role + excluded on voiceprint_corpus, and a new voiceprint_runs table (self-training runs + per-round trajectory). All keyed by profile_id (a persona IS a profile). Queries: src/main/db/queries-voiceprint.ts.
  • Services (src/main/services/voiceprint/): heuristic.ts (you/AI guess), blind-context.ts (no-leak context + few-shot grounding + judge prompt), draft-service.ts (grounded blind draft + LLM-judge self-grade + rule proposal), rule-proposal.ts, guide-service.ts (seed / reconcile / atomic mirror / cascade erasure incl. runs), corpus-pull-service.ts, self-training-service.ts (the autonomous draft→grade→refine loop, budget-bounded), curation-service.ts (automated-chain exclusion), persona-classifier.ts (personal vs work routing).
  • IPC: channels in src/shared/ipc-channels/voiceprint-studio.ts (self-train / get-run / set-closeness / save-interview / assign-split / estimate-run / ensure-personas / suggest-exclusions / set-excluded added), handlers in src/main/ipc/voiceprint-studio-handlers.ts, response types in src/shared/ipc-response-map/voiceprint-studio.ts. New renderer invokes are classified in the web-access-ws-invoke baseline (start-self-train BLOCKED as a spending channel) + cli-parity exemptions.
  • UI (src/renderer/src/features/voiceprint-studio/): voiceprint-studio-store.ts (zustand) + VoiceprintStudioView.tsx shell + CorpusTab / CalibrateTab / GuideTab / ProgressTab.
  • Invariants: see .claude/memory/contracts/voiceprint-studio-contract.md.

This is the guide builder only — it never sends email.

Related

The corpus this panel trains on comes from Gmail, which Gmail Integration covers, and what the finished guide is for is set out in Agent Email. If your interest is drafting with AI rather than capturing a voice, AI Writer is the sibling surface.

Last verified 2026-09-23