hooks-afa93a — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited hooks-afa93a (Hook) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <a href="README.md">English</a> · <a href="docs/README.zh-CN.md">简体中文</a> · <a href="docs/README.ja.md">日本語</a> </p>
<p align="center"> <img src="assets/codex-obsidian-cover.svg" alt="Codex Obsidian: a Codex-native Obsidian wiki companion" width="100%" /> </p>
<p align="center"> <a href="https://github.com/aidehua08/codex-obsdian"><img alt="Codex native" src="https://img.shields.io/badge/Codex-native-111827?style=flat-square"></a> <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-2563eb?style=flat-square"></a> <a href="https://obsidian.md"><img alt="Obsidian" src="https://img.shields.io/badge/Obsidian-ready-7c3aed?style=flat-square"></a> <a href="plugins/codex-obsdian/skills"><img alt="Skills" src="https://img.shields.io/badge/Skills-15-0f766e?style=flat-square"></a> <a href="tests/test_codex_obsidian.py"><img alt="Tests" src="https://img.shields.io/badge/Tests-unittest-f97316?style=flat-square"></a> </p>
Codex Obsidian turns Codex into an Obsidian-native knowledge companion: a local, plain-Markdown wiki that remembers sources, links concepts, retrieves prior context, saves sessions, lints itself, and compounds over time.
It is a Codex-native full core port of claude-obsidian: the upstream skills, scripts, installers, agents, hooks, tests, Obsidian config, templates, seed vault, and wiki assets are preserved, with Codex marketplace metadata, installable plugin manifest, Codex subagents, and macOS-compatible lock fixes added on top.
Most AI memory systems hide your knowledge in an app, an index, or a chat history you cannot really inspect. Codex Obsidian keeps the substrate boring on purpose:
.raw/ is append-only evidence; wiki/ is the synthesized knowledge layer.wiki/hot.md, wiki/log.md, source notes, concept pages, entities, and questions keep future work warm.Install from a local checkout:
git clone https://github.com/aidehua08/codex-obsdian.git
cd codex-obsdian
codex plugin marketplace add "$(pwd)"
codex plugin add codex-obsdian@aidehua08-codex-obsdianStart a new Codex thread after installing so the skills are loaded.
Then try:
Set up an Obsidian wiki vault here.
Ingest this file into my wiki.
Query the wiki for our recent decisions.
Save this session to Obsidian.
Lint the wiki.
Create a canvas for this topic.your-project/
├── .raw/ # immutable source captures
│ └── .manifest.json # source tracking and hashes
├── .vault-meta/ # locks, modes, local metadata
└── wiki/
├── hot.md # active context Codex reads first
├── index.md # navigation hub
├── log.md # chronological work log
├── sources/ # source notes
├── concepts/ # durable ideas
├── entities/ # people, orgs, projects, products
├── questions/ # evergreen questions and answers
├── folds/ # compacted summaries
└── canvases/ # Obsidian Canvas JSON| Capability | What Codex Does | Durable Output |
|---|---|---|
| Wiki setup | Creates the vault substrate and seed files | wiki/, .raw/, manifest |
| Source ingest | Preserves raw files and writes source notes | .raw/*, wiki/sources/* |
| Hybrid retrieval | Builds BM25 indexes, retrieves chunks, and optionally reranks | .vault-meta/bm25/*, grounded responses |
| Session save | Converts chat context into durable decisions and next steps | wiki/meta/*, wiki/log.md |
| Multi-writer safety | Uses per-file advisory locks for concurrent agents | .vault-meta/locks/* |
| DragonScale helpers | Address allocation, semantic tiling, boundary scoring, folds | .vault-meta/*, wiki/folds/* |
| Lint | Finds dead wikilinks, orphan pages, stale structure, address drift | Repair plan or report |
| Canvas | Creates visual maps for Obsidian Canvas | wiki/canvases/*.canvas |
| Modes | Adapts organization to Generic, LYT, PARA, or Zettelkasten | .vault-meta/mode.json |
This repository is an installable Codex marketplace, not a folder of loose prompts:
codex-obsdian/
├── .agents/plugins/marketplace.json
├── .codex/agents/ # Codex subagents
├── .obsidian/ # Seed Obsidian config
├── .raw/ # Seed raw source area
├── .vault-meta/ # Locks, counters, retrieval state
├── agents/ # Upstream Claude agent source
├── bin/ # Setup scripts
├── commands/ # Upstream slash-command source
├── hooks/ # Upstream hook config
├── scripts/ # Retrieval, locks, DragonScale, mode tooling
├── skills/ # Root skill mirror
├── tests/ # Upstream tests plus Codex smoke test
├── wiki/ # Seed wiki vault
├── plugins/codex-obsdian/
│ ├── .codex-plugin/plugin.json
│ ├── skills/ # Full installed skill set
│ ├── scripts/ # Full installed helper set + codex_obsidian.py
│ ├── bin/ _templates/ hooks/
│ ├── .obsidian/ .raw/ .vault-meta/
│ └── wiki/
└── docs/flowchart LR
A["User asks Codex"] --> B["Codex skill router"]
B --> C["Wiki setup"]
B --> D["Ingest"]
B --> E["Retrieve"]
B --> F["Save / Fold / Lint"]
C --> G["wiki/ + .raw/"]
D --> H[".raw/.manifest.json"]
D --> I["wiki/sources"]
E --> J["wiki/hot.md + wiki pages"]
F --> K["wiki/log.md + wiki/folds"]
G --> L["Obsidian"]
H --> L
I --> L
J --> L
K --> LThe bundled helpers handle repeatable file operations:
python3 plugins/codex-obsdian/scripts/codex_obsidian.py --root . init
python3 plugins/codex-obsdian/scripts/codex_obsidian.py --root . ingest-file ./source.md
python3 plugins/codex-obsdian/scripts/codex_obsidian.py --root . query "search terms"
python3 plugins/codex-obsdian/scripts/codex_obsidian.py --root . lint
python3 plugins/codex-obsdian/scripts/codex_obsidian.py --root . save --title "session" --text "summary"
bash plugins/codex-obsdian/bin/setup-retrieve.sh
python3 plugins/codex-obsdian/scripts/retrieve.py "query"
bash plugins/codex-obsdian/scripts/wiki-lock.sh acquire wiki/concepts/Foo.mdCodex still does the high-value work: synthesis, linking, judgment, source-grounded explanation, and deciding what belongs in long-term memory.
| Skill | Use It For |
|---|---|
wiki | Set up or continue a vault |
wiki-ingest | Add files, URLs, notes, screenshots, or source material |
wiki-query | Answer from the local wiki |
wiki-retrieve | Select relevant context before a task |
wiki-lint | Audit links, orphans, and stale structure |
wiki-fold | Compact logs into durable summaries |
save | Persist a session, decision, or research result |
autoresearch | Run iterative research into the vault |
canvas | Generate Obsidian Canvas maps |
defuddle | Clean messy captures before ingestion |
obsidian-markdown | Write Obsidian-compatible Markdown |
obsidian-bases | Structure fields for Obsidian Bases |
think | Reason about note architecture before writing |
wiki-mode | Apply LYT, PARA, Zettelkasten, or generic organization |
wiki-cli | Use the helper CLI directly |
Codex Obsidian supports four organization modes:
Ask Codex to switch modes naturally:
Switch this vault to PARA mode.
Use Zettelkasten-style atomic notes for this research.
Create an LYT map of content for this topic.| Area | claude-obsidian | Codex Obsidian |
|---|---|---|
| Primary host | Claude Code | Codex |
| Install model | Claude plugin marketplace / symlink | Codex marketplace + plugin |
| Entry points | Slash commands and skills | Native Codex skill discovery |
| Deterministic helpers | Shell/Python scripts | Full shell/Python helper set + Codex CLI wrapper |
| Knowledge substrate | Obsidian Markdown vault | Obsidian Markdown vault |
| Source-first workflow | Yes | Yes |
| Retrieval, lint, fold | Yes | Yes |
| Multi-agent helpers | Claude agents | Codex subagents plus upstream agent source |
| Tests | Upstream shell/Python suite | Upstream suite + Codex smoke test |
The goal is not to hide the lineage. The goal is to make the same idea feel native in Codex.
python3 /Users/edward/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py plugins/codex-obsdian
for d in plugins/codex-obsdian/skills/*; do \
python3 /Users/edward/.codex/skills/.system/skill-creator/scripts/quick_validate.py "$d"; \
done
python3 -m unittest discover -s tests -v
make testIs this an Obsidian plugin?<br> No. It is a Codex plugin that writes an Obsidian-compatible vault.
Does it require Obsidian to run?<br> No. Codex can create and maintain the Markdown files without Obsidian. Obsidian is the best visual/editor layer.
Does it upload my notes?<br> No. The vault is local plain text unless you choose to sync it.
Can I use an existing vault?<br> Yes. Run Codex from inside the vault or point the CLI at the vault root.
Why keep `.raw/` separate from `wiki/`?<br> Because source evidence and synthesis should not be mixed. Raw files are preserved; wiki pages can evolve.
Codex Obsidian ports the workflow ideas from AgriciDaniel/claude-obsidian into a Codex-native plugin package. See ATTRIBUTION.md and docs/source-breakdown.md.
MIT. See LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.