{"id":43491103,"url":"https://github.com/anyesh/obsidian-calcifer","last_synced_at":"2026-02-03T10:03:08.929Z","repository":{"id":335623088,"uuid":"1146500899","full_name":"Anyesh/obsidian-calcifer","owner":"Anyesh","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-31T09:45:07.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-31T20:56:34.798Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anyesh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-31T07:33:06.000Z","updated_at":"2026-01-31T09:45:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Anyesh/obsidian-calcifer","commit_stats":null,"previous_names":["anyesh/obsidian-calcifer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Anyesh/obsidian-calcifer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anyesh%2Fobsidian-calcifer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anyesh%2Fobsidian-calcifer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anyesh%2Fobsidian-calcifer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anyesh%2Fobsidian-calcifer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anyesh","download_url":"https://codeload.github.com/Anyesh/obsidian-calcifer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anyesh%2Fobsidian-calcifer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29040772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T09:57:37.951Z","status":"ssl_error","status_checked_at":"2026-02-03T09:55:14.920Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-03T10:03:08.189Z","updated_at":"2026-02-03T10:03:08.921Z","avatar_url":"https://github.com/Anyesh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Calcifer - AI-Powered Assistant for Obsidian\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-0.1.0-blue.svg\" alt=\"Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-desktop%20%7C%20mobile-green.svg\" alt=\"Platform\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-purple.svg\" alt=\"License\"\u003e\n\u003c/p\u003e\n\nCalcifer is an intelligent AI assistant that integrates deeply with your Obsidian vault. Using RAG (Retrieval-Augmented Generation), it understands your notes and provides contextual answers, auto-tagging, organization suggestions, and persistent memory.\n\n## Features\n\n### AI Chat with Vault Context\n- Chat interface in the right sidebar\n- Retrieves relevant notes as context for answers\n- Shows sources for every response\n- Supports Ollama and OpenAI-compatible APIs\n\n### Auto-Tagging\n- Suggests tags based on note content\n- Uses existing vault tags as reference\n- Configurable auto-apply or suggest-only mode\n\n### Note Organization\n- Suggests appropriate folders for notes\n- Based on content similarity to existing notes\n- LLM-enhanced folder recommendations\n\n### Memory System\n- Remembers facts about you across conversations\n- Stored locally in plugin data (not sent to cloud)\n- Manageable through settings\n\n### Semantic Search\n- Full vault indexing with embeddings\n- Find notes by meaning, not just keywords\n- Automatic re-indexing on file changes\n\n## Requirements\n\n- Obsidian v1.0.0 or higher\n- An AI API endpoint (one of the following):\n  - **Ollama** (local or remote)\n  - **OpenAI** (or compatible API like Azure OpenAI, Anthropic, etc.)\n\n## Installation\n\n### From Community Plugins (Coming Soon)\n1. Open Settings → Community plugins\n2. Search for \"Calcifer\"\n3. Click Install, then Enable\n\n### Manual Installation\n1. Download `main.js`, `manifest.json`, and `styles.css` from the latest release\n2. Create folder: `\u003cvault\u003e/.obsidian/plugins/calcifer/`\n3. Copy the downloaded files into the folder\n4. Enable the plugin in Settings → Community plugins\n\n## Configuration\n\n### 1. Add an API Endpoint\n\n1. Open Settings → Calcifer\n2. Click \"Add Ollama\" or \"Add OpenAI\"\n3. Configure the endpoint:\n\n#### For Ollama:\n```\nBase URL: http://localhost:11434\nChat Model: llama3.2\nEmbedding Model: nomic-embed-text\n```\n\n#### For OpenAI:\n```\nBase URL: https://api.openai.com\nAPI Key: sk-...\nChat Model: gpt-4o-mini\nEmbedding Model: text-embedding-3-small\n```\n\n4. Click \"Test\" to verify connection\n5. Enable the endpoint\n\n### 2. Index Your Vault\n\n- Use command: **Calcifer: Re-index Vault**\n- Or wait for automatic background indexing\n\n### 3. Start Chatting\n\n- Click the icon in the left ribbon\n- Or use command: **Calcifer: Open Chat**\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| Open Calcifer Chat | Open the chat sidebar |\n| Re-index Vault | Rebuild the embedding index |\n| Clear Embedding Index | Delete all embeddings |\n| Index Current File | Index only the active file |\n| Show Memories | Display stored memories count |\n| Suggest Tags for Current Note | Get AI tag suggestions |\n| Suggest Folder for Current Note | Get folder placement suggestions |\n\n## Settings Reference\n\n### Embedding Settings\n- **Enable Embedding**: Toggle automatic indexing\n- **Batch Size**: Concurrent embedding requests (default: 10)\n- **Chunk Size**: Characters per text chunk (default: 1000)\n- **Chunk Overlap**: Overlap between chunks (default: 200)\n- **Exclude Patterns**: Glob patterns to skip (e.g., `templates/**`)\n\n### RAG Settings\n- **Top K Results**: Context chunks to retrieve (default: 5)\n- **Minimum Score**: Similarity threshold (default: 0.5)\n- **Include Frontmatter**: Add metadata to context\n- **Max Context Length**: Total context limit (default: 8000)\n\n### Chat Settings\n- **System Prompt**: Customize assistant behavior\n- **Include Chat History**: Send previous messages (default: true)\n- **Max History Messages**: History limit (default: 10)\n- **Temperature**: Response creativity (0-2)\n- **Max Tokens**: Response length limit (default: 2048)\n\n### Memory Settings\n- **Enable Memory**: Store persistent memories\n- **Max Memories**: Storage limit (default: 100)\n- **Include in Context**: Send memories with queries\n\n### Auto-Tagging Settings\n- **Enable Auto-Tag**: Activate tagging feature\n- **Mode**: `auto` (apply) or `suggest` (notify)\n- **Max Suggestions**: Tags per note (default: 5)\n- **Use Existing Tags**: Prefer vault tags\n- **Confidence Threshold**: Auto-apply threshold (default: 0.8)\n\n### Organization Settings\n- **Enable Auto-Organize**: Activate folder suggestions\n- **Mode**: `auto` (move) or `suggest` (ask)\n- **Confidence Threshold**: Auto-move threshold (default: 0.9)\n\n### Performance Settings\n- **Enable on Mobile**: Run on mobile devices (default: true)\n- **Rate Limit (RPM)**: API requests per minute (default: 60)\n- **Request Timeout**: Seconds before timeout (default: 30)\n\n## Mobile Support\n\nCalcifer is fully functional on mobile devices:\n- Chat interface optimized for touch\n- Background indexing respects mobile resources\n- All features work offline with local Ollama\n\n## Privacy \u0026 Security\n\n- **Local Processing**: All embeddings stored locally in IndexedDB\n- **No Cloud Storage**: Plugin data never leaves your device\n- **API Choice**: Use local Ollama for complete privacy\n- **Memory Control**: View and delete any stored memories\n\n## Network Usage Disclosure\n\nThis plugin makes network requests to AI API endpoints that you configure:\n\n| Service | Purpose | Data Sent |\n|---------|---------|-----------|\n| **Ollama** (local/remote) | Chat completions, embeddings | Note content for context, user messages |\n| **OpenAI** (or compatible) | Chat completions, embeddings | Note content for context, user messages |\n\n**Important:**\n- No data is sent to any server until you configure an API endpoint\n- You control which provider to use (local Ollama = no external network)\n- Note content is sent as context for AI responses (chunks of ~1000 chars)\n- No telemetry or analytics are collected by this plugin\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/your-username/calcifer.git\ncd calcifer\n\n# Install dependencies\nnpm install\n\n# Development mode (watch)\nnpm run dev\n\n# Production build\nnpm run build\n\n# Lint\nnpm run lint\n```\n\n### Project Structure\n\n```\ncalcifer/\n├── main.ts              # Plugin entry point\n├── styles.css           # Plugin styles\n├── manifest.json        # Plugin metadata\n└── src/\n    ├── settings.ts      # Settings definitions\n    ├── providers/       # AI provider implementations\n    │   ├── types.ts\n    │   ├── OllamaProvider.ts\n    │   ├── OpenAIProvider.ts\n    │   └── ProviderManager.ts\n    ├── vectorstore/     # Embedding storage\n    │   ├── VectorStore.ts\n    │   └── Chunker.ts\n    ├── embedding/       # Indexing orchestration\n    │   └── EmbeddingManager.ts\n    ├── rag/             # RAG pipeline\n    │   └── RAGPipeline.ts\n    ├── views/           # UI components\n    │   ├── ChatView.ts\n    │   └── SettingsTab.ts\n    ├── features/        # Feature implementations\n    │   ├── memory.ts\n    │   ├── autoTag.ts\n    │   └── organize.ts\n    └── utils/           # Utilities\n        ├── debounce.ts\n        ├── rateLimiter.ts\n        └── logger.ts\n```\n\n## Troubleshooting\n\n### \"No provider configured\"\n- Add at least one API endpoint in settings\n- Ensure the endpoint is enabled\n- Test the connection\n\n### \"Connection failed\"\n- Check if Ollama is running (`ollama serve`)\n- Verify the base URL is correct\n- Check firewall/network settings\n\n### Indexing is slow\n- Reduce batch size for limited resources\n- Exclude large folders (templates, archives)\n- Mobile devices may need smaller chunk sizes\n\n### Chat responses are irrelevant\n- Ensure vault is indexed (check status bar)\n- Lower the minimum score threshold\n- Increase Top K for more context\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\n- [Obsidian](https://obsidian.md) for the amazing note-taking platform\n- [Ollama](https://ollama.ai) for local LLM hosting\n- The Obsidian plugin community for inspiration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyesh%2Fobsidian-calcifer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanyesh%2Fobsidian-calcifer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyesh%2Fobsidian-calcifer/lists"}