Use a starter set
Create a small, well-formed .hs/ set (instructions,
context, terms) that you can then edit. You review exactly what will
be written first; nothing is saved silently.
Dictation
Tune intelligent typing end-to-end — readiness, blocks, project context, runtime, and a live dry-run — without hand-editing a single config file.
Teach the copilot about this project. HoldSpeak can use this repo's facts and context to sharpen your dictation.
One snapshot of the selected project's dictation setup: pipeline, blocks, project facts, runtime model, and next actions.
Author dictation blocks (DIR-01) without hand-editing
blocks.yaml. Changes write atomically to the
underlying file (WFS-CFG-006) and are validated
before persisting.
Configure the DIR-01 pipeline without editing
~/.config/holdspeak/config.json. Counters are
process-scoped (since runtime start). The cold-start cap is
max_total_latency_ms × 5 — first
classify() after launch slower than the cap
disables the LLM stage for the session
(DIR-R-003).
Counters reset on every holdspeak restart.
classify_failures includes both LLM errors
and constraint-rejected outputs;
constrained_retries is the count of
GBNF-grammar re-prompts.
What the copilot has learned (persists across restarts) and how deep it's running this session. Curate the memory here; tune the knobs in Runtime → Copilot depth.
The learning loop
Latency telemetry is in-memory and resets on every
holdspeak restart. Run a few
dry-runs (or dictate) to populate it.
Every dictation, remembered — what you said → what it became → where it was headed → how long it took. Review it, search it, curate it. Your meetings have an afterlife; now your voice does too.
Run the current DIR-01 pipeline against typed text without
touching the keyboard. The trace uses the current project
detected from the holdspeak process cwd.
Facts are one of the two parts of project knowledge
(the other is Project Context). A fact is an exact
value that gets stamped into your dictation verbatim, with no model
involved. Each entry's key becomes a
{project.kb.<key>} placeholder that block templates
fill in. Keys must match [A-Za-z_][A-Za-z0-9_]*; values are
strings (or null). Stored as the kb mapping in
<project_root>/.holdspeak/project.yaml.
No facts yet
Facts are exact values HoldSpeak stamps into your dictation, no model involved. Add the handful you repeat most and they show up verbatim wherever a block references them.
stack → Rails 7 + Postgres 16
Context is the other part of project knowledge
(the first is Project Facts). Where a fact is an exact
value stamped in verbatim, context is background the rewrite model reads
so it phrases things the way this project expects. It only takes effect
when the optional rewrite stage is on. Edit the repo-local
.hs/ files here: instructions, background, workflows,
targets, vocabulary, and ignore rules. Legacy .hs_* files
are shown as read-only compatibility inputs; saving creates or updates
the canonical .hs/ copy.
No project context yet
Context teaches the rewrite model how this project talks: its vocabulary, conventions, and what to leave alone. It only takes effect when the optional rewrite stage is on, and nothing is written until you save.
.hs/terms.md → the rewrite uses your product name and spelling
Two parts, both from here, no file editing. Facts are exact values: set them in the tab. Context is guidance the rewrite model reads. Create it one of two ways:
Create a small, well-formed .hs/ set (instructions,
context, terms) that you can then edit. You review exactly what will
be written first; nothing is saved silently.
Have Claude or Codex read this repo and write the .hs/
files for you. Copy the prompt, paste it into your agent, then review
the result in this tab. The drafting stays on your machine.
Loading the prompt…
Local intelligence can propose one narrow project-memory file after a dry-run. Review and edit before applying; HoldSpeak never writes these suggestions silently.
Inspect Claude/Codex hook status and copy the HoldSpeak hook templates. The browser does not write agent settings files directly; paste the template into the target tool's hook settings after review.
Compress the latest captured Claude/Codex question into compact context for intelligent typing. HoldSpeak uses safe read-only / no-tools defaults and only runs this when you click the button.