Agent skill

Obsidian CI Integration

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Set up GitHub Actions CI/CD for Obsidian plugin development.

MITAuto-check passedDevOps & Cloud

Install Obsidian CI Integration

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill obsidian-ci-integration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace obsidian-ci-integration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/obsidian-ci-integration .claude/skills/obsidian-ci-integration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
obsidian-ci-integration
GitHub stars
2.8k
Token cost
~2k tokens
SKILL.md length
311 words
Files
2 (incl. references)
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Set up GitHub Actions CI/CD for Obsidian plugin development.

  • Works in 6 steps: Create Build Workflow → Create Release Workflow → Create Version Bump Script → …
  • Automating builds
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 4 more sections
  • Calls npm, git and node

What it does

Obsidian CI Integration is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up GitHub Actions CI/CD for Obsidian plugin development. Use when automating builds, tests, and releases for your plugin, or setting up continuous integration for Obsidian projects. Trigger with phrases like "obsidian CI", "obsidian github actions", "obsidian automated build", "obsidian CI/CD".

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/implementation-guide.md`). Compatibility notes: Designed for Claude Code

It sits in DevOps & Cloud, covering CI/CD. It works with Obsidian, GitHub Actions, npm and GitHub. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Automating builds
  • Releases for your plugin
  • Setting up continuous integration for Obsidian projects
  • With phrases like obsidian CI

Example prompts

  • “obsidian CI”
  • “obsidian github actions”
  • “obsidian automated build”
  • “/obsidian-ci-integration”

Requirements

  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(npm:*)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Create Build Workflow
  2. Create Release Workflow
  3. Create Version Bump Script
  4. Wire Version Bump into package.json
  5. Add Manifest Validation Workflow
  6. BRAT Beta Support

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(npm:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • git
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • docs.obsidian.md
    • docs.github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Obsidian CI Integration loads about 2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 81 tokens; SKILL.md has 311 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 311 words, ~1,981 tokens.

Download SKILL.mdSave it as .claude/skills/obsidian-ci-integration/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
obsidian-ci-integration
description
Set up GitHub Actions CI/CD for Obsidian plugin development. Use when automating builds, tests, and releases for your plugin, or setting up continuous integration for Obsidian projects. Trigger with phrases like "obsidian CI", "obsidian github actions", "obsidian automated build", "obsidian CI/CD".
allowed-tools
Read, Write, Edit, Bash(npm:*)
compatibility
Designed for Claude Code
version
1.13.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, obsidian, testing, ci-cd

Obsidian CI Integration

Overview

GitHub Actions workflows for Obsidian plugin development: build validation on every push, automated releases when you tag, version-bump scripting, manifest.json validation, and BRAT beta channel support.

Prerequisites

  • GitHub repository with an Obsidian plugin
  • Working local build (npm run build produces main.js)
  • manifest.json and versions.json in repo root
  • GitHub Actions enabled on the repository

Instructions

Step 1: Create Build Workflow
yaml
# .github/workflows/build.yml
name: Build Plugin
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 18

      - name: Install dependencies
        run: npm ci

      - name: Build plugin
        run: npm run build

      - name: Verify build output
        run: |
          if [ ! -f main.js ]; then
            echo "ERROR: main.js not found after build"
            exit 1
          fi
          echo "main.js size: $(wc -c < main.js) bytes"

      - name: Validate manifest.json
        run: |
          node -e "
            const m = require('./manifest.json');
            const required = ['id', 'name', 'version', 'minAppVersion', 'description', 'author'];
            const missing = required.filter(f => !m[f]);
            if (missing.length) {
              console.error('Missing manifest fields:', missing.join(', '));
              process.exit(1);
            }
            console.log('manifest.json valid:', m.id, 'v' + m.version);
          "
Step 2: Create Release Workflow
yaml
# .github/workflows/release.yml
name: Release Plugin
on:
  push:
    tags:
      - '*'

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 18

      - run: npm ci
      - run: npm run build

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v2
        with:
          files: |
            main.js
            manifest.json
            styles.css
          draft: false
          generate_release_notes: true
Step 3: Create Version Bump Script
javascript
// version-bump.mjs
import { readFileSync, writeFileSync } from 'fs';

const targetVersion = process.env.npm_package_version;

// Update manifest.json
const manifest = JSON.parse(readFileSync('manifest.json', 'utf8'));
const { minAppVersion } = manifest;
manifest.version = targetVersion;
writeFileSync('manifest.json', JSON.stringify(manifest, null, '\t'));

// Update versions.json — maps plugin version to minimum Obsidian version
const versions = JSON.parse(readFileSync('versions.json', 'utf8'));
versions[targetVersion] = minAppVersion;
writeFileSync('versions.json', JSON.stringify(versions, null, '\t'));

console.log(`Bumped to ${targetVersion} (minAppVersion: ${minAppVersion})`);
Step 4: Wire Version Bump into package.json
json
{
  "scripts": {
    "build": "node esbuild.config.mjs",
    "dev": "node esbuild.config.mjs --watch",
    "version": "node version-bump.mjs && git add manifest.json versions.json"
  }
}

Now npm version patch (or minor/major) runs the bump script automatically.

Step 5: Add Manifest Validation Workflow
yaml
# .github/workflows/validate.yml
name: Validate Plugin
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Check manifest/versions consistency
        run: |
          node -e "
            const manifest = require('./manifest.json');
            const versions = require('./versions.json');
            const pkg = require('./package.json');
            let fail = false;

            if (manifest.version !== pkg.version) {
              console.error('Version mismatch: manifest=' + manifest.version + ' package=' + pkg.version);
              fail = true;
            }

            if (!versions[manifest.version]) {
              console.error('versions.json missing entry for ' + manifest.version);
              fail = true;
            }

            if (fail) process.exit(1);
            console.log('All versions consistent: ' + manifest.version);
          "
Step 6: BRAT Beta Support

Add a beta-manifest.json for BRAT beta testers:

json
{
  "id": "your-plugin-id",
  "name": "Your Plugin (Beta)",
  "version": "1.2.0-beta.1",
  "minAppVersion": "1.5.0",
  "description": "Beta channel — install via BRAT",
  "author": "Your Name"
}

Beta users install via BRAT by entering your GitHub repo URL. BRAT fetches the latest release (including pre-releases) automatically — no submission to the community repo needed.

Output

  • .github/workflows/build.yml — validates build on every push/PR
  • .github/workflows/release.yml — creates GitHub release with main.js, manifest.json, styles.css on tag push
  • .github/workflows/validate.yml — checks version consistency across manifest, package.json, and versions.json
  • version-bump.mjs — keeps manifest.json and versions.json in sync with package.json version
  • Optional beta-manifest.json for BRAT beta channel

Error Handling

ErrorCauseSolution
main.js not foundBuild script doesn't output to rootCheck esbuild outfile points to ./main.js
Release has no assetsTag pushed before buildLet the release workflow handle the build, don't attach manually
Version mismatchForgot npm versionRun npm version patch instead of editing manifest by hand
BRAT not picking up betaNo pre-release on GitHubCreate release and check "pre-release" checkbox
npm ci failsNo lockfileCommit package-lock.json to the repo
Permission denied on releaseMissing contents: writeAdd permissions block to release job

Examples

Tag and Release a New Version
bash
set -euo pipefail
# Bump, commit, tag, push — release workflow fires automatically
npm version patch
git push origin main --tags
Manual Build Verification
bash
set -euo pipefail
npm ci
npm run build
test -f main.js && echo "Build OK: $(wc -c < main.js) bytes" || echo "FAIL: main.js missing"
node -e "const m=require('./manifest.json'); console.log(m.id, 'v'+m.version)"
Release with Changelog
yaml
# In release.yml, replace generate_release_notes with a body:
- name: Create GitHub Release
  uses: softprops/action-gh-release@v2
  with:
    files: |
      main.js
      manifest.json
      styles.css
    body: |
      ## Changes
      - Feature: Added X
      - Fix: Resolved Y

Resources

Next Steps

For publishing to the community plugin directory, see obsidian-deploy-integration. For pre-release quality checks, see obsidian-prod-checklist.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/.curated/obsidian-ci-integration of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • references/implementation-guide.md

Open the folder on GitHubat commit cfae287

Compare with similar skills

Obsidian CI Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Obsidian CI Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Obsidian CI Integration this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2kAutomated safety check: PassMIT
GitHub Actions Supply Chain Pinningasyncapi/generator1.1k—~1.9kAutomated safety check: PassApache-2.0
npm Release Via GitHub Actionsjmfederico/pi-web871—~2.9kAutomated safety check: PassMIT
Release Flowromankurnovskii/BrewMate300—~976Automated safety check: PassMIT
Publishingadeze/raindrop-mcp188—~398Automated safety check: PassMIT
Publish ExtensionFreakStudioCN/mpy-hardware-extension154—~1.3kAutomated safety check: PassCustom licence

Similar skills

  • A skill your agent uses when editing, adding, or reviewing any file under .github/workflows/, or when a CI step installs a CLI tool (npm i -g, npx, pipx, uses: /setup-).

    1.1k GitHub stars~1.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…

    871 GitHub stars~2.9k tokensUpdated 2 days ago
    DevOps & CloudAuto-check passed
  • Release Flow

    romankurnovskii/BrewMate

    Automate the full application release flow for BrewMate, including committing local changes, bumping version, waiting for GitHub Actions release build, and pushing the in-repo cask update…

    300 GitHub stars~976 tokensUpdated 13 days ago
    DevOps & CloudAuto-check passed
  • Publishing

    adeze/raindrop-mcp

    Publishing and release workflow with semantic-release and GitHub Actions

    188 GitHub stars~398 tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • Publish Extension

    FreakStudioCN/mpy-hardware-extension

    发布 Blockless VS Code 扩展到 Visual Studio Marketplace(含发布前测试)/ ship the Blockless extension to the VS Code Marketplace.

    154 GitHub stars~1.3k tokensUpdated 13 days ago
    DevOps & CloudAuto-check passed
  • Official

    A skill your agent uses when adding or editing a GitHub Actions workflow that pushes a container image to a registry (ECR/ghcr/Docker Hub via build-push-action) or dispatches a production deploy (a…

    40k GitHub stars~751 tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Obsidian CI Integration

What does Obsidian CI Integration do?

Set up GitHub Actions CI/CD for Obsidian plugin development. Obsidian CI Integration is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up GitHub Actions CI/CD for Obsidian plugin development.

When should I use Obsidian CI Integration?

Obsidian CI Integration fits situations like: automating builds; releases for your plugin; setting up continuous integration for Obsidian projects; with phrases like obsidian CI.

How do I install Obsidian CI Integration in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill obsidian-ci-integration -a claude-code`. Or copy the skill folder (skills/.curated/obsidian-ci-integration in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/obsidian-ci-integration in your project. Claude Code loads it when a task matches its description.

How do I install Obsidian CI Integration in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill obsidian-ci-integration -a codex`. Or copy the skill folder (skills/.curated/obsidian-ci-integration in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/obsidian-ci-integration in your project. Codex loads it when a task matches its description.

Can I use Obsidian CI Integration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill obsidian-ci-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/obsidian-ci-integration, .gemini/skills/obsidian-ci-integration, .github/skills/obsidian-ci-integration and .opencode/skills/obsidian-ci-integration in your project.

What does Obsidian CI Integration need to run?

Going by SKILL.md and its folder, Obsidian CI Integration needs the command-line tools its instructions call (npm, git and node). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(npm:*). Compatibility (from SKILL.md): Designed for Claude Code.

Does Obsidian CI Integration access the network?

SKILL.md names 3 domains. As links in the text: github.com, docs.obsidian.md and docs.github.com. This is read from the text; nothing was executed.

Is Obsidian CI Integration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Obsidian CI Integration use?

Obsidian CI Integration is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Obsidian CI Integration use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Obsidian CI Integration?

Skills that share tags, products or a category with Obsidian CI Integration: GitHub Actions Supply Chain Pinning (asyncapi/generator, 1.1k stars), npm Release Via GitHub Actions (jmfederico/pi-web, 871 stars), Release Flow (romankurnovskii/BrewMate, 300 stars) and Publishing (adeze/raindrop-mcp, 188 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Obsidian CI Integration?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.