Files
opencode-obsidian/README.md
2026-02-15 08:47:50 +01:00

100 lines
3.5 KiB
Markdown

# OpenCode plugin for Obsidian
Give your notes AI capability by embedding Opencode [OpenCode](https://opencode.ai) AI assistant directly in Obsidian:
<img src="./assets/opencode_in_obsidian.png" alt="OpenCode embeded in Obsidian" />
**Use cases:**
- Summarize and distill long-form content
- Draft, edit, and refine your writing
- Query and explore your knowledge base
- Generate outlines and structured notes
This plugin uses OpenCode's web view that can be embedded directly into Obsidian window. Usually similar plugins would use the ACP protocol, but I want to see how how much is possible without having to implement (and manage) a custom chat UI - I want the full power of OpenCode in my Obsidian.
_Note: plugin author is not afiliated with OpenCode or Obsidian - this is a 3rd party software._
## Requirements
- Desktop only (uses Node.js child processes)
- [OpenCode CLI](https://opencode.ai) installed
- [Bun](https://bun.sh) installed
## Installation
### For Users (BRAT - Recommended for Beta Testing)
The easiest way to install this plugin during beta is via [BRAT](https://github.com/TfTHacker/obsidian42-brat) (Beta Reviewer's Auto-update Tool):
1. Install the BRAT plugin from Obsidian Community Plugins
2. Open BRAT settings and click "Add Beta plugin"
3. Enter: `mtymek/opencode-obsidian`
4. Click "Add Plugin" - BRAT will install the latest release automatically
5. Enable the OpenCode plugin in Obsidian Settings > Community Plugins
BRAT will automatically check for updates and notify you when new versions are available.
### For Developers
If you want to contribute or develop the plugin:
1. Clone to `.obsidian/plugins/obsidian-opencode` subdirectory under your vault's root:
```bash
git clone https://github.com/mtymek/opencode-obsidian.git .obsidian/plugins/obsidian-opencode
```
2. Install dependencies and build:
```bash
bun install && bun run build
```
3. Enable in Obsidian Settings > Community Plugins
4. Add AGENTS.md to your workspace root to guide the AI assistant
## Usage
- Click the terminal icon in the ribbon, or
- `Cmd/Ctrl+Shift+O` to toggle the panel
- Server starts automatically when you open the panel
## Settings
### Custom Command Mode
Enable "Use custom command" when you need more control over how OpenCode starts—for example, to add extra CLI flags, use a custom wrapper script, or run OpenCode through a container or virtual environment.
When using custom command:
- **Hostname and port must match** the values set in the Port and Hostname fields above
- You **must include `--cors app://obsidian.md`** to allow Obsidian to embed the OpenCode interface
Example:
```bash
opencode serve --port 14096 --hostname 127.0.0.1 --cors app://obsidian.md
```
Other settings (port, hostname, auto-start, view location, context injection) are available through the settings UI and are self-explanatory.
### Context injection (experimental)
This plugin can automatically inject context to the running OC instance: list of open notes and currently selected text.
Currently, this is work-in-progress feature with some limitations - it won't work when creating new session from OC interface.
## Windows Troubleshooting
If you see "Executable not found at 'opencode'" despite opencode being installed:
1. Find your opencode.cmd path:
```
where opencode.cmd
```
2. Configure the full path in plugin settings:
```
C:\Users\{username}\AppData\Roaming\npm\opencode.cmd
```
This is due to Electron/Obsidian not fully inheriting PATH on Windows.