README file from
GithubOtto
Otto is a production-ready, visual chat UI wrapper for the native Gemini CLI. It brings secure, workspace-aware AI agent operations directly into your Obsidian vault layout, allowing you to run complex context-aware terminal and folder tasks securely from a polished chat interface.
🎨 Cohesive Styling
Otto is designed to blend with the Project Mantle visual ecosystem. While functional on any theme, it is optimized to merge with the Zenith theme, adopting its typography, chat balloon borders, input boxes, glassmorphic headers, and terminal console styling.
✨ Key Features
- Visual Agent Chat Interface: Chat with your workspace agent using a polished, responsive conversation window.
- Vault Context Injection: Automatically injects current file contents, active selections, and vault folders into queries.
- Secure Integration: Bridges with the native Gemini CLI to run commands, modify files, and perform research securely.
- Command Auditing: Review and approve agent actions before they run, maintaining complete control.
📥 Installation
Method A: Via Obsidian Community Directory (Recommended)
- Go to Settings > Community plugins > Browse.
- Search for Otto.
- Click Install, then click Enable.
Method B: Via BRAT (Beta Reviewer's Auto-update Tester)
- Install the BRAT plugin from Obsidian's community store.
- In BRAT settings, click Add Beta plugin and enter:
https://github.com/carnalMATRIX/obsidian-mantle-otto - Click Add Plugin to download and auto-update.
Method C: Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest GitHub Release. - Inside your vault, navigate to
.obsidian/plugins/. - Create a folder named
mantle-ottoand paste the three downloaded files inside. - Restart Obsidian, go to Settings > Community plugins, and enable Otto.
🔍 Troubleshooting
CLI Connection Errors
- Gemini CLI on Path: Ensure the
geminiCLI tool is installed and is accessible via your system's globalPATH. You can verify this by opening a terminal and runninggemini --version. - Configuring CLI Path: Go to Settings > Otto inside Obsidian and verify that the custom CLI path matches the location on your disk (e.g.,
/usr/local/bin/geminior/opt/homebrew/bin/gemini).
Context Ingestion is missing information
- Focus States: Make sure a markdown note tab is active and focused when you send queries that request "current file" context.
🛠️ Development
If you wish to modify or customize this plugin locally:
- Clone this repository.
- Install dependencies:
npm install - Run the compiler in watch mode:
npm run dev - Build minified production code:
npm run build
📄 License
Copyright (c) 2026 Ryan Bakker. Released under a Personal Use License. Non-commercial, personal use only. Redistribution or modification for distribution is strictly prohibited. See the LICENSE file for full terms.