
I Tried Automated Organization of Technical Articles with Obsidian Web Clipper × Claude Code
This page has been translated by machine translation. View original
Introduction
Hello everyone, this is Odaka from the Data Business Division.
In our daily work, I think many of us encounter technical articles or documentation that we want to read later. However, this information is scattered in various places such as links shared in different Slack channels, articles found in browsers, and we often can't find them when needed.
So I created a system that saves webpages in Markdown format using Obsidian Web Clipper and has Claude Code's skills (/clip) read the content of articles and automatically organize them into category folders such as AWS, GCP, or Terraform.
Background and Challenges
Previous Challenges
When finding interesting technical articles or documentation, storage locations tended to be inconsistent:
- Slack
- Links to articles shared by team members get lost in the flow
- Browser
- Temporarily bookmarked but difficult to find quickly
As a result, time was wasted thinking "where did I see that article...?"
What I Wanted to Achieve
- Centralize information storage in one place
- Automatically categorize saved articles by AWS, GCP, Terraform, etc.
- Create folder hierarchies automatically to eliminate manual organization
Tools Used
| Tool | Role |
|---|---|
| Obsidian Web Clipper | Browser extension. Saves webpages in Markdown format to Obsidian Vault |
| Claude Code | Anthropic's CLI tool. Implements AI article classification through custom skills |
Overall System Design
① Clip articles in browser (Obsidian Web Clipper)
↓ Save in Markdown format
② Accumulate in Obsidian Vault's 06_Articles/ folder
↓ When articles accumulate...
③ Run /clip with Claude Code
↓ AI reads article content and determines categories
④ Automatically organize under ~/Documents/articles/
AWS/
S3Tables/
IAM/
Terraform/
Basics/
GCP/
CloudRun/
Note: In this case, I'm moving files from Obsidian Vault to
~/Documents/articles/because I'm not yet proficient with Obsidian and haven't established a workflow to centrally manage articles within it. Managing under the familiar~/Documents/directory is easier for me. For those who primarily use Obsidian as their knowledge base, organizing folders within the Vault would work well.
Implementation
Prerequisites
- Claude Code installed
- Obsidian installed
- Obsidian Web Clipper (browser extension) installed
Step 1: Configuring Obsidian Web Clipper
Obsidian Web Clipper is a browser extension that converts web pages into Markdown format and saves them to your Obsidian Vault.
Install it from the Chrome Web Store and set the destination folder.
I'm using a folder called 06_Articles as a temporary storage location for clips.
Step 2: Creating the /clip skill
Use Claude Code's skills feature to create a skill that automatically categorizes articles.
Create the following file at ~/.claude/skills/clip/SKILL.md:
---
name: clip
description: Read articles saved with Obsidian Web Clipper, determine categories and subcategories based on content, create folder hierarchy under ~/Documents/articles/ and automatically organize them.
allowed-tools:
- Read
- Write
- Glob
- Bash(mkdir *)
- Bash(mv *)
- Bash(ls *)
---
# Web Clip Article Organization Skill
Read Markdown articles saved with Obsidian Web Clipper,
analyze content and automatically organize by category.
## Path Settings
- **Input source**: `/Users/{username}/Documents/obsidian/06_Articles`
- **Destination**: `/Users/{username}/Documents/articles`
## Workflow
### 1. Detecting Unorganized Files
Get all `.md` files in the source folder.
If there are 0 files, report "No articles to organize" and exit.
### 2. Analyzing Each File's Content
Read each md file and determine:
#### Category (1st level folder)
Determine the main technology area of the article. Examples:
- `AWS` - Amazon Web Services related
- `GCP` - Google Cloud Platform related
- `Azure` - Microsoft Azure related
- `Terraform` - Terraform / IaC related
- `Kubernetes` - Kubernetes / container orchestration related
- Create new ones with appropriate names based on article content
#### Subcategory (2nd level folder)
Determine specific services or fields within the category. Examples:
- AWS → `IAM`, `EC2`, `Lambda`, `S3`, `S3Tables`, etc.
- GCP → `IAM`, `CloudRun`, `GKE`, `BigQuery`, etc.
- Terraform → `Basics`, `Modules`, `State`, etc.
### 3. Creating Folders and Moving Files
Create folders if they don't exist and move files.
### 4. Processing Result Report
Display organization results in table format.
Skill Design Considerations
I designed the Claude Code skill with these points in mind:
- Limiting allowed-tools: Only allowing necessary tools like
Read,Glob,Bash(mkdir *),Bash(mv *). This prevents unintended file operations - Flexibility in categories: Not limiting to predefined categories but allowing new ones to be created based on article content
- Result reporting: Displaying processing results in table format for easy understanding of what was moved where
Step 3: Execution
Clipping Articles
Click the Obsidian Web Clipper extension icon in your browser, and Obsidian will open, saving the article in Markdown format.
After saving several articles in 06_Articles, run /clip in Claude Code.
/clip Execution Results
> /clip
Found 3 md files. Reading content for classification.
## Article Organization Report
| Filename | Category | Subcategory | Destination |
|-----------|---------|------------|-------|
| 知識ゼロからTerraform...Tips.md | Terraform | Basics | articles/Terraform/Basics/ |
| アップデートAmazon S3 Tables...タグ機能...md | AWS | S3Tables | articles/AWS/S3Tables/ |
| Amazon S3 Tables...CloudTrail...md | AWS | S3Tables | articles/AWS/S3Tables/ |
Processed: 3 files
The AI read the article content and automatically classified the Terraform beginner's guide to Terraform/Basics/ and the S3 Tables update articles to AWS/S3Tables/.
Generated Folder Structure
~/Documents/articles/
├── AWS/
│ └── S3Tables/
│ ├── アップデートAmazon S3 Tablesでタグ機能が利用可能になりました...md
│ └── Amazon S3 TablesのメンテナンスイベントがCloudTrailで...md
└── Terraform/
└── Basics/
└── 知識ゼロからTerraformで実装するときに知っておくと便利なTips.md
Category and subcategory folders were automatically created, and articles were moved to appropriate locations.
Attempting (and Abandoning) launchd Automation
Initially, I aimed to create a system that would automatically execute /clip the moment a file was saved by Web Clipper.
About launchd
It's a process management system built into macOS. Its WatchPaths feature can monitor specific folders and execute scripts when changes occur.
Configuration
launchd (WatchPaths monitoring 06_Articles)
↓ Detects file changes
clip-organizer.sh
↓ Launches Claude Code in non-interactive mode
claude -p "Execute /clip"
↓ Categorizes and moves articles
Automatically organizes to ~/Documents/articles/
Claude Code has a non-interactive mode claude -p "prompt" that can be called from scripts. I tried using this with a launchd WatchPaths → shell script → claude -p configuration.
Issue: macOS Security Restrictions
After implementing and registering with launchd, I got a "Operation not permitted" error:
Due to macOS privacy protection features (TCC: Transparency, Consent, and Control), background processes launched by launchd cannot access the ~/Documents folder.
Even allowing Terminal "Full Disk Access" didn't solve the issue because launchd doesn't operate through Terminal.
Potential Solutions and Conclusion
| Solution | Evaluation |
|---|---|
| Wrap script in .app and grant Full Disk Access | Complex process |
| Move monitored folders outside ~/Documents | Not possible as Obsidian Vault is in Documents |
| Switch to manual execution of /clip | Simple and reliable |
While further investigation into macOS security restriction workarounds might have yielded a solution, considering that manual execution of /clip takes only seconds, the benefit of automation seemed minimal, so I settled for the simpler approach.
Technical Points
1. Utilizing Claude Code skills
By using Claude Code skills (placing SKILL.md under ~/.claude/skills/), you can invoke article organization with the /clip slash command.
Specifying allowed-tools in the skill definition's frontmatter restricts which tools can be used during execution, enabling safe operation.
2. Flexible AI Classification
Unlike traditional rule-based approaches (filename or keyword matching), having AI read the full article for classification means:
- Correct categorization even when technology names aren't in the filename
- Automatic determination and creation of new categories when needed
- Ability to distinguish fine-grained subcategories like S3 vs S3 Tables
3. Non-interactive Execution with claude -p
Using claude -p "prompt" enables calling Claude Code from scripts. While the combination with launchd ran into macOS security restrictions, automatic execution from file monitoring would be possible in environments without such security constraints.
Conclusion
In this project, I combined Obsidian Web Clipper with a custom Claude Code skill to build a system for automatic classification of technical articles.
While I couldn't achieve full automation, the experience of organizing articles with a single /clip command is quite convenient. I hope this serves as a useful reference for those struggling with technical article management.
For future improvements, using Obsidian's Bases feature to manage categories and tags like a database could further enhance not just folder organization but also article searchability and overview capabilities.