arumata233 downloadsGenerate meaningful commit messages via DeepSeek AI for Obsidian Git
Generate meaningful git commit messages via DeepSeek AI or a local Ollama model directly from Obsidian Git source control view.
Adds a sparkle button next to the Commit button. Click it to generate a commit message from staged changes.
ollama pull llama3.1)arumata/obsidian-ai-commit as a beta plugincd /path/to/vault/.obsidian/plugins
git clone https://github.com/arumata/obsidian-ai-commit.git ai-commit
cd ai-commit && npm install && npm run build
| Setting | Default | Description |
|---|---|---|
| Provider | DeepSeek | DeepSeek (cloud) or Ollama (local) |
| API Key | — | (DeepSeek) API key (stored locally, never sent anywhere but DeepSeek) |
| Model | DeepSeek V4 Flash | (DeepSeek) V4 Flash (fast/cheap) or V4 Pro (more capable) |
| Ollama server URL | http://localhost:11434 |
(Ollama) Base URL of your local Ollama server |
| Ollama model | llama3.1 |
(Ollama) Name of a pulled model; use the refresh button to detect installed models |
| Timeout | 30s | API request timeout (10–120s) |
| Custom instructions | — | Extra prompt rules (e.g. "Always write in Russian") |
Ctrl+P → "Generate commit message")git diff --cached, sends the diff to DeepSeek or your local Ollama serverollama pull llama3.1ollama serve, or it's already running if you installed the desktop app)Use Node.js 24 or later (nvm use reads .nvmrc). Obsidian 1.2.3 or later is required; the DOM helpers used by the plugin are already present in the Obsidian 1.1.13 API.
npm ci
npm run dev # Watch mode
npm run build # Production build
npm test # Request and settings regression checks
npm run check:release # Validate release metadata
The release workflow builds a draft release when a tag matching the plugin version is pushed (for example, 1.1.0, without v). Review its artifacts before publishing.
For UI regressions, run node tests/obsidian-regression.mjs against an isolated Obsidian instance with remote debugging on port 19222, this plugin and Obsidian Git, and a staged fixture in /tmp/obsidian-pr1-runtime/vault. The script rejects other vault paths.