Thank you for your interest in contributing! We welcome pull requests, bug reports, and feature suggestions to make this the best AI companion for Obsidian users.
-
Fork and Clone
git clone https://github.com/YOUR_USERNAME/gemini-obsidian.git cd gemini-obsidian -
Install Dependencies
npm install
-
Build the Project We use TypeScript. You can build once or watch for changes:
npm run build # or npm run watch -
Local Testing To test your changes, you can install the extension locally in the Gemini CLI:
gemini install .Then, use the CLI to trigger your modified tools:
/obsidian:list_notes
src/index.ts: Entry point. Handles MCP server setup and CLI argument parsing.src/rag/: Logic for Retrieval Augmented Generation.store.ts: LanceDB vector store management.embedder.ts: Embeddings generation using@xenova/transformers.
commands/: TOML configuration for Gemini CLI slash commands.hooks/: Configuration for automated hooks (e.g., re-indexing after note creation).
- TypeScript: Ensure your code is typed. Avoid
anywhere possible. - Tools: If adding a new tool, define its schema in
src/index.tsand add the implementation logic in theCallToolRequestSchemahandler. - Dependencies: Keep dependencies minimal. This extension runs locally, so download size and startup time matter.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes.
- Push to the branch.
- Open a Pull Request.
Please describe your changes and the problem they solve.