{
  "markdown": "<p align=\"center\">\n  <br/>\n  ◯ ─────────── ◯\n  <br/><br/>\n  <img src=\"https://upload.wikimedia.org/wikipedia/commons/1/10/2023_Obsidian_logo.svg\" width=\"120\" alt=\"Obsidian\">\n  <br/><br/>\n  <strong>O H - M Y - O B S I D I A N</strong>\n  <br/><br/>\n  ◯ ─────────── ◯\n  <br/>\n</p>\n\n<p align=\"center\">\n  <strong>Stop forgetting. Start remembering.</strong>\n  <br/>\n  <sub>Give your AI coding agents a permanent, evolving second brain.</sub>\n</p>\n\n<p align=\"center\">\n  <a href=\"README.md\">English</a> | <a href=\"README.ko.md\">한국어</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"License\"></a>\n  <img src=\"https://img.shields.io/badge/Claude_Code-Plugin-purple\" alt=\"Claude Code\">\n</p>\n\n<p align=\"center\">\n  <a href=\"#quick-start\">Quick Start</a> ·\n  <a href=\"#why-oh-my-obsidian\">Why</a> ·\n  <a href=\"#how-it-works\">How It Works</a> ·\n  <a href=\"#commands\">Commands</a> ·\n  <a href=\"#the-agents\">The Agents</a>\n</p>\n\n**Oh-my-obsidian gives Claude Code and Codex persistent, Obsidian-backed project memory.**\n\nAI coding agents are capable but lose context between sessions. Oh-my-obsidian stores project decisions and session notes as Markdown in an Obsidian vault, then helps Claude Code and Codex retrieve the relevant context later. Guided setup, vault maintenance, and approval-based Git sync keep that memory usable without hiding where it lives.\n\n---\n\n## Why Oh-My-Obsidian?\n\nMost AI coding agents start every session with a blank slate. \n\n| Problem | What Happens | Oh-My-Obsidian Fix |\n| :--- | :--- | :--- |\n| **Amnesia** | AI forgets why a decision was made last week | `session-save` records architectural decisions into Markdown |\n| **Lost Context** | You paste the same context over and over | `recall` automatically searches the vault for relevant past work |\n| **Messy Docs** | Documentation rots and becomes disorganized | `refactor` safely reorganizes the vault as the project evolves |\n| **Setup Friction** | Hard to bootstrap a good folder structure | Socratic `setup` interviews you to generate a tailored vault |\n\n---\n\n## Quick Start\n\n### Claude Code Quick Start\n\n```bash\n# 1. Add our custom marketplace\n/plugin marketplace add https://github.com/hongdangmoo49/oh-my-obsidian\n\n# 2. Install the plugin\n/plugin install oh-my-obsidian@omob\n```\n\n**Install via Official Marketplace** — (Pending Approval) If installed from the official Claude registry:\n```bash\n/plugin install oh-my-obsidian\n```\n\n*(For local development: `claude --plugin-dir /path/to/oh-my-obsidian`)*\n\n**Initialize** — Run the interactive Socratic setup wizard:\n\n```\n> /oh-my-obsidian:setup\n```\n\n### Codex Quick Start\n\nCodex reads the repository marketplace from:\n\n```text\n.agents/plugins/marketplace.json\n```\n\nAdd the marketplace from GitHub:\n\n```bash\ncodex plugin marketplace add hongdangmoo49/oh-my-obsidian\n```\n\nThen open Codex and install `oh-my-obsidian` from the plugin directory:\n\n```text\n/plugins\n```\n\nThen ask Codex:\n\n```text\nSet up an Obsidian vault for this project.\n```\n\nAfter setup, you can continue with Codex using natural-language prompts or an\nexplicit skill name such as:\n\n```text\nWhat did we decide last time about the vault layout?\nSave this session to the Obsidian vault.\nShow me the vault health check.\nAdd a note to the vault for today's API decisions.\n$oh-my-obsidian-recall Find our prior vault-layout decision.\n```\n\n<details>\n<summary><strong>What happens during setup?</strong></summary>\n\nThe plugin will:\n1. Check for the Obsidian desktop app on your system.\n2. Conduct a Socratic interview to understand your project (domain, tech stack, team size).\n3. Generate a tailored folder structure via the `vault-architect` agent.\n4. Offer an optional Obsidian Git choice (`safe`, `manual`, or `team-sync`) after separate approvals.\n5. For Codex, offer approval-gated official hooks and optional session history restore after validation.\n</details>\n\n## Codex Plugin\n\nCodex support is shipped from a separate plugin root:\n\n```text\nplugins/oh-my-obsidian/\n```\n\nUse the Codex-native marketplace file:\n\n```text\n.agents/plugins/marketplace.json\n```\n\nWhen users add `hongdangmoo49/oh-my-obsidian` as a Codex marketplace source,\nCodex reads this marketplace and exposes the bundled `oh-my-obsidian` plugin.\nDo not reuse `.claude-plugin/marketplace.json` for Codex.\n\nTypical Codex start flow:\n\n1. run `codex plugin marketplace add hongdangmoo49/oh-my-obsidian`\n2. run `codex`, then open `/plugins` and install `oh-my-obsidian`\n3. ask Codex: `Set up an Obsidian vault for this project.`\n\nThe Codex plugin keeps the same product shape: guided setup, recall,\nsession-save, vault management, and official Codex hooks for project-local\nmemory context. In Codex, these flows are typically used through natural-language\nprompts or explicit skill invocation rather than Claude-style slash commands.\n\n## Feature Matrix\n\n| Capability | Claude Code Plugin | Codex v1 | Official Codex Hooks |\n| :--- | :--- | :--- | :--- |\n| Guided setup | Yes | Yes | N/A |\n| Recall | Yes | Yes | N/A |\n| Session save | Yes | Yes | Stop reminder |\n| Vault manager | Yes | Yes | N/A |\n| Hook auto-enable | Yes | Approval-gated | Setup step |\n| Hook install path | Claude config | Project `.codex/` by default | Project `.codex/` |\n\n---\n\n## How It Works\n\nOh-my-obsidian acts as a bridge between the **AI (Claude Code)**, the **Knowledge Base (Obsidian)**, and the **Team (Git)**.\n\nIn Codex, the same loop is driven through skill-guided prompts rather than the\nClaude command surface shown below.\n\n```text\n    [ Claude Code ] <---> [ oh-my-obsidian ] <---> [ Obsidian Vault ]\n           |                                             |\n           +----------------( Git Sync )-----------------+\n```\n\n| Phase | Action |\n| :--- | :--- |\n| **Initialize** | Socratic agents interview you to design a tailored vault structure |\n| **Work** | The agent retrieves context via `recall` to solve coding tasks |\n| **Document** | The agent records decisions via `session-save` directly into the vault |\n| **Evolve** | As the project grows, `refactor` audits and safely reorganizes folders |\n\n---\n\n## Commands\n\nUse these commands directly inside your Claude Code session.\n\nIn Codex, use the equivalent natural-language prompts or explicitly invoke the\ninstalled skill surface, such as `$oh-my-obsidian-setup`,\n`$oh-my-obsidian-recall`, `$oh-my-obsidian-session-save`, and\n`$oh-my-obsidian-vault-manager`.\n\n| Command | Role | Description |\n| :--- | :--- | :--- |\n| `/oh-my-obsidian:setup` | **Bootstrap** | Socratic interview to create and sync a new project vault |\n| `/oh-my-obsidian:refactor` | **Evolve** | Audits an existing vault and safely executes a structural migration |\n| `/oh-my-obsidian:recall <query>` | **Retrieve** | Uses configured MCP search when available, otherwise searches local Markdown |\n| `/oh-my-obsidian:session-save` | **Record** | Summarizes the current session and archives it to the vault |\n| `/oh-my-obsidian:enable-auto-save` | **Config** | Enables auto-save hook on SessionEnd for existing users |\n| `/oh-my-obsidian:vault` | **Manage** | General purpose vault management (list, add, organize) |\n\n---\n\n## The Agents\n\nOh-my-obsidian uses specialized sub-agents to handle complex reasoning tasks. They do the heavy lifting so you don't have to.\n\n| Agent | Role | Core Question |\n| :--- | :--- | :--- |\n| **Socratic Interviewer** | Guides project setup | *\"What is the core domain and tech stack of this project?\"* |\n| **Vault Architect** | Designs folder structures | *\"What is the optimal vault layout for this specific team?\"* |\n| **Vault Auditor** | Diagnoses messy vaults | *\"Where are the bottlenecks and overgrown folders in this vault?\"* |\n| **Migration Verifier** | Ensures safe refactoring | *\"Will moving this folder cause data loss or nested overlaps?\"* |\n\n---\n\n## Team Onboarding\n\nOnce a vault is initialized with Git sync, onboarding a new team member takes seconds.\nThe setup command automatically generates cross-platform installation scripts in the vault.\n\n```bash\n# Team member clones the repo, then runs:\ncd scripts/team-setup\n./install.sh     # Mac/Linux\n.\\install.ps1    # Windows\n```\n\n---\n\n## 🔧 Prerequisites\n\nItems that users must **manually** prepare to run the plugin normally:\n\n- **Node.js 18 or higher** must be installed on your system.\n- **Git** should be installed for repository-local Codex hooks and optional vault sync.\n- You need a project-specific Obsidian vault path. Setup can create a new vault\n  or attach a compatible existing vault; Git initialization and Obsidian Git sync\n  are optional approval-gated steps.\n\n## ⚙️ Under the Hood\n\nDuring setup, the plugin can help with the following tasks, but each sensitive\nstep is permission-gated and may be skipped. Package-manager installs, shell\nprofile edits, config-pointer creation, third-party downloads, community plugin\nenablement, and auto-sync choices all require separate approval.\n\n1. **Obsidian Desktop App Detection and Install Guidance**: The setup checks whether Obsidian is available in the current environment. Automatic install is only offered when the platform/context supports it and only after explicit approval. Container and WSL flows have stricter limits.\n2. **Obsidian Git Plugin Choices**: After the vault exists, setup can offer `safe`, `manual`, or `team-sync` Obsidian Git options. Download, enablement, and sync behavior are separate approvals, not defaults.\n3. **Local Script Generation and Environment Setup Guidance**: Setup generates onboarding scripts and can help users set `OBSIDIAN_VAULT`, but shell profile edits or Codex config-pointer creation are opt-in and approval-gated.\n\nFor Codex follow-up skills, vault resolution checks explicit `OBSIDIAN_VAULT`\nfirst, then approved Codex hook pointers (`<repo>/.codex/oh-my-obsidian.local.json`\nand `~/.codex/oh-my-obsidian.local.json`), then the optional approved config\npointer at `~/.oh-my-obsidian/config.json`.\n\nFor the beginner Codex path, the recommended repo-local hooks setup creates the\nproject-local pointer and protects it with `<repo>/.codex/.gitignore`, so\nmachine-specific vault paths are not committed and users do not need to configure\nenvironment variables first.\n\n## Permission Boundaries\n\nBoth Claude Code and Codex flows require explicit approval before:\n\n- package-manager installs\n- shell profile mutation\n- third-party Obsidian Git downloads\n- community plugin enablement\n- auto-sync or team-sync behavior\n- git remote changes or push operations\n- overwrites, moves, deletes, or reconcile actions\n\nCodex-only approval boundary:\n\n- creation of Codex config pointers\n- official Codex hooks installation or `.codex/*` edits\n\n## Plugin Structure\n\n```\noh-my-obsidian/\n├── .claude-plugin/plugin.json   # Claude plugin manifest\n├── commands/                    # Claude command surface\n├── skills/                      # Claude/root skills\n├── agents/                      # Claude sub-agents\n├── hooks/                       # Claude session hooks\n├── scripts/                     # Shared/root installation scripts\n├── .mcp.json                    # MCP server config (optional)\n├── .agents/plugins/marketplace.json\n└── plugins/oh-my-obsidian/      # Codex plugin surface\n```\n\n---\n\n<p align=\"center\">\n  <em>\"A second brain for your AI.\"</em>\n  <br/><br/>\n  <strong>Oh-my-obsidian</strong>\n  <br/><br/>\n  <code>MIT License</code>\n</p>\n",
  "bytes": 11363,
  "sha": "375bf49321fc12104bdde9945e3baea9b4eaa028a766f6c8cfc92a75dd1476a7",
  "repo_slug": "hongdangmoo49/oh-my-obsidian",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_hongdangmoo49_oh_my_obsidian_oh_my_obsid_a45da1a2/readme"
}