Skip to content
Back to skills

Obsidian Vault Setup

ASecurity

Use when setting up the shared atmosphere-vault Obsidian vault on a new machine or for

  • 3,819 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
ai-agentsrustbashgitapidevops

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add Atmosphere/atmosphere --skill obsidian-vault-setup --agent claude-code

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.

Security grade badge for Obsidian Vault Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atmosphere-obsidian-vault-setup/badge)](https://www.skillsdirectory.com/skills/atmosphere-obsidian-vault-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…