Build a Second Brain in Obsidian
Use Hermes Agent as an LLM wiki maintainer in your Obsidian vault.
Introduction
30 Second Summary
You read articles, take notes, save bookmarks, and research topics constantly. But all that knowledge scatters across apps, tabs, and forgotten files. When you need it later, you start from scratch.
In this project, you will build a self-maintaining personal knowledge base (a "second brain") that lives inside an Obsidian vault. Hermes Agent acts as your automated wiki maintainer: you feed it sources, and it extracts knowledge, creates interlinked pages, and keeps everything consistent over time.
What You'll Build
A persistent, self-updating knowledge base following Karpathy's LLM Wiki pattern, where Hermes Agent reads your sources, compiles structured wiki pages, and maintains cross-references automatically.
By the end of this project, you'll have:
- A three-layer wiki structure (raw sources, compiled wiki pages, schema) inside an Obsidian vault, maintained entirely by Hermes Agent.
- Multiple entity and concept pages generated from real source material, with cross-references visible in Obsidian's Graph View.
- A compounding knowledge loop where every new source and every question you ask makes the whole wiki smarter.
- Secret Mission: automate nightly wiki maintenance with a scheduled Hermes cron job that delivers a health report.
Are there any prerequisites?
This project assumes you already have Hermes Agent installed and running on native Windows, OpenRouter configured as your LLM provider, and Obsidian installed. You do not need any programming experience.
Connect Your Obsidian Vault to Hermes
For Hermes to act as your wiki maintainer, it needs a dedicated space to read and write files. That space is an Obsidian vault, which is just a folder on your computer that Obsidian treats as a self-contained knowledge base.
In this step, you will create a fresh vault, point Hermes at it using environment variables, and configure Obsidian so it plays nicely with the wiki's markdown structure.
In this step, get ready to:
- Create a fresh Obsidian vault for the wiki.
- Set the wiki path environment variables in Hermes.
- Verify the connection and configure Obsidian settings.
Create a fresh Obsidian vault for the wiki
A vault is Obsidian's unit of organization. Every file inside a vault folder becomes part of the knowledge graph that Obsidian visualizes and links together.
- Open Obsidian by pressing the Windows key to open your search bar, typing Obsidian, and pressing Enter.
- In the vault switcher that appears, click Create new vault.
- Enter a vault name like LLM Wiki or Second Brain.
- Choose a location you can easily find later (e.g., your Documents folder).
- Click Create.
- Note the full path shown in the vault creation dialog (e.g., C:\Users\YourName\Documents\LLM Wiki). You will need this exact path in the next substep.
Obsidian opens the new vault. It is empty for now.
Why a separate vault?
Keeping the wiki in its own vault prevents Hermes from accidentally reading or modifying your personal notes. It also keeps the wiki's folder structure clean and self-contained.
Set the wiki path in Hermes
Hermes uses two environment variables to know where the wiki lives. WIKI_PATH tells the llm-wiki skill where to read and write wiki files. OBSIDIAN_VAULT_PATH tells the Obsidian skill the same location so both skills operate on the same vault.
- Open File Explorer and navigate to C:\Users\YourName\AppData\Local\hermes.
- Open the .env file in a text editor (right-click, then select Open with and choose Notepad or another editor).
- Add the following two lines at the end of the file:
WIKI_PATH=[[VAULT_PATH="C:UsersYourNameDocumentsLLM Wiki"]]
OBSIDIAN_VAULT_PATH=[[VAULT_PATH="C:UsersYourNameDocumentsLLM Wiki"]]
What do these variables do?
- WIKI_PATH is used by the bundled llm-wiki skill (v2.1.0) to locate and manage wiki files.
- OBSIDIAN_VAULT_PATH is used by the bundled Obsidian skill so Hermes can perform vault-specific operations.
- Setting both to the same directory is the documented best practice. It lets both skills operate on the same files seamlessly.
- Save the .env file and close the editor.
Finding AppData
The AppData folder is hidden by default. You can navigate to it by typing %LOCALAPPDATA%\hermes directly into the File Explorer address bar and pressing Enter.
🙋♀️ Don't see the .env file?
Make sure you are looking in %LOCALAPPDATA%\hermes, not %APPDATA%\hermes. Hermes stores its data directory under the Local AppData path on Windows.
If the file still does not appear, make sure hidden files are visible in File Explorer (click View in the toolbar, then tick Hidden items).
Help me find my .env file
macOS
Great. Make sure you saved the file before moving on.
Windows
Your .env file should now contain the two new lines below (in addition to any existing configuration like your OpenRouter key):
WIKI_PATH=C:\Users\YourName\Documents\LLM Wiki
OBSIDIAN_VAULT_PATH=C:\Users\YourName\Documents\LLM Wiki
Verify the connection and configure Obsidian
Now confirm that Hermes can see the vault, and adjust a few Obsidian settings so the wiki's markdown renders correctly.
- Switch back to the Hermes Agent Desktop app.
- In the chat, type a message like "What is my wiki path?" and send it.
- Hermes should respond with the full vault path you just configured (e.g., C:\Users\YourName\Documents\LLM Wiki).
Hermes doesn't recognize the path?
If Hermes returns the default path or says the variable is not set, restart the Hermes Desktop app so it picks up the new environment file.
Double-check that the path in your .env has no extra quotes or trailing spaces. The line should read exactly WIKI_PATH= followed by the path with no surrounding quotes.
Help me troubleshoot my WIKI_PATH variable
Now configure three Obsidian settings to support the wiki structure.
- Return to Obsidian with your new vault open.
- Open Settings by clicking the gear icon in the bottom-left corner of the sidebar.
- In the Files and links section of Settings, confirm that the Use [[Wikilinks]] toggle is turned on. This is enabled by default, so it should already be active.
- In the same section, find the Default location for new attachments setting and change it to In the folder specified below.
- In the Attachment folder path field that appears, type raw/assets.
Why set the attachment folder?
The wiki's three-layer structure keeps raw source material in the raw/ directory. Setting the attachment folder to raw/assets/ ensures any images or files you drag into Obsidian land in the correct place for Hermes to manage.
Finally, install the Dataview community plugin for advanced queries later in the project.
- Still in Settings, select Community plugins in the side menu.
- Select Turn on community plugins if prompted (this disables restricted mode).
- Click Browse.
- Search for Dataview in the search box.
- Select the Dataview plugin from the results, then click Install.
- After installation completes, click Enable.
- Close the Settings panel.
What is Dataview?
Dataview is a community plugin that lets you query your vault like a database. Later, you will be able to run queries like "show me all entity pages tagged with company" across your wiki.
Confirm your Obsidian sidebar shows the vault name, the wikilinks toggle is on, and Dataview appears under your installed community plugins.
Your vault is created, Hermes knows where to find it, and Obsidian is configured to support wikilinks and attachments. Next up, you will initialize the wiki's three-layer folder structure and write the all-important SCHEMA.md file that turns Hermes into a disciplined wiki maintainer.
Initialize the Wiki Structure and SCHEMA.md
Your vault is connected to Hermes and ready to receive content. Now you need to give the wiki its internal structure.
A knowledge wiki needs strict organization to stay useful as it grows. You will create a folder structure that separates raw source material from compiled wiki pages, then define a SCHEMA.md file that teaches Hermes exactly how to behave as a wiki maintainer.
In this step, get ready to:
- Create the folder structure using Hermes.
- Define the wiki's rules and conventions in SCHEMA.md.
- Verify everything renders correctly in Obsidian.
Tell Hermes to initialize the wiki
The wiki uses a layered folder structure to keep raw sources separate from compiled knowledge. The raw/ folder stores original material exactly as ingested. You can keep it flat or organize it into subfolders that make sense to you. The wiki layer (entities/, concepts/, comparisons/, queries/) stores the compiled, interlinked knowledge that Hermes builds over time.
- Switch to your Hermes chat session.
- Instruct Hermes to initialize a new wiki by sending this message:
Initialize a new wiki in my vault. Create the full folder structure: raw/, entities/, concepts/, comparisons/, and queries/ directories. Set up index.md and log.md at the vault root.
What does Hermes do with this instruction?
Hermes uses its bundled llm-wiki skill to create the directories and scaffold the initial index.md (a content catalog) and log.md (a chronological action record). Every future wiki action gets appended to the log so you always have a full audit trail.
- Wait for Hermes to confirm it created the folders and files. You should see a response listing the directories and files it generated.
Hermes says it cannot find the path?
Double-check that your WIKI_PATH in %LOCALAPPDATA%\hermes\.env matches the exact full path to your Obsidian vault. If you changed the vault location after setting the variable, update .env and restart Hermes.
help me troubleshoot why Hermes cannot find my wiki path on Windows
Create the SCHEMA.md file
SCHEMA.md is the most important file in the wiki. It transforms Hermes from a general-purpose chatbot into a disciplined wiki maintainer by defining your wiki's domain, naming conventions, required metadata, tag taxonomy, and rules for creating and updating pages.
- Tell Hermes to create SCHEMA.md at the vault root with the following content. You can paste this directly as a message, or tell Hermes your domain interests and have it draft a schema for you to review:
# Wiki Schema
## Domain
Everything: AI/ML, productivity, health, finance, psychology, technology, science, philosophy, and any topic of active research interest. This is a general-purpose second brain designed to accumulate and connect knowledge across all domains.
## Conventions
- File names: lowercase, hyphens, no spaces (e.g., `attention-is-all-you-need.md`)
- Raw files: Saved under the `raw/` directory. You may keep all files flat in `raw/` or organize them into subfolders of your choosing (e.g., `raw/articles/`, `raw/podcasts/`).
- Raw Frontmatter: Every raw file must contain frontmatter declaring its source `type` (e.g., article, paper, transcript, note).
- Use `[[wikilinks]]` to link between pages (minimum 2 outbound links per page)
- When updating a page, always bump the `updated` date
- Every new page must be added to `index.md` under the correct section
- Every action must be appended to `log.md`
- Provenance markers: On pages that synthesize 3+ sources, append `^[raw/source-file.md]` at the end of paragraphs whose claims come from a specific source.
## Frontmatter
---
title: Page Title
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query | summary
tags: [from taxonomy below]
sources: [raw/source-name.md]
confidence: high | medium | low
contested: false
contradictions: []
---
## Tag Taxonomy
- AI/ML: model, architecture, benchmark, training, inference, alignment, data, agent
- People/Orgs: person, company, lab, open-source, researcher
- Productivity: workflow, tool, automation, habit, system
- Health: nutrition, exercise, sleep, mental-health, longevity
- Finance: investing, economics, markets, personal-finance
- Technology: software, hardware, infrastructure, protocol
- Science: biology, physics, neuroscience, mathematics
- Psychology: cognition, behavior, motivation, decision-making
- Philosophy: epistemology, ethics, consciousness
- Meta: comparison, timeline, controversy, prediction, framework
Rule: every tag on a page must appear in this taxonomy. If a new tag is needed, add it here first, then use it.
## Page Thresholds
- Create a page when an entity/concept appears in 2+ sources OR is central to one source
- Add to existing page when a source mentions something already covered
- DO NOT create a page for passing mentions, minor details, or things outside active interest
- Split a page when it exceeds ~200 lines
- Archive a page when its content is fully superseded
## Entity Pages
One page per notable entity. Include:
- Overview / what it is
- Key facts and dates
- Relationships to other entities ([[wikilinks]])
- Source references
## Concept Pages
One page per concept or topic. Include:
- Definition / explanation
- Current state of knowledge
- Open questions or debates
- Related concepts ([[wikilinks]])
## Comparison Pages
Side-by-side analyses. Include:
- What is being compared and why
- Dimensions of comparison (table format preferred)
- Verdict or synthesis
- Sources
## Update Policy
When new information conflicts with existing content:
1. Check the dates - newer sources generally supersede older ones
2. If genuinely contradictory, note both positions with dates and sources
3. Mark the contradiction in frontmatter: `contradictions: [page-name]`
4. Flag for user review in the lint report
What are the key sections in SCHEMA.md?
- Domain tells Hermes what topics you care about. A general-purpose "Everything" domain means no source gets rejected.
- Conventions enforces file naming, wikilink density, and provenance tracking. These rules keep the wiki navigable.
- Tag Taxonomy is a controlled vocabulary. Hermes cannot invent new tags without updating this list first, which prevents tag sprawl.
- Page Thresholds prevent the wiki from bloating with low-value pages. Only entities mentioned in 2+ sources (or central to one source) get their own page.
- Update Policy handles contradictions gracefully by preserving both positions and flagging them for your review.
💡 Customize the tag taxonomy
The taxonomy above is a starting template. If your interests lean heavily toward specific areas (e.g., cooking, music production, law), add those as top-level categories. Keep the total between 10-20 categories for manageability.
- Confirm Hermes created SCHEMA.md at the vault root. If you had Hermes draft it from your interests, review the output and adjust it to match the structure above.
SCHEMA.md looks garbled in Obsidian?
Make sure the file uses plain UTF-8 encoding with no BOM. If Hermes added extra characters or the frontmatter example renders oddly, switch to Obsidian's Source mode (click the book icon in the top-right of the editor) to see the raw markdown.
help me fix my SCHEMA.md rendering in Obsidian
Verify the structure in Obsidian
- Switch back to Obsidian and look at the file explorer sidebar on the left.
- Confirm you can see the full folder tree: raw/, entities/, concepts/, comparisons/, and queries/.
- Click on SCHEMA.md to open it. Confirm it renders with proper headings, bullet lists, and the frontmatter template is visible.
- Open index.md. It should look like this:
# Wiki Index
> Content catalog. Every wiki page listed under its type with a one-line summary.
> Read this first to find relevant pages for any query.
> Last updated: 2026-06-24 | Total pages: 0
## Entities
<!-- Alphabetical within section -->
## Concepts
## Comparisons
## Queries
- Open log.md. Confirm it contains a "Wiki initialized" entry:
# Wiki Log
> Chronological record of all wiki actions. Append-only.
> Format: `## [YYYY-MM-DD] action | subject`
> Actions: ingest, update, query, lint, create, archive, delete
> When this file exceeds 500 entries, rotate: rename to log-YYYY.md, start fresh.
## [2026-06-24] create | Wiki initialized
- Domain: Everything (general-purpose second brain)
- Structure created with SCHEMA.md, index.md, log.md
- Raw directory: stores all source material (flat or in subfolders)
- Wiki directories: entities, concepts, comparisons, queries
What are index.md and log.md for?
index.md is the wiki's table of contents. Every page Hermes creates gets listed here with a one-line summary. When Hermes answers a question later, it reads index.md first to identify which pages are relevant.
log.md is the audit trail. Every ingest, update, query, and lint action gets recorded in chronological order. This lets you see exactly how the wiki evolved over time.
✔️ Awesome, I've got everything!
Great. Make sure all three files (SCHEMA.md, index.md, log.md) render cleanly and the folder structure matches what you expected.
ⓧ I'd like to double check the full code
Here is the expected content of all three files for comparison.
# Wiki Schema
## Domain
Everything: AI/ML, productivity, health, finance, psychology, technology, science, philosophy, and any topic of active research interest. This is a general-purpose second brain designed to accumulate and connect knowledge across all domains.
## Conventions
- File names: lowercase, hyphens, no spaces (e.g., `attention-is-all-you-need.md`)
- Raw files: Saved under the `raw/` directory. You may keep all files flat in `raw/` or organize them into subfolders of your choosing (e.g., `raw/articles/`, `raw/podcasts/`).
- Raw Frontmatter: Every raw file must contain frontmatter declaring its source `type` (e.g., article, paper, transcript, note).
- Use `[[wikilinks]]` to link between pages (minimum 2 outbound links per page)
- When updating a page, always bump the `updated` date
- Every new page must be added to `index.md` under the correct section
- Every action must be appended to `log.md`
- Provenance markers: On pages that synthesize 3+ sources, append `^[raw/source-file.md]` at the end of paragraphs whose claims come from a specific source.
## Frontmatter
---
title: Page Title
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query | summary
tags: [from taxonomy below]
sources: [raw/source-name.md]
confidence: high | medium | low
contested: false
contradictions: []
---
## Tag Taxonomy
- AI/ML: model, architecture, benchmark, training, inference, alignment, data, agent
- People/Orgs: person, company, lab, open-source, researcher
- Productivity: workflow, tool, automation, habit, system
- Health: nutrition, exercise, sleep, mental-health, longevity
- Finance: investing, economics, markets, personal-finance
- Technology: software, hardware, infrastructure, protocol
- Science: biology, physics, neuroscience, mathematics
- Psychology: cognition, behavior, motivation, decision-making
- Philosophy: epistemology, ethics, consciousness
- Meta: comparison, timeline, controversy, prediction, framework
Rule: every tag on a page must appear in this taxonomy. If a new tag is needed, add it here first, then use it.
## Page Thresholds
- Create a page when an entity/concept appears in 2+ sources OR is central to one source
- Add to existing page when a source mentions something already covered
- DO NOT create a page for passing mentions, minor details, or things outside active interest
- Split a page when it exceeds ~200 lines
- Archive a page when its content is fully superseded
## Entity Pages
One page per notable entity. Include:
- Overview / what it is
- Key facts and dates
- Relationships to other entities ([[wikilinks]])
- Source references
## Concept Pages
One page per concept or topic. Include:
- Definition / explanation
- Current state of knowledge
- Open questions or debates
- Related concepts ([[wikilinks]])
## Comparison Pages
Side-by-side analyses. Include:
- What is being compared and why
- Dimensions of comparison (table format preferred)
- Verdict or synthesis
- Sources
## Update Policy
When new information conflicts with existing content:
1. Check the dates - newer sources generally supersede older ones
2. If genuinely contradictory, note both positions with dates and sources
3. Mark the contradiction in frontmatter: `contradictions: [page-name]`
4. Flag for user review in the lint report
# Wiki Index
> Content catalog. Every wiki page listed under its type with a one-line summary.
> Read this first to find relevant pages for any query.
> Last updated: 2026-06-24 | Total pages: 0
## Entities
<!-- Alphabetical within section -->
## Concepts
## Comparisons
## Queries
# Wiki Log
> Chronological record of all wiki actions. Append-only.
> Format: `## [YYYY-MM-DD] action | subject`
> Actions: ingest, update, query, lint, create, archive, delete
> When this file exceeds 500 entries, rotate: rename to log-YYYY.md, start fresh.
## [2026-06-24] create | Wiki initialized
- Domain: Everything (general-purpose second brain)
- Structure created with SCHEMA.md, index.md, log.md
- Raw directory: stores all source material (flat or in subfolders)
- Wiki directories: entities, concepts, comparisons, queries
Why this three-layer approach instead of RAG?
Traditional RAG (Retrieval Augmented Generation) re-reads raw documents from scratch every time you ask a question. Your wiki compiles knowledge once into structured, interlinked pages. Each new source makes the entire wiki smarter because Hermes updates existing pages and strengthens cross-references.
The result is a knowledge base that compounds over time instead of starting from zero on every query.
Your wiki's skeleton is in place. Next, you will feed it real sources and watch Hermes compile interconnected knowledge pages automatically.
Ingest Your First Sources
Your wiki has a skeleton, but no knowledge yet. The real power of the LLM Wiki pattern shows up when you feed it real sources and watch Hermes turn raw information into structured, interlinked pages.
In this step, you will ingest 2-3 articles into your wiki and see how a single source can touch 5-15 wiki pages. Hermes handles the writing. Your job is sourcing and exploration.
In this step, get ready to:
- Choose 2-3 real sources that cover topics in your SCHEMA.md taxonomy.
- Feed each source to Hermes and watch it create wiki pages with wikilinks and frontmatter.
- Review the new pages in Obsidian and verify cross-references.
Choose your first sources
The quality of your wiki depends on the quality of what you feed it. Pick sources that are dense with entities and concepts so the wiki gets interesting fast.
- Pick 2-3 real articles or notes you want in your second brain. Good candidates are meaty articles (1000+ words) that mention multiple people, companies, tools, or ideas.
- These can be URLs to articles you have been meaning to read, notes you have already written, or topics you want Hermes to research.
- Have each source URL or text ready to paste into your Hermes chat.
Pick sources that overlap
If your sources share some common ground (for example, two articles about AI that both mention the same company), Hermes will strengthen cross-references between pages. Overlapping sources demonstrate the compounding effect better than completely unrelated ones.
Tell Hermes to ingest each source
The llm-wiki skill uses a conversational workflow. You tell Hermes what to ingest, and it handles everything: capturing the raw content, discussing takeaways with you, checking for existing pages, then writing or updating wiki pages with [[wikilinks]].
- Switch to your Hermes chat window.
- Tell Hermes to ingest your first source by typing a message like the one below:
Ingest this article into the wiki: https://example.com/your-article-url
What happens during ingestion?
Hermes follows a specific workflow for each source. It captures the raw content and saves it to raw/. Then it discusses key takeaways with you before creating pages.
After the discussion, Hermes checks for existing pages that overlap with the new content. It then writes or updates entity pages, concept pages, and cross-references. Finally, it updates index.md and log.md to record everything.
- Engage with Hermes when it discusses the article's takeaways. This is your chance to guide what gets emphasized.
- Wait for Hermes to confirm it has finished creating pages and updating the index.
- Repeat for your second source. Tell Hermes to ingest it the same way:
Ingest this article into the wiki: https://example.com/your-second-article-url
- If you have a third source, ingest it now as well.
Why does Hermes discuss takeaways before writing?
The discussion step lets you steer the wiki. You might tell Hermes to focus on a particular entity, skip a tangential topic, or highlight a connection it missed. This keeps the wiki aligned with your interests rather than blindly extracting everything.
After all sources are ingested, Hermes should have created multiple files across entities/ and concepts/. A single meaty article typically produces 5-15 wiki pages.
Hermes not creating pages?
Make sure your WIKI_PATH environment variable points to the correct vault folder. Open %LOCALAPPDATA%\hermes\.env and confirm the path matches your Obsidian vault location.
If Hermes responds but no files appear in Obsidian, check whether Obsidian is watching the right vault. Close and reopen the vault from the vault path you set.
Still stuck? Help me troubleshoot why Hermes isn't writing wiki pages to my Obsidian vault.
Review what Hermes built
Now for the satisfying part. Switch to Obsidian and explore the knowledge Hermes compiled from your sources.
- In Obsidian, open the entities/ folder in the sidebar. You should see multiple new markdown files named with lowercase-hyphen convention (for example, transformer-architecture.md).
- Open any entity page and check the YAML frontmatter at the top. Confirm it includes title, created, updated, type, tags, sources, confidence, contested, and contradictions fields.
- Click a [[wikilink]] inside the page to follow it to another wiki page. This is how knowledge connects.
- Open the concepts/ folder and browse the concept pages Hermes created. These should have definitions, current state of knowledge, and outbound links.
- Open index.md and confirm it now lists all new pages under the correct sections with one-line summaries.
- Open log.md and verify it contains an ingest entry for each source you fed Hermes.
- Open the raw/ folder to see the saved raw source files.
What should I see in the frontmatter?
Each wiki page should start with a YAML block between --- fences. The type field will be entity or concept depending on the folder. Tags should all come from the taxonomy in your SCHEMA.md. The sources field points back to the raw file in raw/.
🙋♀️ Pages missing wikilinks or frontmatter fields?
If pages are missing required fields or have no outbound links, Hermes may not have read your SCHEMA.md correctly. Tell Hermes: "Re-read SCHEMA.md and update the pages you just created to match the conventions." It will fix the formatting.
Need more help? My wiki pages are missing frontmatter fields or wikilinks. How do I get Hermes to fix them?
Your wiki is no longer empty. It contains real knowledge, cross-referenced and cataloged. Next up, you will query this compiled knowledge and see how the wiki compounds with every interaction.
Query the Wiki and Compound Knowledge
Your wiki already has real knowledge compiled across multiple pages. Now comes the part that separates a wiki from a pile of bookmarks: you can ask questions that span everything you've ingested, and Hermes synthesizes answers from the compiled pages.
Even better, valuable answers can be filed back into the wiki as permanent pages. This creates a compounding loop where your explorations become knowledge that future queries build on.
In this step, get ready to:
- Ask Hermes a cross-source question and get a synthesized answer from your wiki pages.
- File a valuable answer as a permanent wiki page in queries/.
- Ingest an overlapping source and watch Hermes update existing pages instead of just creating new ones.
Ask Hermes a question that spans your sources
Traditional RAG re-reads raw documents every time you ask a question. Your wiki works differently. Hermes reads the compiled wiki pages (which already contain extracted knowledge and cross-references) to answer questions faster and with more context.
- Think of a question that connects two or more of the sources you ingested. For example, if you ingested articles about AI and productivity, you might ask about the connections between AI tools and knowledge management.
- In your Hermes chat, type your cross-source question. Here is an example:
What are the connections between AI tools and knowledge management? Cite specific wiki pages in your answer.
How does the query workflow work?
When you ask a question, Hermes reads index.md to identify relevant pages, searches for key terms across the wiki, reads those pages, and synthesizes an answer citing specific wiki pages.
This is fundamentally different from RAG. Instead of rediscovering knowledge from scratch each time, Hermes draws from pre-compiled, cross-referenced pages that already contain the key insights.
Hermes responds with a synthesized answer that references specific wiki pages by name. You should see [[wikilinks]] or page titles in the response, showing that it drew from your compiled knowledge.
Hermes reading raw sources instead of wiki pages?
If Hermes seems to be reading from raw/ instead of compiled wiki pages, remind it to check index.md first and read pages from entities/ and concepts/. Your SCHEMA.md guides this behavior, so make sure it's still intact in your vault root.
Help me get Hermes to query compiled wiki pages instead of raw sources
File your answer as a permanent wiki page
This is the compounding loop that makes an LLM Wiki so powerful. When Hermes gives you a valuable synthesized answer, you can tell it to save that answer as a permanent page. Future queries can then build on that insight.
- Review Hermes' answer from the previous question. If it contains a novel comparison or deep insight that connects ideas across sources, it's worth filing.
- Tell Hermes to save the answer as a wiki page. Type something like:
That's a great synthesis. File this as a wiki page in queries/ with proper frontmatter and wikilinks to the relevant entity and concept pages.
What happens when you file a query?
Hermes creates a new markdown file in queries/ (or comparisons/ if it's a side-by-side analysis) with full YAML frontmatter, the synthesized insight, and [[wikilinks]] to the pages it drew from. It also updates index.md and appends to log.md.
- Switch to Obsidian and open the queries/ folder in the sidebar.
- Open the new page Hermes created. You should see YAML frontmatter with type: query (or type: comparison), plus [[wikilinks]] pointing to entity and concept pages.
- Check index.md to confirm the new page appears under the **Queries** section.
Why is this better than saving bookmarks?
A bookmark saves a URL. A filed query saves a synthesized insight that's already connected to your existing knowledge via wikilinks. Next time you ask a related question, Hermes can draw on this page too. Knowledge compounds.
🙋♀️ Don't see the new page in Obsidian?
Obsidian sometimes takes a moment to detect new files created by external tools. Click anywhere in the file explorer sidebar to refresh it. If the page still doesn't appear, confirm in Hermes' response that it successfully wrote the file (it should mention the file path).
Help me find the query page Hermes filed in my Obsidian vault
Ingest an overlapping source to see updates in action
Creating new pages is straightforward. The real test of a wiki is how it handles overlapping information. When you ingest a source that covers topics already in the wiki, Hermes updates existing pages rather than duplicating content.
- Choose one more source (a URL, article, or notes) that overlaps with content you've already ingested. For example, if you previously ingested an article about a particular AI model, find a newer article about the same model or a competitor.
- Before ingesting, note which existing pages in entities/ and concepts/ cover overlapping topics. Check their current updated dates in the frontmatter.
- Tell Hermes to ingest the new source. Type something like:
Ingest this article into the wiki: [paste your URL or article text here]
What happens with overlapping content?
Hermes checks existing pages before creating new ones. When it finds overlap, it updates the existing page with new information, bumps the updated date, adds the new source to the sources frontmatter field, and strengthens cross-references with new [[wikilinks]].
If the new source contradicts existing content, Hermes follows the update policy in your SCHEMA.md: it notes both positions with dates and sources, marks contradictions in the frontmatter, and flags it for your review.
- After Hermes finishes ingesting, switch to Obsidian and open one of the pages you noted earlier.
- Check the frontmatter. The updated date should be today. The sources field should now list the new source alongside the original.
- Look for new [[wikilinks]] in the page body. These are the strengthened cross-references connecting to pages the new source mentioned.
- Open index.md to confirm any new pages are listed and the total page count is updated.
- Open log.md to see the new ingest entry appended at the bottom.
Hermes created a duplicate page instead of updating?
This can happen if the page naming in the new source doesn't exactly match existing page titles. Tell Hermes to check index.md for existing pages on the same topic, then merge the duplicate into the original. You can say: "Merge the duplicate page into the existing one and delete the duplicate."
Help me get Hermes to update existing pages instead of creating duplicates
Your wiki is now compounding. Every source you add makes the existing pages richer, and every question you ask can become permanent knowledge. Next up, you'll run a health check on the whole wiki and explore the knowledge graph visually.
Lint the Wiki and Explore the Knowledge Graph
Your wiki has grown from an empty vault into a living knowledge base with multiple pages, cross-references, and filed queries. Like any system that grows organically, it can develop inconsistencies.
In this step, you will run a full health check on your wiki and then visualize the knowledge network you have built. The lint finds structural problems before they compound, and Obsidian's Graph View shows you connections you would never spot by browsing files alone.
In this step, get ready to:
- Run a wiki lint to scan for orphan pages, broken links, and other structural issues.
- Review the lint report and fix broken links and orphan pages.
- Explore your knowledge graph in Obsidian's Graph View.
Ask Hermes to lint the wiki
A wiki lint is like a spell-checker for structure. It scans every page in the vault and flags problems that silently degrade your knowledge base over time.
- Switch back to your Hermes Agent chat session.
- Tell Hermes to lint your wiki by typing this message:
Lint my wiki
What does the lint check?
Hermes scans the entire wiki for structural problems:
- Orphan pages (no inbound [[wikilinks]] pointing to them).
- Broken wikilinks (links that point to pages that do not exist).
- Missing index entries (pages not cataloged in index.md).
- Frontmatter validation failures (missing required fields like title, tags, or sources).
- Stale content and tag violations (tags not in the taxonomy defined in SCHEMA.md).
- Pages that are candidates for splitting (exceeding ~200 lines).
Hermes will take a moment to read through your vault. When it finishes, it presents a lint report with findings grouped by severity and specific file paths for each issue.
Hermes not finding any issues?
If your wiki is very small (only 2-3 sources ingested), the lint may return a clean report. That is fine. As your wiki grows, the lint becomes increasingly valuable. You can also try alternative phrasing like "Run a health check on the wiki" if Hermes does not respond as expected.
Help me understand why Hermes isn't running the wiki lint correctly.
Review the lint report and fix issues
The lint report tells you what is wrong. Now you will fix the most impactful issues first. Broken links and orphan pages degrade the wiki fastest because they break the navigation structure that makes compiled knowledge useful.
- Read through the lint report Hermes produced. Look at the findings grouped by severity.
- For broken wikilinks, tell Hermes to fix them. For example:
Fix the broken wikilinks in the lint report. Either create the missing pages or correct the link targets.
- For orphan pages (pages with no inbound links), tell Hermes to add inbound links from relevant pages, or archive the page if it is no longer useful:
Fix the orphan pages from the lint report. Add inbound [[wikilinks]] from related pages so they are discoverable.
Why fix orphans first?
An orphan page is invisible to navigation. No other page links to it, so it will never surface in a query or a Graph View cluster. Adding even one inbound link from a related entity or concept page re-connects it to the rest of your knowledge.
If a page is genuinely irrelevant (a duplicate or a page about something outside your interests), archiving it is the right move. Tell Hermes to archive it and it will remove the page from the active wiki and update index.md.
- After Hermes finishes the fixes, ask it to confirm the changes by running the lint again:
Lint my wiki again and tell me if the broken links and orphans are resolved.
The second lint should show fewer findings. Some issues (like stale content or tag violations) are lower priority and can be addressed over time as your wiki matures.
Hermes not fixing the issues correctly?
If Hermes creates links to the wrong pages or misidentifies orphans, try being more specific. Name the file paths from the lint report directly in your instructions (e.g., "Add a wikilink to entities/transformer-architecture.md from concepts/attention-mechanism.md").
Help me tell Hermes exactly which pages to link together.
Explore the knowledge graph in Obsidian
Your wiki is a network of interlinked pages. Obsidian's Graph View renders this network visually so you can see topic clusters, connection density, and isolated nodes at a glance.
- Switch back to Obsidian.
- Open Graph View by pressing Ctrl+G or clicking the graph icon in the left sidebar.
You should see an interconnected network of nodes and edges. Each node is a page in your vault. Each edge is a [[wikilink]] between two pages.
What am I looking at in Graph View?
- Clusters of tightly connected nodes reveal topic groupings. Pages about the same subject link to each other frequently.
- Large nodes (with many connections) are hub pages. These are usually broad concepts or heavily-referenced entities.
- Isolated nodes floating away from clusters are the orphans your lint found. After your fixes, there should be fewer of these.
- Edges crossing between clusters show where different topic areas connect. These are often the most interesting insights.
- Try filtering the graph by folder. In the Graph View settings (click the gear icon in the Graph View panel), add a filter for path:entities/ to see only entity pages and their connections.
- Change the filter to path:concepts/ to see concept pages as a separate layer.
- Remove the filter to return to the full graph showing all layers of your knowledge structure.
Drag nodes to explore
You can click and drag nodes in Graph View to rearrange the network. Hover over a node to highlight its direct connections. This makes it easy to trace how one entity connects through concepts to other entities across your wiki.
Your wiki is now healthy, well-connected, and visible as a knowledge graph. You have a compounding system where every new source strengthens the whole structure. Next up, you can automate this maintenance entirely.
Secret mission
Schedule a Nightly Wiki Lint with Hermes Cron
Your wiki is healthy today, but what about tomorrow? Every new source you ingest can introduce orphan pages, broken links, or tag violations. In this secret mission, you'll set up Hermes to automatically lint your wiki every night and deliver a health report while you sleep.
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project runs locally in your Obsidian vault, so there are no cloud infrastructure costs. The only ongoing cost is the nightly cron job making OpenRouter API calls for the wiki lint (fractions of a penny per run).
Cost warning
If you completed the Secret Mission, your nightly cron job calls the OpenRouter API each time it runs. At DeepSeek V4 Flash pricing, each lint costs well under $0.01. Over a month of nightly runs, expect less than $0.30 total.
If you want to stop these charges entirely, pause or remove the cron job using the instructions below.
Resources you used:
- Obsidian vault with wiki files at C:\Users\YourName\Documents\LLM Wiki (local folder).
- Hermes cron job (nightly wiki lint scheduled at 23:00).
- Environment variables (WIKI_PATH and OBSIDIAN_VAULT_PATH) in %LOCALAPPDATA%\hermes\.env.
Keep everything running
No action needed. Choose this if you're still actively building your wiki and want the nightly lint to keep running.
- Your Obsidian vault stays in place and keeps growing with each new source you ingest.
- The cron job continues running nightly, delivering lint reports to your Hermes chat.
- The WIKI_PATH and OBSIDIAN_VAULT_PATH environment variables remain configured so Hermes can always find your vault.
Pause - I'll come back to this later
Pause the nightly cron job to stop API calls while keeping your wiki intact. You can resume anytime.
- Find your cron job's name or ID by running this command in your terminal:
- Pause the cron job by running:
hermes cron list
Look for the nightly wiki lint job in the output. Note its name or hex ID.
hermes cron pause <job_name_or_id>
Replace <job_name_or_id> with the name or ID from the list output. Pausing keeps the job definition but stops it from firing until you resume it.
- Your Obsidian vault and all wiki files remain untouched.
- When you're ready to resume, run hermes cron resume <job_name_or_id> to restart the nightly lint.
Delete - I don't want to use this again
Remove all project resources and start fresh. This permanently deletes your wiki content.
- Remove the nightly cron job by running:
hermes cron list
Note the name or hex ID of your wiki lint job, then remove it:
hermes cron remove <job_name_or_id>
- Delete the Obsidian vault folder. On Windows, open PowerShell and run:
Remove-Item -Recurse -Force "$HOME\Documents\LLM Wiki"
On macOS or Linux, run:
rm -rf ~/Documents/LLM\ Wiki
- Remove the environment variables from Hermes. Open %LOCALAPPDATA%\hermes\.env in a text editor and delete the lines containing WIKI_PATH and OBSIDIAN_VAULT_PATH. Save the file.
- In Obsidian, remove the vault from the vault switcher. Click the vault name in the bottom-left corner, then select Manage vaults. Click the X next to your wiki vault to remove it from the list. This does not delete files (you already handled that above).
Nice Work!
Nice Work!
You just built a self-maintaining second brain powered by Hermes Agent and Obsidian. Your wiki compiles and cross-references knowledge automatically, growing smarter with every source you feed it.
You've learned how to:
- Build a three-layer wiki structure (raw sources, compiled wiki pages, schema) following Karpathy's LLM Wiki pattern, with Hermes Agent as the autonomous maintainer.
- Ingest real sources and watch the wiki compile interconnected knowledge automatically, creating entity pages, concept pages, and wikilinks across your vault.
- Use the query-and-file loop to compound knowledge over time, turning your questions into permanent wiki pages that future queries build on.
- Secret Mission: Automated nightly wiki maintenance with Hermes' cron scheduler, delivering a health summary to your chat every night.
Ready to quiz yourself?