# Local Agent Assistant Local Agent Assistant is a desktop Obsidian plugin for asking local AI agent CLIs questions about a Markdown vault, reviewing selected text, and keeping evidence-linked review notes. ## Features - Select text and open a floating toolbar for explanation, ADR lookup, review suggestions, or comments. - Enter a direct instruction without selecting text. - Choose among configured local agent CLIs and model identifiers. - Search the current Markdown vault before sending bounded evidence to the agent. - Keep citations in the form `[来源:路径#章节]`. - Add editable AI or manual review comments to the source document. - Jump from review locations and evidence references to the source heading. - Delete a review by its exact `REV-NNN` identifier. - Interrupt an agent process on Windows, including its child process tree. ## Privacy and security - No user name, company name, project name, internal URL, account, token, or API key is included in the source or release package. - Agent commands are started with an argument array and `shell: false`. - Direct instructions are read-only by default: the plugin asks the agent not to modify files, delete files, or execute shell commands. - The plugin does not upload a vault. If the selected agent uses a remote model, the bounded prompt and evidence excerpts may be sent to that model provider. - Credentials are managed by the selected agent's own local configuration and are not stored in Markdown, the plugin source, or the release package. ## Installation ### From the Obsidian Community directory Install **Local Agent Assistant** from Settings → Community plugins after the plugin has been published. ### From a release ZIP 1. Extract the release package. 2. Run `install.cmd` on Windows. 3. Choose an Obsidian vault. 4. Restart Obsidian and enable **Local Agent Assistant**. The installer preserves existing community plugins and plugin data. It does not modify Markdown files. ## Configure agents and models Open Settings → Community plugins → Local Agent Assistant. The **Local agent profiles** field accepts an array such as: ```json [ { "id": "hermes", "name": "Hermes", "command": "hermes", "args": ["-z", "{prompt}"], "models": ["provider/model-a", "provider/model-b"] }, { "id": "my-local-agent", "name": "My Local Agent", "command": "C:/Tools/my-agent.exe", "args": ["--prompt", "{prompt}", "--model", "{model}"], "models": ["local-model"] } ] ``` Supported argument placeholders are `{prompt}`, `{vault}`, `{file}`, `{selection}`, `{question}`, and `{model}`. For Hermes, a selected model is passed with `-m`. For other CLIs, add the model placeholder wherever that CLI expects it. ## Release and updates The plugin is prepared for the Obsidian Community directory: - `manifest.json` uses a unique lowercase hyphenated ID and semantic version. - `versions.json` maps release versions to compatible Obsidian versions. - `main.js`, `manifest.json`, and `styles.css` are available as root-level release assets. - After publication, each GitHub Release tag must exactly match the version in `manifest.json`. - Increasing the version and publishing a matching GitHub Release makes the update available through Obsidian. See `RELEASE.md` for the release checklist.