Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
obsidian-plugin - Skill - OpenSmartRoute
Skillv1.0.0
obsidian-plugin
Always output to the **plugin folder itself** (`.`). This puts `main.js` next to `main.ts` so it can be committed alongside source and installed directly from the repo.
Instruction file imported from NunoMotaRicardo/obsidian-extensions (.github/instructions/obsidian-plugin.instructions.md). Copyright stays with the author.
Obsidian Plugin Build Conventions
Output Directory
Always output to the plugin folder itself (.). This puts main.js next to main.ts so it can be committed alongside source and installed directly from the repo.
const outDir = '.';
Required Copies
After building, always copy manifest.json (and styles.css when present) alongside main.js:
copyFileSync('manifest.json', `${outDir}/manifest.json`);// copyFileSync('styles.css', `${outDir}/styles.css`); // only if styles.css exists
External Modules
Always mark runtime-provided modules as external so they are never bundled:
Copy one of these into your project. Installing also returns the manifest and these snippets.
yaml
targets:
- https://api.opensmartroute.ai/api/v1/registry/nunomotaricardo-obsidian-extensions-obsidian-plugin-inst-04425b/manifest # or paste the manifest below
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
{
"ocm": "1",
"id": "nunomotaricardo-obsidian-extensions-obsidian-plugin-inst-04425b",
"kind": "skill",
"name": "obsidian-plugin",
"description": "Always output to the **plugin folder itself** (`.`). This puts `main.js` next to `main.ts` so it can be committed alongside source and installed directly from the repo.",
"publisher": "NunoMotaRicardo",
"version": "1.0.0",
"capabilities": {
"domains": [
"general"
],
"tags": [
"skill-md",
"github-instructions"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Always output to the **plugin folder itself** (`.`). This puts `main.js` next to `main.ts` so it can be committed alongside source and installed directly from the repo."
],
"primary": false,
"metadata": {
"source": {
"provider": "github-instructions",
"repository": "https://github.com/NunoMotaRicardo/obsidian-extensions",
"path": ".github/instructions/obsidian-plugin.instructions.md",
"ref": "30d68511121e905fd1431346afb5a29d4fefe438",
"url": "https://github.com/NunoMotaRicardo/obsidian-extensions/blob/30d68511121e905fd1431346afb5a29d4fefe438/.github/instructions/obsidian-plugin.instructions.md",
"key": "NunoMotaRicardo/obsidian-extensions/.github/instructions/obsidian-plugin.instructions.md"
},
"applies_to": "**/esbuild.config.mjs"
},
"instructions": "# Obsidian Plugin Build Conventions\n\n## Output Directory\n\nAlways output to the **plugin folder itself** (`.`). This puts `main.js` next to `main.ts` so it can be committed alongside source and installed directly from the repo.\n\n```js\nconst outDir = '.';\n```\n\n## Required Copies\n\nAfter building, always copy `manifest.json` (and `styles.css` when present) alongside `main.js`:\n\n```js\ncopyFileSync('manifest.json', `${outDir}/manifest.json`);\n// copyFileSync('styles.css', `${outDir}/styles.css`); // only if styles.css exists\n```\n\n## External Modules\n\nAlways mark runtime-provided modules as external",
"cost": {
"context_tokens": 175
}
}
Fetch it by URL: GET /api/v1/registry/nunomotaricardo-obsidian-extensions-obsidian-plugin-inst-04425b/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.