Installs into .claude/skills of the current project.
Are you the author of Obsidian Vault Setup?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/atmosphere-obsidian-vault-setup)
---
name: obsidian-vault-setup
description: Use when setting up the shared atmosphere-vault Obsidian vault on a new machine or for
a new team member. Guides through cloning, installing plugins, symlinking claude_docs, and
verifying the Obsidian CLI.
user-invocable: true
metadata:
version: "1.1.0"
domain: devops
triggers: obsidian, vault, setup, onboard, atmosphere-vault
role: specialist
scope: implementation
output-format: report
---
# Obsidian Vault Setup
## Role
DevOps assistant for setting up the shared atmosphere-vault Obsidian knowledge base on a developer machine.
## When to Use
Invoke when a team member needs to:
- Clone and open the atmosphere-vault for the first time
- Connect their atmosphere checkout to the vault via symlink
- Verify the Obsidian CLI and the vault's commit timer are configured correctly
## Defaults
```
PROJECT_DIR = ~/workspace/atmosphere/atmosphere
VAULT_DIR = ~/workspace/atmosphere/atmosphere-vault
VAULT_REPO = git@github.com:Atmosphere/atmosphere-vault.git
```
Ask the user for PROJECT_DIR and VAULT_DIR if they differ from defaults. The vault is a
sibling of the project directory: the routing block reaches it as `../atmosphere-vault`,
and the vault's `scripts/sync-claude-memory.sh` reaches the checkout as `../atmosphere`.
## Workflow
### Step 1: Verify prerequisites
Check that the following are installed:
```bash
# Obsidian desktop app (required)
ls /Applications/Obsidian.app 2>/dev/null && echo "Obsidian: OK" || echo "Obsidian: MISSING — install from https://obsidian.md"
# The app's own CLI (Settings → General → enable the command line interface)
command -v obsidian # must print /Applications/Obsidian.app/Contents/MacOS/obsidian
```
If `command -v obsidian` prints an npm path, the unrelated `obsidian-cli` npm package is
shadowing the real CLI — `npm uninstall -g obsidian-cli`.
### Step 2: Clone atmosphere-vault
```bash
# Only if not already present
if [ ! -d "$VAULT_DIR" ]; then
git clone git@github.com:Atmosphere/atmosphere-vault.git "$VAULT_DIR"
fi
# Verify on main branch
cd "$VAULT_DIR" && git status
```
### Step 3: Install plugins
Downloads obsidian-git and Templater and writes their pre-configured settings.
```bash
cd "$VAULT_DIR"
./scripts/install-plugins.sh
```
This script:
- Downloads `main.js` + `manifest.json` for each plugin from GitHub releases
- Copies the tracked settings from `.obsidian/plugin-configs/` into each plugin's
`data.json` (obsidian-git: auto-commit and auto-push every 10 minutes, pull before push;
Templater: template folder `Templates/`, trigger on new file creation)
- Writes `.obsidian/community-plugins.json` to enable both plugins
Plugin binaries are excluded from git (`.obsidian/plugins/` is in `.gitignore`).
Re-running the script is safe — it overwrites existing files idempotently.
### Step 4: Create claude_docs symlink
This links `atmosphere/claude_docs/` to `atmosphere-vault/Claude Outputs/` so Claude Code
session outputs land directly in the vault.
```bash
cd "$PROJECT_DIR"
# Safety check: do NOT overwrite a real directory
if [ -d claude_docs ] && [ ! -L claude_docs ]; then
echo "ERROR: claude_docs/ exists as a real directory. Back it up before proceeding."
exit 1
fi
ln -sf "$VAULT_DIR/Claude Outputs" claude_docs
ls -la claude_docs # verify symlink resolves
```
### Step 5: Open vault in Obsidian
Instruct the user to:
1. Open Obsidian
2. Click **Open folder as vault**
3. Navigate to `$VAULT_DIR` and click **Open**
4. When prompted "Trust and enable plugins?", click **Trust author and enable plugins**
The vault's commit timer is obsidian-git's, configured by Step 3 to commit and push every
10 minutes. Run exactly one per machine: if the machine already runs another commit timer of
its own for the vault (nothing in this repo or the vault ships one), set obsidian-git's
auto-commit and auto-push intervals to 0 there.
### Step 6: Verify sync flow
After obsidian-git is configured:
```bash
# Create a test file in Claude Outputs
echo "# Test" > "$PROJECT_DIR/claude_docs/test.md"
# Verify it appears in the vault
ls "$VAULT_DIR/Claude Outputs/test.md"
# Clean up
rm "$PROJECT_DIR/claude_docs/test.md"
```
## Constraints
- NEVER overwrite an existing `claude_docs/` directory that contains real files
- ALWAYS verify atmosphere-vault is on `main` branch before linking
- NEVER install the npm `obsidian-cli` package — it shadows the app's own `obsidian` CLI
- If PROJECT_DIR or VAULT_DIR differ from defaults, ask for them before running any commands
## Success Criteria
- `ls -la $PROJECT_DIR/claude_docs` shows a symlink pointing to `$VAULT_DIR/Claude Outputs`
- Obsidian opens the vault and shows all folders (Architecture, APIs, Methodology, Development)
- `command -v obsidian` resolves to the app bundle
- Exactly one commit timer commits into the vault on this machine (Step 5)