mirror of
https://github.com/1yx/obsidian-plugin-say.git
synced 2026-07-22 06:55:03 +00:00
No description
|
|
||
|---|---|---|
| .github/workflows | ||
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| esbuild.config.mjs | ||
| eslint.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
Say
A lightweight Obsidian plugin that reads aloud the H1 heading of a target note when you hover over an internal link, using the system's built-in TTS engine.
Features
- Hover to read — Hover over any internal link to hear the target note's H1 heading (falls back to filename if no H1).
- Cross-platform — Works with macOS
say, Linuxspd-say/espeak, and Windows PowerShellSpeechSynthesizer. - Configurable — Choose your TTS command, voice, speech rate, and trigger delay.
- Arguments template — Power users can specify a custom argument template (e.g.
-v {voice} -s {rate} {text}) to override defaults.
Installation
From Obsidian Community Plugins (pending review)
- Open Settings → Community Plugins
- Search for "Say"
- Click Install, then Enable
Manual
- Download
main.jsandmanifest.jsonfrom the latest release - Create a folder named
sayin your vault's.obsidian/plugins/directory - Copy both files into that folder
- Enable the plugin in Settings → Community Plugins
Usage
- Enable the plugin
- Hover over any internal link in the editor
- The plugin will read the target note's H1 heading aloud
Settings
| Setting | Description |
|---|---|
| Enable auto-read | Toggle hover-to-speak on/off |
| Speech engine | Shows install instructions for your platform |
| Command | TTS executable name or full path |
| Voice | Voice for speech synthesis (updates dynamically based on selected command) |
| Speech rate | Rate multiplier (1 = normal) |
| Trigger delay | Milliseconds before speaking after hover |
| Arguments template | Optional custom argument template that overrides voice and rate settings |
Arguments Template
The template field supports three placeholders:
{voice}— The selected voice name{rate}— The speech rate value{text}— The text to speak
Example: -v {voice} -s {rate} {text}
When non-empty, this overrides the voice and rate settings above.
Compatibility
- macOS: Uses the built-in
saycommand - Linux: Requires
speech-dispatcher(sudo apt install speech-dispatcher) orespeak - Windows: Uses PowerShell
SpeechSynthesizer(built-in)
Desktop only — requires Node.js child_process API.
Development
pnpm install
pnpm dev # Watch mode
pnpm build # Production build
pnpm lint # Lint check
pnpm typecheck # TypeScript check
License
MIT