How to Organize Your Personal Book Library with AI and Obsidian
Level: Beginner — no programming required Tools: Cowork (Claude), Obsidian Estimated time: 30–60 minutes to set up, then 2 minutes per new book
Who is this tutorial for?
If you're a researcher, professor, or simply someone who reads a lot of books and technical papers, you know the problem well: PDFs pile up in folders with names that are impossible to remember, there's no quick way to know what you have, let alone see connections between topics.
This tutorial shows how to build a structured personal library where every book has its own note, topics are visually connected, and adding a new book takes less than two minutes — because AI does the work for you.
The result is a navigable library in Obsidian with standardized filenames, complete metadata, and a visual knowledge graph.
Tools you'll need
1. Obsidian (free)
Obsidian is a note-taking app that stores everything as plain text files (Markdown). Its most powerful feature for this project is the Graph View: a visualization that shows your books as nodes connected by topic, author, or any relationship you define.
- Download at: obsidian.md
- No account required. Your files live on your computer.
2. Cowork — Claude in agent mode (Anthropic's desktop app)
Cowork is Anthropic's desktop application that gives Claude access to your files. Unlike the regular chat, Cowork can read, create, and modify files on your computer directly.
- Requires the Claude desktop app
- In the interface, you select a working folder that Claude can see and edit
Part 1 — Folder structure
The whole system lives in a single root folder. In our case we called it DATA SCIENCE-ML, but you can name it whatever you want (e.g., My Library, Papers, Readings).
Inside that root folder, the structure is:
📁 My Library/
│
├── 📁 01 - Topic A/ ← folders by topic
├── 📁 02 - Topic B/
├── 📁 03 - Topic C/
│ └── 2024 [Author] Book Title.pdf
│
└── 📁 _vault/ ← the Obsidian vault
├── 📄 00 - INDEX.md ← master index
├── 📁 Books/ ← one note per book
└── 📁 Topics/ ← one hub per topic
How to choose your topics?
Think about the major blocks of your area of knowledge. For a Data Science library, topics might be: Foundations, Machine Learning, Deep Learning, NLP, LLMs, etc. For an education research library they could be: Pedagogy, Assessment, Educational Technology, Policy, etc.
The key rule: each book belongs to exactly one main topic. If a book straddles two topics, assign it to the one matching its primary focus.
Part 2 — File naming convention
This is the heart of the system. All files follow the same format:
YYYY [Author1~Author2] Full Book Title.pdf
Real examples:
2024 [Iusztin~Labonne] LLM Engineer's Handbook.pdf
2022 [Raschka~Liu~Mirjalili] Machine Learning with PyTorch and Scikit-Learn.epub
2025 [Auffarth~Kuligin] Generative AI with LangChain.pdf
2018 [Lopez de Prado] Advances in Financial Machine Learning.pdf
Detailed rules:
| Element | Rule | Example |
|---|---|---|
| Year | 4 digits at the start | 2024 |
| Authors | Last names only, separated by ~, inside [ ] | [Raschka~Liu] |
| 4+ authors | Only the first 3 | [Wei~Wang~Zhao] |
| Title | Complete, unabbreviated, no underscores | Machine Learning with PyTorch |
| Extension | Always lowercase | .pdf, .epub |
| Institution | Use the institution's name | [OReilly], [BCG] |
This convention makes files automatically sort by year in the explorer, and makes it impossible to have two files with the same name for the same book.
Part 3 — The Obsidian vault
The _vault folder contains three types of Markdown files:
3.1 The master index (00 - INDEX.md)
This is the entry point for the entire library. It contains:
- A total book counter in the YAML frontmatter
- A table with all topics and how many books each contains
- The full list of books organized by topic
- Recommended learning paths
---
type: index
total_books: 62
---
3.2 Topic MOCs (Topics/)
MOC stands for Map of Content. Each topic has its own file that lists the books it contains and describes its connections to other topics. These files are the "hubs" of the graph.
# 05 - Large Language Models
## Books in this Topic
- [[Hands-On Large Language Models (Alammar)]]
- [[LLM Engineer's Handbook (Iusztin & Labonne)]]
## Connects To
- [[04 - NLP & Transformers]] — architectural foundation
- [[07 - AI Agents & MLOps]] — LLMs as the engine for agents
3.3 Book notes (Books/)
Each book has its own note with structured YAML metadata and a free-form description. The YAML is what Obsidian uses to build the graph and enable filtered searches.
---
type: book
title: "LLM Engineer's Handbook"
authors: ["Paul Iusztin", "Maxime Labonne"]
year: 2024
publisher: "Packt"
topic: "[[05 - Large Language Models]]"
tags: [llm, fine-tuning, llmops, rag, production, advanced]
difficulty: advanced
format: [pdf, epub]
file: "05 - Large Language Models/2024 [Iusztin~Labonne] LLM Engineer's Handbook.pdf"
related:
- "[[LLMOps (Aryan)]]"
- "[[Hands-On Large Language Models (Alammar)]]"
---
The related field is what creates the edges in the graph. When you open the graph view in Obsidian, you'll see lines connecting related books to each other.
Part 4 — Using Cowork to automate everything
This is where AI comes into play. Instead of manually creating each note, renaming each file, and updating the index by hand, you give that task to Claude in Cowork.
Step 1: Set up your folder in Cowork
Open Cowork and select your library's root folder as the working folder.
Step 2: Drop new books into the root
When you download new books, you simply leave them in the root folder — without renaming, without organizing. The names from the download are fine for now (e.g., buildingllmpoweredapplications.pdf).
Step 3: Write the prompt for Claude
With Cowork open and the folder selected, write something like:
"You are going to add the books that are in the root of this folder to the index. You must rename them properly. If a book with the same title and authors is already in the folder, keep the most recent one."
Claude will automatically do the following:
- Read the INDEX.md to know which books already exist
- Read the first pages of each PDF to extract title, authors, year, and publisher
- Assign each book to the correct topic based on its content
- Rename and move the files to their topic folder using the standard format
- Detect duplicates and editions — if you already have the 1st edition and the new one is the 2nd, keep the most recent
- Create the Obsidian note for each new book with full YAML
- Update the topic MOCs by adding the new books
- Update the INDEX.md with the correct count and new entries
Step 4: Verify the result
When done, Claude gives you a summary like this:
✅ LLM Engineer's Handbook
📁 Filename: 2024 [Iusztin~Labonne] LLM Engineer's Handbook.pdf
📂 Folder: 05 - Large Language Models
🗒️ Note: _vault/Books/LLM Engineer's Handbook (Iusztin & Labonne).md
🔗 Related: LLMOps (Aryan) · Hands-On Large Language Models (Alammar)
📚 INDEX.md updated — 19 books added (total: 62)
Step 5: Open Obsidian and explore the graph
Open Obsidian pointing at your _vault folder. Go to Graph View (Ctrl+G on Windows, Cmd+G on Mac). You'll see all your books as nodes, connected by topic and by related relationships.
From here you can:
- Click a node to open that book's note
- Filter by tags (
#llm,#rag,#python, etc.) - See the local graph of a book (its direct connections)
- Search for books by author, year, difficulty, or any YAML field
Part 5 — Adding books in the future
The flow for adding new books is exactly the same. Download the PDF, drop it in the root, and write the prompt. Claude automatically detects that an index already exists and updates it.
For a single book, you can be more specific:
"Add this book to my library: 'Designing Machine Learning Systems' by Chip Huyen, 2022, O'Reilly. It's about MLOps and ML systems design."
Claude will create the note, find the right topic, and update the index — all without you touching a single file.
Part 6 — Initial setup from scratch
If you want to replicate this system from scratch (without a pre-existing library), the process is:
1. Create the folder structure
Create your root folder and the numbered topic subfolders. Also create _vault/Books/ and _vault/Topics/.
2. Create the initial INDEX.md
Create _vault/00 - INDEX.md with this minimal content:
---
type: index
total_books: 0
---
# My Library — Index
## Topics
| # | Topic | Books |
|---|-------|-------|
| 01 | [[01 - Topic A]] | 0 |
| 02 | [[02 - Topic B]] | 0 |
## All Books
### 01 — Topic A
### 02 — Topic B
3. Create one MOC per topic
For each topic, create _vault/Topics/NN - Topic Name.md:
---
type: topic-moc
topic: "01 - Topic A"
---
# 01 - Topic A
Brief description of the topic.
## Books in this Topic
## Key Concepts
## Connects To
4. Open Obsidian
In Obsidian, go to Open folder as vault and select your _vault folder. Enable the Dataview plugin (free, in the community plugins) if you want to run dynamic queries on your metadata.
5. Drop your first books in the root and run the prompt in Cowork
With Claude in Cowork, write:
"I have a new library in [your folder]. The INDEX is empty. Add the books that are in the root. Here are my topics: [list your topics]. For each book: read it, extract the title and authors, assign it to the correct topic, rename it with the format YYYY [Author] Title.pdf, move it to the topic folder, create the Obsidian note, and update the INDEX."
Claude will do all the initial setup in a single step.
Tips and variations
For articles and papers:
Use the same system. In the YAML type field, use paper instead of book. In the INDEX, mark papers with 📄 to distinguish them.
For personal reading notes:
Each book note can have a ## My notes section where you add your own reflections. This doesn't affect the automated system.
For multiple languages:
The naming convention works the same. Just add a language: "es" or language: "fr" field in each note's YAML.
If you don't have Cowork: You can use Claude.ai (web version) with Projects enabled, but you'll have to paste file contents manually. Cowork is what lets Claude access your files directly.
Limitation to keep in mind: On Windows systems, Claude can't delete files marked as read-only by the file system. If you have "old" files from a previous edition that you want to delete, do it manually from the file explorer after Claude has copied the new version.
Alternative without Cowork: Claude chat + Desktop Commander
If you don't have access to Cowork, you can achieve practically the same thing using Claude in the browser (claude.ai) along with a connector called Desktop Commander.
Desktop Commander is an MCP (Model Context Protocol) that gives Claude, from the regular chat interface, the ability to read, create, move, and edit files and folders on your local computer — exactly what Cowork does natively.
In the course we recommend installing Desktop Commander precisely for this reason: it lets Claude interact with your files without needing the desktop app.
⚠️ Important if you use Cowork AND have Desktop Commander installed
If you already installed Desktop Commander for the course and now want to use Cowork for this project, you must disable the Desktop Commander connector in Cowork before starting.
The reason is simple: if both are active at the same time, Claude can get confused about which tool to use to access files, leading to unpredictable behavior and slower work.
To disable it in Cowork:
- Open Cowork
- Go to Settings → Connectors
- Find Desktop Commander in the list
- Disable it with the toggle
Once you're done working with the library in Cowork, you can re-enable it if you need it for other tasks.
Summary of the two options
| Claude chat + Desktop Commander | Cowork | |
|---|---|---|
| Local file access | ✅ Yes | ✅ Yes |
| Additional install | Desktop Commander MCP | Desktop app |
| Smoothness | Good | Better (native) |
| Folder selection | Manual every session | Persistent |
| Subscription required | Claude Pro plan | Claude app |
Summary of the full flow
1. Download PDFs → drop them in the root folder (no renaming)
↓
2. Open Cowork → select the root folder
↓
3. Write the prompt → Claude reads PDFs, identifies authors/year
↓
4. Claude renames and moves → YYYY [Author] Title.pdf to the topic folder
↓
5. Claude creates the Obsidian note → with YAML, description, and related books
↓
6. Claude updates INDEX and MOCs → correct counts, new entries
↓
7. Open Obsidian → explore the updated graph
The total time to add 20 new books with this flow: less than 5 minutes, most of it spent waiting for Claude to process the PDFs.
Reference files
All template files are available in the public repository that accompanies this article. You can clone them or download them directly to have a ready-to-use base.
Repository: github.com/educep/tools/plantillas-biblioteca-ia
The included files are:
plantilla-index.md — full structure of the master index with YAML frontmatter, topics table, and book sections ready to fill in.
plantilla-topic-moc.md — structure of a topic MOC with sections for books, key concepts, and connections to other topics.
plantilla-book-note.md — structure of a book note with all the YAML fields needed for the Obsidian graph, plus a ## My notes section for your personal annotations that the automated system won't touch.
prompt-agregar-libros.txt — the three prompts ready to copy and paste into Claude: one to add books to an existing library, one for initial setup from scratch, and one to add a book manually without having the PDF.
Got questions or want to share how you adapted this system to your field? Drop me a line in the comments.