Skip to content

Add Obsidian agent plugin#322

Open
christophertjiattas wants to merge 1 commit intompfaffenberger:mainfrom
christophertjiattas:add-obsidian-agent
Open

Add Obsidian agent plugin#322
christophertjiattas wants to merge 1 commit intompfaffenberger:mainfrom
christophertjiattas:add-obsidian-agent

Conversation

@christophertjiattas
Copy link
Copy Markdown
Contributor

Summary

Adds a built-in obsidian-agent plugin that registers a specialized agent for working with Obsidian vaults through the official obsidian CLI.

The agent focuses on safe vault workflows:

  • uses the Obsidian CLI for vault-aware operations
  • discovers before modifying whenever practical
  • reads before writing note content
  • asks for explicit confirmation before destructive, broad, or hard-to-reverse operations
  • includes troubleshooting guidance for common CLI setup issues

Implementation notes

  • Implements the agent as a plugin under code_puppy/plugins/obsidian_agent/ using the existing register_agents callback hook.
  • Keeps the agent tool surface intentionally small: shell execution plus structured user confirmation.
  • Includes plugin-local documentation in code_puppy/plugins/obsidian_agent/README.md.
  • Avoids user-specific defaults, vault paths, note names, or private configuration.

Testing

Ran:

uv run ruff format code_puppy/plugins/obsidian_agent tests/plugins/test_obsidian_agent.py
uv run ruff check code_puppy/plugins/obsidian_agent tests/plugins/test_obsidian_agent.py
uv run pytest tests/plugins/test_obsidian_agent.py
uv run python - <<'PY'
from code_puppy.plugins import load_plugin_callbacks
from code_puppy.agents.agent_manager import get_available_agents, refresh_agents

load_plugin_callbacks()
refresh_agents()
agents = get_available_agents()
assert 'obsidian-agent' in agents, agents.keys()
print('obsidian-agent:', agents['obsidian-agent'])
PY

Also scanned the new plugin and tests for local/private path markers before opening the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant