obsypi
unlistedby Wixaxis
A desktop-first right-sidebar copilot for Obsidian.
Obsypi
Obsypi is a desktop-first Obsidian sidebar copilot that combines a native right-sidebar chat UI with a local plugin-owned vault tool layer and an internal pi helper runtime.
The current MVP targets:
- a native Obsidian
ItemViewin the right sidebar - OpenCode Go as the first supported model provider
- plugin-owned vault reads, writes, moves, renames, and trash actions
- guarded
.obsypi/session storage and mutation journaling
What It Does Today
- Opens a dedicated
Obsypisidebar from the ribbon oropen-panelcommand - Stores provider settings in plugin data, not in your vault
- Streams assistant responses into the sidebar timeline
- Routes tool calls back through Obsidian APIs for vault-safe operations
- Persists internal state under
.obsypi/for transcripts, sessions, and audit logs
Status
This repository contains an active MVP implementation and a research/planning corpus for the next iterations.
Relevant docs:
- docs/README.md for the research hub
- docs/DECISIONS.md for accepted architecture defaults
- docs/SOURCE_INDEX.md for pinned references
- CONTRIBUTING.md for contributor workflow notes
Development
Requirements:
- Node.js 20+
- npm
- Obsidian desktop 1.7.2+
Install and run:
npm install
npm run dev
Build and test:
npm run build
npm test
npm run lint
Local Setup
For local development, symlink the repo into a dev vault at:
<vault>/.obsidian/plugins/obsypi
That lets npm run dev rebuild directly into the live plugin directory while Obsidian is open.
Manual Testing
- Run
npm run dev. - Open your dev vault in Obsidian.
- Enable
obsypiin Settings → Community plugins. - Open the sidebar with the ribbon icon or
Open Obsypi sidebar. - Configure the OpenCode Go API key and model in the Obsypi settings tab.
- Send a prompt and verify sidebar streaming, tool summaries, and
.obsypi/persistence.
Repository Structure
src/
main.ts Plugin lifecycle and commands
settings.ts Persisted plugin settings and settings UI
runtime/ Helper process bridge and controller
ui/ Sidebar view
vault/ Guarded vault tools and path normalization
persistence/ .obsypi session and journal storage
helper/
src/ Internal Node helper runtime
shared/
protocol.ts Typed JSONL protocol between plugin and helper
docs/
research/ Architecture and MVP research notes
Privacy And Safety
- Obsypi is designed to keep vault mutations inside the plugin through Obsidian APIs.
- API keys are stored in plugin data only.
- Reserved roots such as
.obsidian/,.trash/, and.obsypi/are blocked from general tool access. - Mutation attempts and successes are journaled under
.obsypi/.
Plugin Release Notes
Obsidian community plugin releases need these top-level assets attached to the GitHub release:
manifest.jsonmain.jsstyles.css
The version in manifest.json must match the Git tag exactly, without a leading v.
License
Licensed under the 0BSD license. See LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.