jagbiryadav/opendash/self-extend

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when you want to evolve your own capabilities — create new tools to avoid repeating patterns, add hooks to improve your own behavior, build skills to accumulate domain knowledge, or override built-in tools to adapt to project needs. This is your self-iteration interface.

Install

npx vskill@latest install jagbiryadav/opendash/self-extend

SKILL.md

Self-Extension

Overview

You can extend your own capabilities by writing files to .opendash/. Changes to tools, hooks, and skills take effect immediately (next turn) — no restart needed.

Creating Tools

Write to .opendash/tools/<name>.ts:

ts
import { tool } from "@mimo-ai/plugin"
export default tool({
description: "What this tool does",
args: {
param1: tool.schema.string().describe("Parameter description"),
},
async execute(args, ctx) {
// ctx.directory — project root
// ctx.worktree — git worktree root
// ctx.abort — AbortSignal
return `Result: ${args.param1}`
},
})

Multiple tools per file: use named exports instead of default.

Creating Hooks

Write to .opendash/hooks/<name>.ts — export a Hooks object:

ts
export default {
"tool.execute.before": async (input, output) => {
if (input.tool === "bash" && output.args.command?.includes("rm -rf /")) {
output.cancel = true
output.cancelReason = "Blocked dangerous command"
}
},
"experimental.chat.system.transform": async (input, output) => {
output.system.push("Additional instruction here.")
},
}
Hook Events
EventCapability
tool.execute.beforeModify args or cancel=true to block
tool.execute.afterModify tool output
tool.definitionModify tool description/parameters
chat.paramsModify temperature, topP, maxOutputTokens
experimental.chat.system.transformAppend to system prompt
experimental.chat.messages.transformModify message list sent to LLM
permission.askAuto-allow/deny permission requests
shell.envInject environment variables

Tool Override

A custom tool with the same id as a built-in replaces it:

ts
// .opendash/tools/bash.ts — overrides built-in bash
import { tool } from "@mimo-ai/plugin"
import { execSync } from "child_process"
export default tool({
description: "Shell with safety checks",
args: { command: tool.schema.string() },
async execute(args, ctx) {
if (args.command.includes("sudo")) return "Error: sudo not allowed"
return execSync(args.command, { encoding: "utf-8", cwd: ctx.directory })
},
})

Creating Skills

Write to .opendash/skills/<name>/SKILL.md:

markdown
---
name: my-skill
description: Use when [conditions]
---
Instructions here...

File Locations

TypePathHot-reload
Tools.opendash/tools/*.tsnext turn
Hooks.opendash/hooks/*.tsnext turn
Skills.opendash/skills/*/SKILL.mdnext turn
TUI.opendash/tui/*.tsxrestart

When to Use What

I want to...Use
Wrap a repeated bash/API patternTool
Block or modify a tool's behaviorHook (tool.execute.before)
Inject context into system promptHook (chat.system.transform)
Accumulate domain knowledge for future useSkill
Override how a built-in tool worksTool (same name as builtin)
Add a custom UI panel or commandTUI plugin

Detailed API Reference

For full type signatures, all available fields, and more examples:

  • See @reference/tool-api.md for Tool schema and ToolContext
  • See @reference/hook-api.md for all hook events with input/output types
  • See @reference/skill-api.md for SKILL.md format and frontmatter fields
  • See @reference/tui-api.md for TUI plugin slots, commands, dialogs, and state

Constraints

  • Tools/hooks have same permissions as bash — no privilege escalation
  • Cannot modify the permission system
  • Tool output truncated at 50KB / 2000 lines
  • Prefer small, composable extensions over monolithic ones

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/jagbiryadav/opendash/self-extend/badge)](https://verified-skill.com/skills/jagbiryadav/opendash/self-extend)

Something wrong with this skill or its page? Tell us.