jagbiryadav/opendash/self-extend
- community
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-extendSKILL.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:
Multiple tools per file: use named exports instead of default.
Creating Hooks
Write to .opendash/hooks/<name>.ts — export a Hooks object:
Hook Events
| Event | Capability | |
|---|---|---|
tool.execute.before | Modify args or cancel=true to block | |
tool.execute.after | Modify tool output | |
tool.definition | Modify tool description/parameters | |
chat.params | Modify temperature, topP, maxOutputTokens | |
experimental.chat.system.transform | Append to system prompt | |
experimental.chat.messages.transform | Modify message list sent to LLM | |
permission.ask | Auto-allow/deny permission requests | |
shell.env | Inject environment variables |
Tool Override
A custom tool with the same id as a built-in replaces it:
Creating Skills
Write to .opendash/skills/<name>/SKILL.md:
File Locations
| Type | Path | Hot-reload | |
|---|---|---|---|
| Tools | .opendash/tools/*.ts | next turn | |
| Hooks | .opendash/hooks/*.ts | next turn | |
| Skills | .opendash/skills/*/SKILL.md | next turn | |
| TUI | .opendash/tui/*.tsx | restart |
When to Use What
| I want to... | Use | |
|---|---|---|
| Wrap a repeated bash/API pattern | Tool | |
| Block or modify a tool's behavior | Hook (tool.execute.before) | |
| Inject context into system prompt | Hook (chat.system.transform) | |
| Accumulate domain knowledge for future use | Skill | |
| Override how a built-in tool works | Tool (same name as builtin) | |
| Add a custom UI panel or command | TUI 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
- SKILL.md in the repositoryCheckingpackages/opencode/src/skill/builtin/.bundle/self-extend/SKILL.md
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
[](https://verified-skill.com/skills/jagbiryadav/opendash/self-extend)