- Remove 91 tracked-but-gitignored files from index (sessions, plugin data/manifests, pycache, memory-changes, obsidian state, credential notes). Disk files preserved via --cached. - Add .gitignore rules: .qmd/, .memory-index.lock, *.sqlite-wal/shm, 13 credential note paths. - Remove filename-blacklist ignore patterns (**/*password*.md etc.) that caught nothing and misfired on normal notes. - Add .scripts/verify-vault.mjs: scans git-tracked files for key patterns (sk-*, AKIA*, gh[pousr]_*, glpat-*, xox*, BEGIN PRIVATE KEY) and 64-char hex in plugin .json files. - Add verifier step to CI lint workflow before dependency install.
Scripts Directory
Helper scripts for vault automation and web content capture.
Available Scripts
Attachment Management
These are primarily called via npm/pnpm commands in package.json:
update-attachment-links.js- Updates note links after moving attachmentsfix-renamed-links.js- Fixes links after renaming files
Web Content Capture
Note: These scripts require API keys to function:
firecrawl-scrape.sh
Scrapes a single URL and saves as markdown.
# Requires FIRECRAWL_API_KEY environment variable
.scripts/firecrawl-scrape.sh <url> <output_file>
firecrawl-batch.sh
Scrapes multiple URLs and auto-generates filenames.
# Requires FIRECRAWL_API_KEY environment variable
# Basic usage - saves to 00_Inbox/Clippings/
.scripts/firecrawl-batch.sh <url1> <url2> <url3>
# Custom output directory
.scripts/firecrawl-batch.sh -o 01_Projects/Research/ <url1> <url2>
.scripts/firecrawl-batch.sh --output-dir 03_Resources/Articles/ <url1> <url2>
Transcript Extraction
transcript-extract.sh
Extracts transcripts from YouTube videos.
# Basic usage - saves to 00_Inbox/Clippings/
.scripts/transcript-extract.sh <youtube-url>
# Custom output directory
.scripts/transcript-extract.sh <youtube-url> 01_Projects/Research/
NPM Scripts
Run these from the vault root with pnpm:
| Command | Description |
|---|---|
attachments:list |
Show first 20 unprocessed attachments |
attachments:count |
Count unprocessed attachments |
attachments:organized |
Count files in Organized folder |
attachments:unprocessed |
Same as count |
attachments:refs <file> |
Find references to a specific file |
attachments:sizes |
Show 20 largest attachment files |
attachments:orphans |
Find unreferenced attachments |
attachments:recent |
Show files added in last 7 days |
attachments:create-organized |
Create the Organized subfolder |
Setup Requirements
For Web Scraping
- Get a Firecrawl API key from firecrawl.dev
- Add to your shell profile:
export FIRECRAWL_API_KEY="your-key-here"
For Transcript Extraction
-
Requires
yt-dlpandjqinstalled:# macOS brew install yt-dlp jq # Linux apt-get install yt-dlp jq
Adding Custom Scripts
- Create script in
.scripts/ - Make it executable:
chmod +x .scripts/your-script.sh - Add npm script to
package.jsonif needed - Document here
Notes
- Scripts assume Unix-like environment (macOS/Linux)
- Windows users may need WSL or Git Bash
- All paths are relative to vault root
- Check script comments for additional requirements