Skip to content
Automation
Skill

/agentic-os-obsidian

Set up an agentic OS inside an Obsidian vault — a configurable command-center dashboard with 5 auto-installed, bundled plugins (Dataview, CustomJS, Shell-commands, Terminal, Homepage), Home + per-profile + Vault Overview pages, KPI cards, sparklines, heatmap, task rollup, and a

From plugin
benai-skills
62152 skills17 agents1 hook4 MCP
Install
$ npx -y skills add naveedharri/benai-skills --skill agentic-os-obsidian --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/agentic-os-obsidian

Context preview

The summary Claude sees to decide when to auto-load this skill.

Set up an agentic OS inside an Obsidian vault — a configurable command-center dashboard with 5 auto-installed, bundled plugins (Dataview, CustomJS, Shell-commands, Terminal, Homepage), Home + per-profile + Vault Overview pages, KPI cards, sparklines, heatmap, task rollup, and a

SKILL.md

agentic-os-obsidian.SKILL.md
name: agentic-os-obsidian
description: Set up an agentic OS inside an Obsidian vault — a configurable command-center dashboard with 5 auto-installed, bundled plugins (Dataview, CustomJS, Shell-commands, Terminal, Homepage), Home + per-profile + Vault Overview pages, KPI cards, sparklines, heatmap, task rollup, and a button bar wired to user-defined Claude prompts. Markdown-native, no servers. Use when the user says "set up agentic OS in Obsidian", "install command center in my vault", "build a vault dashboard", "give me my own version of the dashboard inside Obsidian", "set up my second brain dashboard", or asks to personalize a vault dashboard previously created with this skill.
disable-model-invocation: true
allowed-tools: Bash, Read, Write, Edit, AskUserQuestion

Agentic OS — Obsidian vault

Installs a configurable command-center dashboard *inside* an existing Obsidian vault. Bundles and side-loads 5 plugins (Dataview, CustomJS, Shell-commands, Terminal, Homepage). Home + per-profile + Vault Overview pages, KPI cards, sparklines, heatmap, task rollup, recent-files lists, and a button bar wired to user-defined Claude prompts via the Shell-commands plugin. All 5 required plugins are bundled and auto-enabled — the user only has to restart Obsidian. Markdown-based, no servers.

> Looking for a real web app with live API integrations and a Railway URL instead? That's the standalone route — use the `agentic-os-standalone` skill.

What gets installed

{vault}/
├── Dashboard/
│   ├── Home.md                       # Team-wide dashboard
│   ├── Vault-Overview.md             # Top-level vault health view
│   ├── {Profile}.md                  # One per configured profile
│   ├── Setup.md                      # In-vault setup reference
│   ├── CLAUDE.md                     # AI routing rules for this folder
│   ├── components/dashboard.js       # The renderer (CONFIG substituted)
│   └── lib/frappe-charts.min.js
└── .obsidian/
    ├── snippets/command-center.css   # Brand-styled CSS (enabled)
    ├── plugins/dataview/             # Side-loaded, enabled
    ├── plugins/customjs/             # Side-loaded, enabled
    ├── plugins/obsidian-shellcommands/  # Side-loaded, enabled, aliases pre-registered
    ├── plugins/terminal/             # Side-loaded, enabled, "Claude" profile configured
    ├── plugins/homepage/             # Side-loaded, enabled, points to Dashboard/Home
    ├── community-plugins.json        # Union'd with the 5 plugin IDs
    └── appearance.json               # CSS snippet enabled

Pre-flight checks

test -d .obsidian && echo "vault confirmed" || (echo "NOT A VAULT — cd into your Obsidian vault first" && exit 1)
test -d Dashboard && echo "DASHBOARD EXISTS — ask user before overwriting"

If `Dashboard/` exists, ask: cancel / install into `Dashboard-new/` / overwrite (require explicit "yes overwrite").

Interview (always run before installing)

Use `AskUserQuestion` for each. Capture answers into variables for substitution into CONFIG.

Q1. Organization name

"What's your organization or personal brand name? (Used in folder paths and dashboard header. Short — one word ideal.)" Default if skipped: `MyOrg`. Variable: `ORG_NAME`.

Q2. Brand label + subtitle

"What should the dashboard show as its title?" Two parts:

  • Brand label (header text, e.g. "Acme"). Defaults to `ORG_NAME`. Variable: `BRAND_LABEL`.
  • Brand subtitle (small text after the label, e.g. "Agentic OS", "Command Center"). Default `Command Center`. Variable: `BRAND_SUB`.

Q3. Profile list

"Who's on the team? List each profile name on a separate line. Use lowercase or capitalized — must match the folder names you'll use in step 4. For a solo vault, just one name." Parse into array. Variable: `PROFILES` (JSON array). The first is `DEFAULT_PROFILE`.

Q4. Profile folder pattern

"Where do you keep per-profile data?" Show 4 options via AskUserQuestion:

  • `Team/{ORG}/Profiles/{name}` (recommended for orgs — matches `Team/Acme/Profiles/Alex`)
  • `Team/{name}` (flat team layout)
  • `People/{name}` (alternative naming)
  • Custom — ask user to type the exact pattern. Must contain `{name}`. `{ORG}` is optional.

Variable: `PROFILE_FOLDER_PATTERN`. Verify each `PROFILES[i]` folder exists (warn if missing — installer will still write the dashboard; profile folders just won't have data yet).

Q5. Daily / Tasks / Snapshots subpaths

Three quick AskUserQuestion calls (each with sensible defaults):

  • **Daily subpath** within each profile folder. Default `Daily`. Empty disables. Variable: `DAILY_SUBPATH`.
  • **Tasks subpath** (Task Board plugin uses `task-list`). Default `task-list`. Empty disables the task widget. Variable: `TASKS_SUBPATH`.
  • **Snapshots subpath** for JSON files the dashboard reads. Default `snapshots`. Variable: `SNAPSHOTS_SUBPATH`.

Also: **Root daily path** for team-wide rollups. Default `Daily`. Variable: `ROOT_DAILY_PATH`.

Q6. Pages to ship

Which dashboard pages? MultiSelect:

  • Home (team rollup) — always recommended
  • Per-profile pages (one per Q3 profile)
  • Vault Overview (top-level folder health)
  • Custom — user names extra pages

Variable: `PAGES` (array). Installer creates one `.md` per page.

Q7. Overview folders (only if Vault Overview is in PAGES)

"Name 3-5 top-level folders to show on the Vault Overview page. For each: folder path, one-line description, optional CLAUDE.md path (or empty)." Variable: `OVERVIEW_FOLDERS` (array of `[path, description, claude_path]`). Defaults if skipped: detect `Projects/`, `Resources/`, `Intelligence/`, `Departments/`, `Teams/`, `Daily/` if present.

Q8. Buttons (with Claude prompts)

"What action buttons should the dashboard expose? For each button: label (short), icon (emoji or empty), scope (team / profile / both), and a Claude prompt (the text passed to `claude -p '...'`). Use `{profile}` in the prompt to interpolate the current profile name. Add as many as you want; defaults are zero."

Suggest these as star

Read more
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

Get the whole plugin

Other skills on benai-skills.