@hasna/skills 0.1.17 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -407
- package/bin/index.js +4262 -3041
- package/bin/mcp.js +4610 -3319
- package/package.json +4 -3
- package/skills/skill-academic-journal-matcher/bin/cli.ts +0 -34
- package/skills/skill-action-item-router/bin/cli.ts +0 -34
- package/skills/skill-ad-creative-generator/bin/cli.ts +0 -34
- package/skills/skill-advanced-math/bin/cli.ts +0 -34
- package/skills/skill-analyze-data/bin/cli.ts +0 -19
- package/skills/skill-anomaly-investigator/bin/cli.ts +0 -34
- package/skills/skill-api-test-suite/bin/cli.ts +0 -34
- package/skills/skill-apidocs/bin/cli.ts +0 -87
- package/skills/skill-audio-cleanup-lab/bin/cli.ts +0 -6
- package/skills/skill-audiobook-chapter-proofer/bin/cli.ts +0 -34
- package/skills/skill-banner-ad-suite/bin/cli.ts +0 -34
- package/skills/skill-benchmark-finder/bin/cli.ts +0 -34
- package/skills/skill-bio-sequence-tool/bin/cli.ts +0 -34
- package/skills/skill-blog-topic-cluster/bin/cli.ts +0 -34
- package/skills/skill-brand-style-guide/bin/cli.ts +0 -19
- package/skills/skill-brand-voice-audit/bin/cli.ts +0 -34
- package/skills/skill-budget-variance-analyzer/bin/cli.ts +0 -6
- package/skills/skill-businessactivity/bin/cli.ts +0 -28
- package/skills/skill-calendar-events/bin/cli.ts +0 -34
- package/skills/skill-campaign-metric-brief/bin/cli.ts +0 -34
- package/skills/skill-campaign-moodboard/bin/cli.ts +0 -34
- package/skills/skill-caption-style-stylist/bin/cli.ts +0 -34
- package/skills/skill-chemistry-calculator/bin/cli.ts +0 -34
- package/skills/skill-churn-risk-notifier/bin/cli.ts +0 -34
- package/skills/skill-citation-formatter/bin/cli.ts +0 -34
- package/skills/skill-classroom-newsletter-kit/bin/cli.ts +0 -34
- package/skills/skill-color-palette-harmonizer/bin/cli.ts +0 -34
- package/skills/skill-competitor-ad-analyzer/bin/cli.ts +0 -34
- package/skills/skill-compliance-copy-check/bin/cli.ts +0 -34
- package/skills/skill-compliance-report-pack/bin/cli.ts +0 -34
- package/skills/skill-compress-video/bin/cli.ts +0 -19
- package/skills/skill-consolelog/bin/cli.ts +0 -884
- package/skills/skill-contract-plainlanguage/bin/cli.ts +0 -34
- package/skills/skill-copytone-translator/bin/cli.ts +0 -34
- package/skills/skill-create-blog-article/bin/cli.ts +0 -34
- package/skills/skill-create-ebook/bin/cli.ts +0 -34
- package/skills/skill-crm-note-enhancer/bin/cli.ts +0 -34
- package/skills/skill-customer-journey-mapper/bin/cli.ts +0 -34
- package/skills/skill-dashboard-builder/bin/cli.ts +0 -34
- package/skills/skill-dashboard-narrator/bin/cli.ts +0 -34
- package/skills/skill-data-anonymizer/bin/cli.ts +0 -34
- package/skills/skill-database-explorer/bin/cli.ts +0 -34
- package/skills/skill-dataset-health-check/bin/cli.ts +0 -34
- package/skills/skill-decision-journal/bin/cli.ts +0 -34
- package/skills/skill-delegation-brief-writer/bin/cli.ts +0 -34
- package/skills/skill-destination-briefing/bin/cli.ts +0 -34
- package/skills/skill-diff-viewer/bin/cli.ts +0 -34
- package/skills/skill-domainpurchase/bin/cli.ts +0 -683
- package/skills/skill-domainsearch/bin/cli.ts +0 -410
- package/skills/skill-educational-resource-finder/bin/cli.ts +0 -34
- package/skills/skill-email-campaign/bin/cli.ts +0 -34
- package/skills/skill-exam-readiness-check/bin/cli.ts +0 -34
- package/skills/skill-experiment-power-calculator/bin/cli.ts +0 -34
- package/skills/skill-extract-audio/bin/cli.ts +0 -19
- package/skills/skill-extract-frames/bin/cli.ts +0 -34
- package/skills/skill-extract-invoice/bin/cli.ts +0 -34
- package/skills/skill-family-activity-curator/bin/cli.ts +0 -34
- package/skills/skill-faq-packager/bin/cli.ts +0 -34
- package/skills/skill-feedback-survey-designer/bin/cli.ts +0 -34
- package/skills/skill-field-trip-planner/bin/cli.ts +0 -34
- package/skills/skill-file-organizer/bin/cli.ts +0 -34
- package/skills/skill-folder-tree/bin/cli.ts +0 -34
- package/skills/skill-forecast-scenario-lab/bin/cli.ts +0 -34
- package/skills/skill-form-filler/bin/cli.ts +0 -34
- package/skills/skill-generate-api-client/bin/cli.ts +0 -34
- package/skills/skill-generate-book-cover/bin/cli.ts +0 -34
- package/skills/skill-generate-chart/bin/cli.ts +0 -34
- package/skills/skill-generate-diagram/bin/cli.ts +0 -34
- package/skills/skill-generate-dockerfile/bin/cli.ts +0 -34
- package/skills/skill-generate-documentation/bin/cli.ts +0 -34
- package/skills/skill-generate-docx/bin/cli.ts +0 -6
- package/skills/skill-generate-env/bin/cli.ts +0 -34
- package/skills/skill-generate-excel/bin/cli.ts +0 -34
- package/skills/skill-generate-favicon/bin/cli.ts +0 -34
- package/skills/skill-generate-mock-data/bin/cli.ts +0 -34
- package/skills/skill-generate-pdf/bin/cli.ts +0 -6
- package/skills/skill-generate-pr-description/bin/cli.ts +0 -34
- package/skills/skill-generate-presentation/bin/cli.ts +0 -34
- package/skills/skill-generate-qrcode/bin/cli.ts +0 -34
- package/skills/skill-generate-regex/bin/cli.ts +0 -34
- package/skills/skill-generate-resume/bin/cli.ts +0 -34
- package/skills/skill-generate-sitemap/bin/cli.ts +0 -34
- package/skills/skill-generate-social-posts/bin/cli.ts +0 -34
- package/skills/skill-generate-sql/bin/cli.ts +0 -34
- package/skills/skill-gif-maker/bin/cli.ts +0 -34
- package/skills/skill-github-manager/bin/cli.ts +0 -34
- package/skills/skill-gmail/bin/cli.ts +0 -34
- package/skills/skill-goal-quarterly-roadmap/bin/cli.ts +0 -34
- package/skills/skill-grant-application-drafter/bin/cli.ts +0 -34
- package/skills/skill-grocery-basket-optimizer/bin/cli.ts +0 -34
- package/skills/skill-guest-communication-suite/bin/cli.ts +0 -34
- package/skills/skill-habit-reflection-digest/bin/cli.ts +0 -34
- package/skills/skill-highlight-reel-generator/bin/cli.ts +0 -34
- package/skills/skill-homework-feedback-coach/bin/cli.ts +0 -34
- package/skills/skill-household-maintenance-mgr/bin/cli.ts +0 -34
- package/skills/skill-http-server/bin/cli.ts +0 -34
- package/skills/skill-implementation-agent/bin/cli.ts +0 -34
- package/skills/skill-implementation-plan/bin/cli.ts +0 -34
- package/skills/skill-implementation-todo/bin/cli.ts +0 -34
- package/skills/skill-inbox-priority-planner/bin/cli.ts +0 -34
- package/skills/skill-invoice/bin/cli.ts +0 -20
- package/skills/skill-invoice-dispute-helper/bin/cli.ts +0 -34
- package/skills/skill-itinerary-architect/bin/cli.ts +0 -34
- package/skills/skill-jingle-composer/bin/cli.ts +0 -34
- package/skills/skill-kpi-digest-generator/bin/cli.ts +0 -34
- package/skills/skill-lab-notebook-formatter/bin/cli.ts +0 -34
- package/skills/skill-landing-page-copy/bin/cli.ts +0 -34
- package/skills/skill-latex-table-generator/bin/cli.ts +0 -34
- package/skills/skill-learning-style-profiler/bin/cli.ts +0 -34
- package/skills/skill-lesson-plan-customizer/bin/cli.ts +0 -34
- package/skills/skill-livestream-runofshow/bin/cli.ts +0 -34
- package/skills/skill-longform-structurer/bin/cli.ts +0 -34
- package/skills/skill-lorem-generator/bin/cli.ts +0 -34
- package/skills/skill-managehook/bin/cli.ts +0 -241
- package/skills/skill-managemcp/bin/cli.ts +0 -241
- package/skills/skill-manageskill/bin/cli.ts +0 -241
- package/skills/skill-markdown-validator/bin/cli.ts +0 -34
- package/skills/skill-mcp-builder/bin/cli.ts +0 -34
- package/skills/skill-meal-plan-designer/bin/cli.ts +0 -34
- package/skills/skill-meeting-insight-summarizer/bin/cli.ts +0 -34
- package/skills/skill-merge-pdfs/bin/cli.ts +0 -34
- package/skills/skill-microcopy-generator/bin/cli.ts +0 -34
- package/skills/skill-mindfulness-prompt-cache/bin/cli.ts +0 -34
- package/skills/skill-notion-manager/bin/cli.ts +0 -34
- package/skills/skill-onboarding-sequence-builder/bin/cli.ts +0 -34
- package/skills/skill-onsite-ops-checklist/bin/cli.ts +0 -34
- package/skills/skill-outreach-cadence-designer/bin/cli.ts +0 -34
- package/skills/skill-packaging-concept-studio/bin/cli.ts +0 -34
- package/skills/skill-packing-plan-pro/bin/cli.ts +0 -34
- package/skills/skill-parent-teacher-brief/bin/cli.ts +0 -34
- package/skills/skill-partner-kit-assembler/bin/cli.ts +0 -34
- package/skills/skill-payroll-change-prepper/bin/cli.ts +0 -34
- package/skills/skill-persona-based-adwriter/bin/cli.ts +0 -34
- package/skills/skill-persona-generator/bin/cli.ts +0 -34
- package/skills/skill-personal-daily-ops/bin/cli.ts +0 -34
- package/skills/skill-pet-care-scheduler/bin/cli.ts +0 -34
- package/skills/skill-podcast-show-notes/bin/cli.ts +0 -34
- package/skills/skill-presentation-theme-maker/bin/cli.ts +0 -34
- package/skills/skill-press-release-drafter/bin/cli.ts +0 -34
- package/skills/skill-print-collateral-designer/bin/cli.ts +0 -34
- package/skills/skill-procurement-scorecard/bin/cli.ts +0 -34
- package/skills/skill-product-demo-script/bin/cli.ts +0 -34
- package/skills/skill-product-mockup/bin/cli.ts +0 -34
- package/skills/skill-project-retro-companion/bin/cli.ts +0 -34
- package/skills/skill-proposal-redline-advisor/bin/cli.ts +0 -34
- package/skills/skill-regex-tester/bin/cli.ts +0 -34
- package/skills/skill-remove-background/bin/cli.ts +0 -34
- package/skills/skill-risk-disclosure-kit/bin/cli.ts +0 -34
- package/skills/skill-roi-comparison-tool/bin/cli.ts +0 -34
- package/skills/skill-sales-call-recapper/bin/cli.ts +0 -34
- package/skills/skill-salescopy/bin/cli.ts +0 -20
- package/skills/skill-scaffold-project/bin/cli.ts +0 -34
- package/skills/skill-scholarship-tracker/bin/cli.ts +0 -34
- package/skills/skill-scientific-figure-check/bin/cli.ts +0 -34
- package/skills/skill-seating-chart-maker/bin/cli.ts +0 -34
- package/skills/skill-security-audit/bin/cli.ts +0 -34
- package/skills/skill-seo-brief-builder/bin/cli.ts +0 -34
- package/skills/skill-slack-assistant/bin/cli.ts +0 -34
- package/skills/skill-sleep-routine-analyzer/bin/cli.ts +0 -34
- package/skills/skill-social-media-kit/bin/cli.ts +0 -34
- package/skills/skill-split-pdf/bin/cli.ts +0 -34
- package/skills/skill-sponsorship-proposal-lab/bin/cli.ts +0 -34
- package/skills/skill-spreadsheet-cleanroom/bin/cli.ts +0 -34
- package/skills/skill-statistical-test-selector/bin/cli.ts +0 -34
- package/skills/skill-stress-relief-playbook/bin/cli.ts +0 -34
- package/skills/skill-study-guide-builder/bin/cli.ts +0 -34
- package/skills/skill-subscription-spend-watcher/bin/cli.ts +0 -34
- package/skills/skill-subtitle/bin/cli.ts +0 -20
- package/skills/skill-survey-insight-extractor/bin/cli.ts +0 -34
- package/skills/skill-terraform-generator/bin/cli.ts +0 -34
- package/skills/skill-testimonial-graphics/bin/cli.ts +0 -34
- package/skills/skill-timesheet/bin/cli.ts +0 -47
- package/skills/skill-travel-budget-balancer/bin/cli.ts +0 -34
- package/skills/skill-validate-config/bin/cli.ts +0 -34
- package/skills/skill-video-cut-suggester/bin/cli.ts +0 -34
- package/skills/skill-video-downloader/bin/cli.ts +0 -34
- package/skills/skill-video-thumbnail/bin/cli.ts +0 -34
- package/skills/skill-voiceover-casting-assistant/bin/cli.ts +0 -34
- package/skills/skill-watermark/bin/cli.ts +0 -34
- package/skills/skill-webcrawling/bin/cli.ts +0 -21
- package/skills/skill-webinar-script-coach/bin/cli.ts +0 -34
- package/skills/skill-wellness-progress-reporter/bin/cli.ts +0 -34
- package/skills/skill-workout-cycle-planner/bin/cli.ts +0 -34
package/README.md
CHANGED
|
@@ -1,436 +1,54 @@
|
|
|
1
1
|
# @hasna/skills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Skills library for AI coding agents
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## Features
|
|
10
|
-
|
|
11
|
-
- **202 ready-to-use skills** across development, business, content, data, media, design, and more
|
|
12
|
-
- **Interactive TUI** -- browse by category, search, and install from the terminal
|
|
13
|
-
- **MCP server** -- 10 tools and 2 resources for AI agent integration
|
|
14
|
-
- **HTTP dashboard** -- React web UI to browse, search, install, and manage skills
|
|
15
|
-
- **Agent-aware installs** -- copies SKILL.md to `~/.claude/skills/`, `~/.codex/skills/`, or `~/.gemini/skills/`
|
|
16
|
-
- **Auto-generated index** -- `.skills/index.ts` is updated on every install for easy imports
|
|
17
|
-
- **Library exports** -- use the registry, installer, and skill info programmatically
|
|
5
|
+
[](https://www.npmjs.com/package/@hasna/skills)
|
|
6
|
+
[](LICENSE)
|
|
18
7
|
|
|
19
|
-
##
|
|
8
|
+
## Install
|
|
20
9
|
|
|
21
10
|
```bash
|
|
22
|
-
|
|
23
|
-
bun install -g @hasna/skills
|
|
24
|
-
|
|
25
|
-
# Or use npx (no install needed)
|
|
26
|
-
npx @hasna/skills
|
|
27
|
-
|
|
28
|
-
# Or install as a project dependency
|
|
29
|
-
bun add @hasna/skills
|
|
11
|
+
npm install -g @hasna/skills
|
|
30
12
|
```
|
|
31
13
|
|
|
32
|
-
##
|
|
14
|
+
## CLI Usage
|
|
33
15
|
|
|
34
16
|
```bash
|
|
35
|
-
|
|
36
|
-
skills
|
|
37
|
-
|
|
38
|
-
# Search for skills
|
|
39
|
-
skills search "image generation"
|
|
40
|
-
|
|
41
|
-
# Install skills to .skills/ in your project
|
|
42
|
-
skills install image deep-research generate-pdf
|
|
43
|
-
|
|
44
|
-
# Install a skill for Claude Code (copies SKILL.md)
|
|
45
|
-
skills install image --for claude
|
|
46
|
-
|
|
47
|
-
# Get skill details
|
|
48
|
-
skills info image
|
|
49
|
-
|
|
50
|
-
# Run a skill directly
|
|
51
|
-
skills run image --prompt "a sunset over mountains"
|
|
52
|
-
|
|
53
|
-
# Start the web dashboard
|
|
54
|
-
skills serve
|
|
55
|
-
|
|
56
|
-
# Smart init: detect project type and install skills for Claude
|
|
57
|
-
skills init --for claude
|
|
58
|
-
|
|
59
|
-
# Browse skills by tag
|
|
60
|
-
skills list --tags api,testing
|
|
17
|
+
skills --help
|
|
61
18
|
```
|
|
62
19
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| Data & Analysis | 12 | analyze-data, extract, dashboard-builder, generate-chart |
|
|
73
|
-
| Productivity & Organization | 11 | convert, merge-pdfs, file-organizer, notion-manager |
|
|
74
|
-
| Design & Branding | 11 | brand-style-guide, generate-favicon, product-mockup |
|
|
75
|
-
| Research & Writing | 10 | deepresearch, write, create-blog-article, create-ebook |
|
|
76
|
-
| Science & Academic | 10 | advanced-math, chemistry-calculator, citation-formatter |
|
|
77
|
-
| Education & Learning | 10 | study-guide-builder, lesson-plan-customizer, exam-readiness-check |
|
|
78
|
-
| Project Management | 9 | implementation, implementation-plan, action-item-router |
|
|
79
|
-
| Health & Wellness | 8 | meal-plan-designer, workout-cycle-planner, habit-reflection-digest |
|
|
80
|
-
| Travel & Lifestyle | 7 | itinerary-architect, destination-briefing, travel-budget-balancer |
|
|
81
|
-
| Communication | 4 | gmail, slack-assistant, sms, calendar-events |
|
|
82
|
-
| Web & Browser | 4 | browse, webcrawling, domainsearch, domainpurchase |
|
|
83
|
-
| Event Management | 4 | seating-chart-maker, livestream-runofshow, onsite-ops-checklist |
|
|
84
|
-
|
|
85
|
-
## CLI Commands
|
|
86
|
-
|
|
87
|
-
| Command | Alias | Description |
|
|
88
|
-
|---------|-------|-------------|
|
|
89
|
-
| `skills` | `skills i` | Interactive TUI browser (default) |
|
|
90
|
-
| `skills install <names...>` | `skills add` | Install one or more skills to `.skills/` |
|
|
91
|
-
| `skills install <name> --for <agent>` | | Install SKILL.md for claude, codex, gemini, or all |
|
|
92
|
-
| `skills remove <name>` | `skills rm` | Remove an installed skill |
|
|
93
|
-
| `skills list` | `skills ls` | List all available skills (supports `--tags` to filter by tags) |
|
|
94
|
-
| `skills list --category <cat>` | | List skills in a category |
|
|
95
|
-
| `skills list --installed` | | List installed skills |
|
|
96
|
-
| `skills search <query>` | | Search skills by name, description, or tags (supports `--tags` to filter by tags) |
|
|
97
|
-
| `skills info <name>` | | Show skill metadata, requirements, and env vars |
|
|
98
|
-
| `skills docs <name>` | | Show skill documentation (SKILL.md/README.md/CLAUDE.md) |
|
|
99
|
-
| `skills requires <name>` | | Show env vars, system deps, and npm dependencies |
|
|
100
|
-
| `skills run <name> [args...]` | | Run a skill directly |
|
|
101
|
-
| `skills categories` | | List all categories with counts |
|
|
102
|
-
| `skills tags` | | List all tags with skill counts |
|
|
103
|
-
| `skills init` | | Initialize project, detect deps, and optionally install for agents |
|
|
104
|
-
| `skills update [names...]` | | Update installed skills (reinstall with overwrite) |
|
|
105
|
-
| `skills serve` | | Start the HTTP dashboard (auto-assigns free port) |
|
|
106
|
-
| `skills mcp` | | Start the MCP server on stdio |
|
|
107
|
-
| `skills mcp --register <agent>` | | Register MCP server with claude, codex, gemini, or all |
|
|
108
|
-
| `skills self-update` | | Update `@hasna/skills` to the latest version |
|
|
109
|
-
|
|
110
|
-
All list/search/info commands support `--json` for machine-readable output. Search uses fuzzy matching -- typos and abbreviations are tolerated.
|
|
20
|
+
- `skills install`
|
|
21
|
+
- `skills list`
|
|
22
|
+
- `skills search`
|
|
23
|
+
- `skills info`
|
|
24
|
+
- `skills docs`
|
|
25
|
+
- `skills run`
|
|
26
|
+
- `skills remove`
|
|
27
|
+
- `skills categories`
|
|
28
|
+
- `skills tags`
|
|
111
29
|
|
|
112
30
|
## MCP Server
|
|
113
31
|
|
|
114
|
-
The MCP server exposes the full skill library to AI agents over stdio.
|
|
115
|
-
|
|
116
|
-
### Starting the server
|
|
117
|
-
|
|
118
32
|
```bash
|
|
119
|
-
# Via CLI
|
|
120
|
-
skills mcp
|
|
121
|
-
|
|
122
|
-
# Direct binary
|
|
123
33
|
skills-mcp
|
|
124
|
-
|
|
125
|
-
# Register with Claude Code
|
|
126
|
-
skills mcp --register claude
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Configuration for Claude Code
|
|
130
|
-
|
|
131
|
-
Add to your MCP config:
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"mcpServers": {
|
|
136
|
-
"skills": {
|
|
137
|
-
"command": "skills-mcp"
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
34
|
```
|
|
142
35
|
|
|
143
|
-
|
|
36
|
+
5 tools available.
|
|
144
37
|
|
|
145
|
-
|
|
146
|
-
|------|-------------|
|
|
147
|
-
| `list_skills` | List all skills, optionally filtered by category |
|
|
148
|
-
| `search_skills` | Search skills by query (name, description, tags) |
|
|
149
|
-
| `get_skill_info` | Get skill metadata including requirements and env vars |
|
|
150
|
-
| `get_skill_docs` | Get documentation (SKILL.md, README.md, or CLAUDE.md) |
|
|
151
|
-
| `install_skill` | Install a skill (full source to `.skills/` or SKILL.md to agent dir) |
|
|
152
|
-
| `remove_skill` | Remove an installed skill |
|
|
153
|
-
| `list_categories` | List all categories with skill counts |
|
|
154
|
-
| `list_tags` | List all skill tags with counts |
|
|
155
|
-
| `get_requirements` | Get env vars, system deps, and npm dependencies |
|
|
156
|
-
| `run_skill` | Run a skill by name with optional arguments |
|
|
38
|
+
## Cloud Sync
|
|
157
39
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| URI | Description |
|
|
161
|
-
|-----|-------------|
|
|
162
|
-
| `skills://registry` | Full skill registry as JSON |
|
|
163
|
-
| `skills://{name}` | Individual skill metadata and documentation |
|
|
164
|
-
|
|
165
|
-
## HTTP Dashboard
|
|
166
|
-
|
|
167
|
-
A React web UI for browsing, searching, and managing skills.
|
|
40
|
+
This package supports cloud sync via `@hasna/cloud`:
|
|
168
41
|
|
|
169
42
|
```bash
|
|
170
|
-
|
|
171
|
-
skills
|
|
172
|
-
|
|
173
|
-
# Custom port
|
|
174
|
-
skills serve --port 8080
|
|
175
|
-
|
|
176
|
-
# Don't auto-open browser
|
|
177
|
-
skills serve --no-open
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
The dashboard picks a random free port automatically (or use `--port` to pin one) and provides:
|
|
181
|
-
|
|
182
|
-
- Searchable, sortable skills table with category filters
|
|
183
|
-
- Skill detail dialog with documentation, tags, and requirements
|
|
184
|
-
- One-click install and remove
|
|
185
|
-
- Dark/light/system theme toggle
|
|
186
|
-
- Self-update button
|
|
187
|
-
|
|
188
|
-
### REST API
|
|
189
|
-
|
|
190
|
-
The dashboard server also exposes a REST API:
|
|
191
|
-
|
|
192
|
-
| Endpoint | Method | Description |
|
|
193
|
-
|----------|--------|-------------|
|
|
194
|
-
| `/api/skills` | GET | All skills with install status |
|
|
195
|
-
| `/api/categories` | GET | Categories with counts |
|
|
196
|
-
| `/api/skills/search?q=` | GET | Search skills |
|
|
197
|
-
| `/api/skills/:name` | GET | Single skill detail with docs |
|
|
198
|
-
| `/api/skills/:name/docs` | GET | Raw documentation text |
|
|
199
|
-
| `/api/skills/:name/install` | POST | Install a skill |
|
|
200
|
-
| `/api/skills/:name/remove` | POST | Remove a skill |
|
|
201
|
-
| `/api/tags` | GET | All tags with skill counts |
|
|
202
|
-
| `/api/version` | GET | Current package version |
|
|
203
|
-
| `/api/self-update` | POST | Update to latest version |
|
|
204
|
-
|
|
205
|
-
## Library Usage
|
|
206
|
-
|
|
207
|
-
Use the registry, installer, and skill info modules programmatically:
|
|
208
|
-
|
|
209
|
-
```typescript
|
|
210
|
-
import {
|
|
211
|
-
SKILLS,
|
|
212
|
-
CATEGORIES,
|
|
213
|
-
searchSkills,
|
|
214
|
-
getSkill,
|
|
215
|
-
getSkillsByCategory,
|
|
216
|
-
} from "@hasna/skills";
|
|
217
|
-
|
|
218
|
-
// Search skills
|
|
219
|
-
const results = searchSkills("image");
|
|
220
|
-
|
|
221
|
-
// Get skills in a category
|
|
222
|
-
const devTools = getSkillsByCategory("Development Tools");
|
|
223
|
-
|
|
224
|
-
// Get a specific skill
|
|
225
|
-
const skill = getSkill("image");
|
|
226
|
-
// => { name: "image", displayName: "Image", description: "...", category: "Content Generation", tags: [...] }
|
|
43
|
+
cloud setup
|
|
44
|
+
cloud sync push --service skills
|
|
45
|
+
cloud sync pull --service skills
|
|
227
46
|
```
|
|
228
47
|
|
|
229
|
-
|
|
230
|
-
import {
|
|
231
|
-
installSkill,
|
|
232
|
-
installSkillForAgent,
|
|
233
|
-
removeSkill,
|
|
234
|
-
getInstalledSkills,
|
|
235
|
-
} from "@hasna/skills";
|
|
236
|
-
|
|
237
|
-
// Install a skill to .skills/
|
|
238
|
-
const result = installSkill("image");
|
|
239
|
-
// => { skill: "image", success: true, path: "/path/to/.skills/skill-image" }
|
|
240
|
-
|
|
241
|
-
// Install SKILL.md for Claude Code
|
|
242
|
-
installSkillForAgent("image", { agent: "claude", scope: "global" });
|
|
243
|
-
|
|
244
|
-
// List installed skills
|
|
245
|
-
const installed = getInstalledSkills();
|
|
246
|
-
// => ["image", "deep-research"]
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
```typescript
|
|
250
|
-
import {
|
|
251
|
-
getSkillDocs,
|
|
252
|
-
getSkillRequirements,
|
|
253
|
-
runSkill,
|
|
254
|
-
} from "@hasna/skills";
|
|
255
|
-
|
|
256
|
-
// Read documentation
|
|
257
|
-
const docs = getSkillDocs("image");
|
|
258
|
-
// => { skillMd: "...", readme: "...", claudeMd: "..." }
|
|
259
|
-
|
|
260
|
-
// Check requirements
|
|
261
|
-
const reqs = getSkillRequirements("image");
|
|
262
|
-
// => { envVars: ["OPENAI_API_KEY"], systemDeps: [], cliCommand: "image", dependencies: {...} }
|
|
263
|
-
|
|
264
|
-
// Run a skill
|
|
265
|
-
const { exitCode } = await runSkill("image", ["--prompt", "a cat"]);
|
|
266
|
-
```
|
|
48
|
+
## Data Directory
|
|
267
49
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
Each skill is a self-contained directory under `skills/skill-{name}/`:
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
skills/skill-{name}/
|
|
274
|
-
├── src/
|
|
275
|
-
│ ├── index.ts # Main entry point / programmatic API
|
|
276
|
-
│ ├── commands/ # CLI command handlers (optional)
|
|
277
|
-
│ ├── lib/ # Core logic
|
|
278
|
-
│ ├── types/ # TypeScript types
|
|
279
|
-
│ └── utils/ # Utility functions
|
|
280
|
-
├── SKILL.md # Skill definition (used by agent installs)
|
|
281
|
-
├── README.md # Usage documentation
|
|
282
|
-
├── CLAUDE.md # Development guide (optional)
|
|
283
|
-
├── package.json # Dependencies and bin entry
|
|
284
|
-
└── tsconfig.json # Extends skills/tsconfig.base.json
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Key files:
|
|
288
|
-
|
|
289
|
-
- **SKILL.md** -- the primary doc file, copied to agent skill directories on `--for` installs. Contains frontmatter (name, description) and usage instructions.
|
|
290
|
-
- **package.json** -- must have a `bin` entry for the skill to be runnable via `skills run`.
|
|
291
|
-
- **src/index.ts** -- exported in the auto-generated `.skills/index.ts` when installed.
|
|
292
|
-
|
|
293
|
-
## Using Installed Skills
|
|
294
|
-
|
|
295
|
-
After installing, skills are available via the auto-generated index:
|
|
296
|
-
|
|
297
|
-
```typescript
|
|
298
|
-
import { image, deep_research } from "./.skills";
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
Or import directly:
|
|
302
|
-
|
|
303
|
-
```typescript
|
|
304
|
-
import { generateImage } from "./.skills/skill-image/src/index.js";
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
## Creating a Custom Skill
|
|
308
|
-
|
|
309
|
-
1. Create the skill directory:
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
mkdir -p skills/skill-my-skill/src
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
2. Add `package.json`:
|
|
316
|
-
|
|
317
|
-
```json
|
|
318
|
-
{
|
|
319
|
-
"name": "skill-my-skill",
|
|
320
|
-
"version": "0.0.1",
|
|
321
|
-
"bin": { "my-skill": "./src/index.ts" },
|
|
322
|
-
"dependencies": {}
|
|
323
|
-
}
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
3. Add `SKILL.md` with frontmatter:
|
|
327
|
-
|
|
328
|
-
```markdown
|
|
329
|
-
---
|
|
330
|
-
name: my-skill
|
|
331
|
-
description: What this skill does
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
# My Skill
|
|
335
|
-
|
|
336
|
-
Usage instructions here.
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
4. Add `src/index.ts` with your logic.
|
|
340
|
-
|
|
341
|
-
5. Register in `src/lib/registry.ts`:
|
|
342
|
-
|
|
343
|
-
```typescript
|
|
344
|
-
{
|
|
345
|
-
name: "my-skill",
|
|
346
|
-
displayName: "My Skill",
|
|
347
|
-
description: "What this skill does",
|
|
348
|
-
category: "Development Tools",
|
|
349
|
-
tags: ["my", "skill"],
|
|
350
|
-
}
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
6. Run tests to validate:
|
|
354
|
-
|
|
355
|
-
```bash
|
|
356
|
-
bun test
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
## Development
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
# Install dependencies
|
|
363
|
-
bun install
|
|
364
|
-
|
|
365
|
-
# Run CLI in dev mode
|
|
366
|
-
bun run dev
|
|
367
|
-
|
|
368
|
-
# Build CLI, MCP server, and library
|
|
369
|
-
bun run build
|
|
370
|
-
|
|
371
|
-
# Type check
|
|
372
|
-
bun run typecheck
|
|
373
|
-
|
|
374
|
-
# Run all tests
|
|
375
|
-
bun test
|
|
376
|
-
|
|
377
|
-
# Build the dashboard
|
|
378
|
-
bun run dashboard:build
|
|
379
|
-
|
|
380
|
-
# Run dashboard dev server
|
|
381
|
-
bun run dashboard:dev
|
|
382
|
-
|
|
383
|
-
# Start HTTP server (with dashboard)
|
|
384
|
-
bun run server:dev
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
## Architecture
|
|
388
|
-
|
|
389
|
-
```
|
|
390
|
-
src/
|
|
391
|
-
├── cli/
|
|
392
|
-
│ ├── index.tsx # Commander.js CLI + Ink TUI
|
|
393
|
-
│ ├── cli.test.ts # CLI integration tests
|
|
394
|
-
│ └── components/
|
|
395
|
-
│ └── App.tsx # Interactive TUI (React/Ink)
|
|
396
|
-
├── mcp/
|
|
397
|
-
│ ├── index.ts # MCP server (stdio transport)
|
|
398
|
-
│ └── mcp.test.ts # MCP integration tests
|
|
399
|
-
├── server/
|
|
400
|
-
│ ├── serve.ts # Bun HTTP server + REST API
|
|
401
|
-
│ └── serve.test.ts # Server tests
|
|
402
|
-
├── lib/
|
|
403
|
-
│ ├── registry.ts # SKILLS array (202) + CATEGORIES (17)
|
|
404
|
-
│ ├── installer.ts # Install/remove to .skills/ and agent dirs
|
|
405
|
-
│ ├── skillinfo.ts # Docs, requirements, env vars, run
|
|
406
|
-
│ ├── utils.ts # normalizeSkillName()
|
|
407
|
-
│ ├── registry.test.ts # Registry tests
|
|
408
|
-
│ ├── installer.test.ts # Installer tests
|
|
409
|
-
│ ├── skillinfo.test.ts # Skill info tests
|
|
410
|
-
│ ├── skillinfo-run.test.ts # Skill run tests
|
|
411
|
-
│ ├── utils.test.ts # Utils tests
|
|
412
|
-
│ └── validation.test.ts # Structural validation (all 202 skills)
|
|
413
|
-
├── index.ts # Library re-exports
|
|
414
|
-
└── index.test.ts # Library export tests
|
|
415
|
-
|
|
416
|
-
dashboard/ # Vite + React 19 + Tailwind v4 + shadcn/ui
|
|
417
|
-
├── src/components/
|
|
418
|
-
│ ├── skills-table.tsx # Main skills table (TanStack Table)
|
|
419
|
-
│ ├── skill-detail-dialog.tsx# Skill detail dialog
|
|
420
|
-
│ ├── stats-cards.tsx # Summary cards
|
|
421
|
-
│ ├── theme-provider.tsx # Dark/light/system theme
|
|
422
|
-
│ ├── theme-toggle.tsx # Theme toggle button
|
|
423
|
-
│ └── ui/ # shadcn/ui primitives
|
|
424
|
-
└── package.json
|
|
425
|
-
|
|
426
|
-
skills/ # 202 self-contained skill directories
|
|
427
|
-
├── _common/ # Shared utilities
|
|
428
|
-
├── skill-image/
|
|
429
|
-
├── skill-deep-research/
|
|
430
|
-
├── ...
|
|
431
|
-
└── tsconfig.base.json # Shared TS config for skills
|
|
432
|
-
```
|
|
50
|
+
Data is stored in `~/.hasna/skills/`.
|
|
433
51
|
|
|
434
52
|
## License
|
|
435
53
|
|
|
436
|
-
Apache-2.0
|
|
54
|
+
Apache-2.0 -- see [LICENSE](LICENSE)
|