nikitaclicks13 downloadsAI agent for your vault — vault-aware, tool-capable, BYOK, and cross-platform (desktop + mobile).
An AI agent that lives inside your vault — vault-aware, tool-capable, BYOK, and cross-platform (desktop + mobile).
Hackathon build: See hackathon/README.md for the Gemma 4 Good submission story, local MLX setup, eval results, and demo assets.
Search for OpenAgent in Settings → Community Plugins → Browse.
main.js, styles.css, and manifest.json from the latest release.<vault>/.obsidian/plugins/open-agent/.Sync the plugin folder to your mobile vault's .obsidian/plugins/open-agent/ via Obsidian Sync or any file-sync tool.
Open Settings → OpenAgent and fill in:
| Field | Description | Default |
|---|---|---|
| Base URL | Your provider's API endpoint | https://api.openai.com/v1 |
| API Key | Your API key | — |
| Model | Model name to use | gpt-4o-mini |
| System prompt | Optional system-level instruction | — |
This plugin makes network requests only to the LLM endpoint you configure (e.g. OpenAI, OpenRouter, Ollama, LM Studio). No data is sent to any other server.
With vault tools enabled, the agent may transmit note bodies, paths, frontmatter, and tags to that endpoint — only use endpoints you trust.
Your API key is stored in .obsidian/plugins/open-agent/data.json. If you sync your .obsidian/ folder (e.g. via Obsidian Sync), the key travels with it.
git clone https://github.com/nikitaclicks/obsidian-openagent.git
cd obsidian-openagent
npm install
npm run dev # esbuild watch → writes main.js
Then copy main.js, styles.css, and manifest.json into a test vault at <vault>/.obsidian/plugins/open-agent/ and enable the plugin.
npm run build # production bundle
npm run lint # TypeScript ESLint
src/
main.ts # plugin entry point
settings.ts # settings tab + defaults
view.ts # chat panel UI
loop.ts # agent run loop
provider.ts # OpenAI-compatible HTTP client
types.ts # shared types
tools/
registry.ts # tool registration
vault/ # read / write / edit / search / list / frontmatter / links
consent/
manager.ts # per-action consent state
modal.ts # confirmation dialogs
render-diff.ts # diff previews
Pull requests are welcome. For larger changes, open an issue first to discuss what you'd like to change.
main.npm run lint and fix any issues.