Skip to content
Automation
Skill

/agentic-os-setup

Set up an agentic OS — either inside an Obsidian vault (bundled command-center dashboard, 5 auto-installed plugins, button bar wired to Claude prompts) OR as a standalone Next.js web dashboard with live MCP integrations (Circle, Fireflies, YouTube/VidIQ, Unipile LinkedIn DMs,

From plugin
benai-skills
62152 skills17 agents1 hook4 MCP
Install
$ npx -y skills add naveedharri/benai-skills --skill agentic-os-setup --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-setup

Context preview

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

Set up an agentic OS — either inside an Obsidian vault (bundled command-center dashboard, 5 auto-installed plugins, button bar wired to Claude prompts) OR as a standalone Next.js web dashboard with live MCP integrations (Circle, Fireflies, YouTube/VidIQ, Unipile LinkedIn DMs,

SKILL.md

agentic-os-setup.SKILL.md
name: agentic-os-setup
description: Set up an agentic OS — either inside an Obsidian vault (bundled command-center dashboard, 5 auto-installed plugins, button bar wired to Claude prompts) OR as a standalone Next.js web dashboard with live MCP integrations (Circle, Fireflies, YouTube/VidIQ, Unipile LinkedIn DMs, Apify Twitter, Reddit), Anthropic Agent SDK refreshes, and optional Railway deploy. Use when the user says "set up agentic OS", "install command center", "bootstrap a personal AI dashboard", "build a vault dashboard", "spin up an MCP-powered dashboard", "deploy an AI ops dashboard", "give me my own version of the dashboard", "set up my second brain dashboard", or asks to personalize a dashboard previously created with this skill. Skill asks one routing question first — Obsidian or standalone — then runs the matching full flow.
disable-model-invocation: true
allowed-tools: Bash, Read, Write, Edit, AskUserQuestion

Agentic OS Setup

This skill installs an agentic OS for the user. There are two routes:

  • **Route A — 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. Button bar wired to user-defined Claude prompts via Shell-commands. Markdown-based, no servers.
  • **Route B — Standalone web dashboard.** Bootstraps a Next.js 14 dashboard wired to the Claude Agent SDK plus up to 7 MCP integrations (Circle community, Fireflies meetings, YouTube/VidIQ, Unipile LinkedIn DMs, Apify Twitter/X, Reddit). Optional Railway deploy with HTTP basic auth and a persistent volume. Real web app, can run locally or live.

Both routes share the same conceptual model: a per-profile dashboard, a button-bar of actions, and snapshot-style data refreshes. They differ in surface (markdown vs Next.js), data shape (frontmatter vs JSON snapshots), and deployment (none vs Railway).

Step 0 — Route question (ALWAYS ASK FIRST)

Before anything else, use `AskUserQuestion` to route:

> "Where do you want this set up?" > - **Inside an Obsidian vault** — command-center dashboard rendered via Dataview + CustomJS. Best if you already use Obsidian, want markdown-native, no server. > - **As a standalone web dashboard** — Next.js app with live MCP integrations and optional Railway deploy. Best if you want a real web URL, live API integrations, multi-user access via HTTP basic auth.

Header: "Surface". multiSelect: false. Don't pre-select. Don't proceed until answered.

Then execute the matching route below.

---

Route A — Obsidian vault

Use this entire section when the user picks "Inside an Obsidian vault" in Step 0.

Installs a configurable command-center dashboard in any Obsidian vault. 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.

A.1 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

A.2 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").

A.3 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 h

Read more
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

Get the whole plugin

Other skills on benai-skills.