Context Sources Plugin
A Claude Code plugin for managing multiple context sources with provider abstraction. Declare sources from different systems (filesystem, Google Drive, Obsidian, MCP) and load them in a unified way.
Table of Contents
Quick Start
# 1. Add the hermes marketplace (if not already added)
/plugin marketplace add elafo/hermes
# 2. Install the plugin
/plugin install context-sources@hermes
# 3. Initialize configuration
/context-sources:setup
# 4. Edit .context-sources/sources.yaml to add your sources
# 5. Load context
/context-sources:load my-source
Installation
From Marketplace (Recommended)
Install from the hermes marketplace:
# Add the marketplace (only needed once)
/plugin marketplace add elafo/hermes
# Install the plugin
/plugin install context-sources@hermes
You can choose the installation scope:
- User scope (default): Available across all your projects
- Project scope: Shared with collaborators via
.claude/settings.json
- Local scope: Only for you in this repository
Post-Installation
After installing:
- Run
/context-sources:setup to create initial configuration
- Edit
.context-sources/sources.yaml to add your sources
- For Google Drive sources, run
/context-sources:gdrive:setup and /context-sources:gdrive:auth
Configuration
Basic Example
version: "1.0"
sources:
docs:
description: "Project documentation and API references"
provider: filesystem
path: "./docs"
keywords: [docs, api, architecture]
Complete Example
version: "1.0"
sources:
# Filesystem source with indexing
project-docs:
description: "Technical documentation, architecture guides and API references. Use when needing context about system design or implementation details."
provider: filesystem
path: "./docs"
keywords: [documentation, docs, architecture, api]
auto_load: false
priority: medium
read_only: true
file_patterns: ["*.md", "*.txt", "*.rst"]
exclude_patterns: [".*", "node_modules"]
max_files: 50
indexing:
enabled: true
mode: embedded
# Google Drive source
clients:
description: "Client information, contracts and meeting notes. Use when working with client data."
provider: gdrive
path: "My Drive/Clients"
shared_drive: "Sales" # Optional: for team drives
keywords: [client, contract, meeting]
auto_load: true
priority: high
read_only: true
file_patterns: ["*.gdoc", "*.gsheet", "*.md"]
indexing:
enabled: true
mode: mirror
mirror_path: ".context-sources/indexes/clients"
# Obsidian vault
notes:
description: "Personal notes and learnings"
provider: obsidian
path: "/Users/me/ObsidianVault"
vault_name: "Personal"
keywords: [note, personal, learning]
include_tags: [work, project] # Only include notes with these tags
exclude_tags: [private, draft] # Exclude notes with these tags
read_only: false
indexing:
enabled: true
mode: embedded
# MCP server
ideas:
description: "Captured ideas and brainstorming"
provider: mcp
server: "mem-ai"
tool: "mem_search"
write_tool: "mem_create"
arguments:
limit: 20
keywords: [idea, brainstorm]
read_only: false
Configuration Reference
Common Fields