Smart Workflow is a powerful Obsidian plugin that enhances your knowledge management with AI-powered features and voice input.
📢 Important Notice
The terminal feature has been extracted into a separate plugin: Obsidian TermyTermy Features:
- Full terminal experience powered by xterm.js with Canvas/WebGL rendering
- Cross-platform support (Windows, macOS, Linux)
- Multiple shells: cmd, PowerShell, WSL, Git Bash, bash, zsh, custom shells
- Split panes (horizontal/vertical) and multiple sessions
- Search, font customization, theme support, background images
- Preset scripts for common workflows
- Rich keyboard shortcuts (Ctrl+O, Ctrl+Shift+R, Ctrl+F, etc.)
If you need terminal functionality, please install Termy instead.
- OpenAI-compatible API support (GPT, Claude, DeepSeek, Qwen, etc.)
- Multi-provider management with quick switching
- Custom prompt templates with variable injection
- Reasoning model support (auto-filters
<think>tags)
- Push-to-talk dictation mode
- Multiple ASR engines: Alibaba Qwen, Doubao, SenseVoice
- Realtime streaming transcription
- LLM post-processing with custom presets
- Auto language detection
- Bidirectional translation (Chinese ↔ English)
- Selection toolbar integration
- Text polishing and refinement
- Streaming LLM responses
- Thinking process visualization
- Download
main.js,manifest.json,styles.cssfrom Releases - Place files in
.obsidian/plugins/obsidian-smart-workflow/ - Restart Obsidian and enable the plugin
git clone https://github.com/ZyphrZero/obsidian-smart-workflow.git
cd obsidian-smart-workflow
pnpm install
pnpm build
pnpm build:rust # Build Rust server binary
pnpm install:dev # Install to Obsidian- Go to Settings > AI Providers
- Add a provider with endpoint and API key
- Add models under the provider
- Bind models to features (naming, translation, writing, etc.)
- Command Palette:
Ctrl/Cmd + P→ "Generate AI File Name" - Right-click Menu: Right-click file or editor
- Configure ASR credentials in settings
- Use hotkey to start/stop recording
- Transcription auto-inserts at cursor
{{content}} - Note content (smart truncated)
{{currentFileName}} - Current file name
{{#if currentFileName}}...{{/if}} - Conditional block
- ASR provider: Qwen / Doubao / SenseVoice
- Mode: Realtime (WebSocket) / HTTP
- Recording mode: Press-to-talk / Toggle
- LLM post-processing presets
┌─────────────────────────────────────────────────────────────┐
│ Obsidian Plugin (TypeScript) │
├─────────────────────────────────────────────────────────────┤
│ Services │
│ ├── naming/ AI file naming │
│ ├── voice/ Voice input & ASR │
│ ├── translation/ Language detection & translation │
│ ├── writing/ Writing assistant │
│ └── config/ Provider & model management │
├─────────────────────────────────────────────────────────────┤
│ UI │
│ ├── settings/ Settings tabs │
│ ├── selection/ Selection toolbar │
│ └── voice/ Voice overlay │
└─────────────────────────────────────────────────────────────┘
│
│ WebSocket
▼
┌─────────────────────────────────────────────────────────────┐
│ Smart Workflow Server (Rust) │
│ ├── voice/ Audio recording & ASR │
│ ├── llm/ LLM streaming │
│ └── utils/ Language detection │
└─────────────────────────────────────────────────────────────┘
Q: Which AI providers are supported?
A: Any OpenAI-compatible API. Tested with OpenAI, Claude, DeepSeek, Qwen, GLM, etc.
Q: Voice input not working?
A: Check ASR credentials and ensure microphone permissions are granted.
- push-2-talk - Voice input architecture inspiration
Made with ❤️
⭐ Star this project if it helps you!