Borrowing it
Nothing to install: this file belongs to allenhutchison/obsidian-gemini. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/allenhutchison/obsidian-gemini/master/.agents/skills/obsidian-plugin-development/SKILL.mdgit clone --depth 1 https://github.com/allenhutchison/obsidian-geminiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/allenhutchison/obsidian-gemini/obsidian-plugin-development)<a href="https://agentmods.dev/skills/allenhutchison/obsidian-gemini/obsidian-plugin-development"><img src="https://agentmods.dev/badge/skills/allenhutchison/obsidian-gemini/obsidian-plugin-development.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 426 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Prompt Injection · line 453 Subtle instructions detected that may alter agent decision-making or introduce hidden biases.Fix: Review content for implicit steering or bias. Ensure instructions are explicit and align with the skill's stated purpose.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.03604 |
| Opus 5 | $0.00048 | $0.01802 |
| Sonnet 5 | $0.00019 | $0.00721 |
| Haiku 4.5 | $0.00010 | $0.00360 |
Grade A, and why
obsidian-plugin-development scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 484 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Obsidian Plugin Development
When to use this skill
Use this skill when:
- Creating or modifying an Obsidian plugin
- Working with the
obsidiannpm package TypeScript API - Building plugin UI: views, modals, settings tabs, commands, ribbon icons, context menus, status bar
- Performing vault file operations (read, create, modify, delete, rename)
- Manipulating the editor (cursor, selection, transactions)
- Working with the workspace (leaves, tabs, splits, sidebars)
- Using MetadataCache for frontmatter, links, tags, headings
- Handling events (vault, workspace, editor, metadata changes)
- Rendering markdown programmatically
- Making HTTP requests from a plugin (use
requestUrl, notfetch) - Using the Obsidian CLI for automation, scripting, or developer tooling
- Debugging or testing an Obsidian plugin
Plugin anatomy
An Obsidian plugin consists of:
my-plugin/
├── main.ts # Entry point: default export extending Plugin
├── manifest.json # Plugin metadata (id, name, version, minAppVersion)
├── styles.css # Optional: plugin styles
├── package.json # npm dependencies
├── tsconfig.json # TypeScript config
└── esbuild.config.mjs # Build config (or rollup/vite)
manifest.json
{
"id": "my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"minAppVersion": "1.0.0",
"description": "Description of plugin",
"author": "Author Name",
"authorUrl": "https://example.com",
"isDesktopOnly": false
}
Main plugin class
import { Plugin } from 'obsidian';
export default class MyPlugin extends Plugin {
settings: MySettings;
async onload() {
// Called when plugin is activated
await this.loadSettings();
this.addSettingTab(new MySettingTab(this.app, this));
this.addCommand({ id: 'my-cmd', name: 'My Command', callback: () => {} });
this.addRibbonIcon('icon-name', 'Tooltip', () => {});
this.registerView('view-type', (leaf) => new MyView(leaf));
this.registerEvent(this.app.vault.on('modify', (file) => {}));
}
onunload() {
// Called when plugin is deactivated - cleanup happens automatically
// for anything registered via this.register*() or this.add*()
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
}
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 484 lines · 97 tokens per session scan A c424a6097051
obsidian-plugin-development is a skill published in the GitHub repository allenhutchison/obsidian-gemini (523 stars, last pushed today), licensed MIT. It adds 97 tokens to every session and 3,604 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
fast-typescript-check
Keep www-sacred's TypeScript fast to type-check and fast to run. Use when touching the ASCII/canvas animation components (the only real per-frame code here), tightening type-check wall-clock, or auditing a change for runtime or compiler regressions. Scoped to this repo — a React 19 / Next.js 16 component library plus…
onejs-setup-and-overview
Use this skill whenever the user wants to build or set up user interface in a Unity project using OneJS, React, TypeScript, or JSX, e.g. 'add a main menu to my game', 'build a settings screen', 'make a HUD', 'set up OneJS', 'my OneJS panel is blank', 'the UI is not hot reloading'. Covers confirming OneJS is installed…
coding-standards
A set of general coding standards and practical patterns for TypeScript, JavaScript, React, and Node.js. It covers readable naming, simple designs, avoiding repetition, and delaying unnecessary features.
typescript-rules
React/TypeScript frontend development rules including type safety, component design, state management, and error handling. Use when implementing React components, TypeScript code, or frontend features.
electron-development
Electron development guidelines for building cross-platform desktop applications with JavaScript/TypeScript.
create-custom-widget
Build a Mendix pluggable widget from scratch with React and TypeScript and package it as an .mpk. Use when no marketplace or built-in widget covers what is needed and a custom React component has to be written.