agent-skill-manager 1.0.0

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.
@@ -0,0 +1,59 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment:
18
+
19
+ - Demonstrating empathy and kindness toward other people
20
+ - Being respectful of differing opinions, viewpoints, and experiences
21
+ - Giving and gracefully accepting constructive feedback
22
+ - Accepting responsibility and apologizing to those affected by our mistakes
23
+ - Focusing on what is best for the overall community
24
+
25
+ Examples of unacceptable behavior:
26
+
27
+ - The use of sexualized language or imagery, and sexual attention or advances
28
+ - Trolling, insulting or derogatory comments, and personal or political attacks
29
+ - Public or private harassment
30
+ - Publishing others' private information without explicit permission
31
+ - Other conduct which could reasonably be considered inappropriate
32
+
33
+ ## Enforcement Responsibilities
34
+
35
+ Community leaders are responsible for clarifying and enforcing our standards of
36
+ acceptable behavior and will take appropriate and fair corrective action in
37
+ response to any behavior that they deem inappropriate, threatening, offensive,
38
+ or harmful.
39
+
40
+ ## Scope
41
+
42
+ This Code of Conduct applies within all community spaces, and also applies when
43
+ an individual is officially representing the community in public spaces.
44
+
45
+ ## Enforcement
46
+
47
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
48
+ reported to the project maintainers via
49
+ [GitHub Issues](https://github.com/luongnv89/skill-manager/issues).
50
+
51
+ All complaints will be reviewed and investigated promptly and fairly.
52
+
53
+ ## Attribution
54
+
55
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
56
+ version 2.0, available at
57
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
58
+
59
+ [homepage]: https://www.contributor-covenant.org
@@ -0,0 +1,92 @@
1
+ # Contributing to skill-manager
2
+
3
+ Thanks for your interest in contributing! This guide will help you get started.
4
+
5
+ ## Getting Started
6
+
7
+ ### Prerequisites
8
+
9
+ - [Bun](https://bun.sh) >= 1.0.0
10
+ - [Git](https://git-scm.com/)
11
+
12
+ ### Development Setup
13
+
14
+ ```bash
15
+ git clone https://github.com/luongnv89/skill-manager.git
16
+ cd skill-manager
17
+ bun install
18
+ bun run start # Launch the TUI
19
+ ```
20
+
21
+ ### Running Tests
22
+
23
+ ```bash
24
+ bun test # Run all tests
25
+ bun run typecheck # Type-check without emitting
26
+ ```
27
+
28
+ ## How to Contribute
29
+
30
+ ### Reporting Bugs
31
+
32
+ Open a [bug report](https://github.com/luongnv89/skill-manager/issues/new?template=bug_report.md) with:
33
+
34
+ - Steps to reproduce
35
+ - Expected vs. actual behavior
36
+ - Your environment (OS, Bun version)
37
+
38
+ ### Suggesting Features
39
+
40
+ Open a [feature request](https://github.com/luongnv89/skill-manager/issues/new?template=feature_request.md) describing the problem and your proposed solution.
41
+
42
+ ### Submitting Code
43
+
44
+ 1. Fork the repository
45
+ 2. Create a feature branch from `main`:
46
+ ```bash
47
+ git checkout -b feat/your-feature
48
+ ```
49
+ 3. Make your changes
50
+ 4. Run tests and type-checking:
51
+ ```bash
52
+ bun test
53
+ bun run typecheck
54
+ ```
55
+ 5. Commit using [Conventional Commits](https://www.conventionalcommits.org/):
56
+ ```
57
+ feat: add new provider type
58
+ fix: handle missing config directory
59
+ docs: update keyboard shortcuts table
60
+ ```
61
+ 6. Push and open a Pull Request against `main`
62
+
63
+ ### Branching Strategy
64
+
65
+ - `main` — stable, release-ready code
66
+ - `feat/*` — new features
67
+ - `fix/*` — bug fixes
68
+ - `docs/*` — documentation changes
69
+
70
+ ### Code Style
71
+
72
+ - TypeScript strict mode (`tsconfig.json` has `"strict": true`)
73
+ - Pre-commit hooks handle formatting via Prettier
74
+ - Keep functions focused and files small
75
+ - Follow existing patterns in the codebase
76
+
77
+ ### Testing
78
+
79
+ - Tests live alongside source files (`*.test.ts`)
80
+ - Use the Bun test runner (`bun test`)
81
+ - Add tests for new logic, especially in `scanner.ts`, `config.ts`, and `uninstaller.ts`
82
+
83
+ ## Pull Request Process
84
+
85
+ 1. Fill out the PR template
86
+ 2. Ensure CI passes (type-check + tests)
87
+ 3. Keep PRs focused — one feature or fix per PR
88
+ 4. A maintainer will review and merge
89
+
90
+ ## Code of Conduct
91
+
92
+ This project follows the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 luongnv89
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,187 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo/logo-full.svg" />
4
+ <source media="(prefers-color-scheme: light)" srcset="assets/logo/logo-black.svg" />
5
+ <img src="assets/logo/logo-full.svg" alt="skill-manager" width="480" />
6
+ </picture>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <em>The universal skill manager for AI coding agents.</em>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="#install">Install</a> &middot;
15
+ <a href="#usage">Usage</a> &middot;
16
+ <a href="#configuration">Configuration</a> &middot;
17
+ <a href="CONTRIBUTING.md">Contributing</a> &middot;
18
+ <a href="LICENSE">License</a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License" /></a>
23
+ <a href="https://bun.sh"><img src="https://img.shields.io/badge/runtime-Bun%20%E2%89%A5%201.0-black.svg" alt="Bun" /></a>
24
+ </p>
25
+
26
+ ---
27
+
28
+ **skill-manager** is an interactive terminal UI for managing installed skills across AI coding agents — [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://github.com/openai/codex), [OpenClaw](https://github.com/openclaw), and more. Built with [OpenTUI](https://github.com/nicholasgasior/opentui) and [Bun](https://bun.sh).
29
+
30
+ ## Features
31
+
32
+ - **Multi-agent support** — Manage skills for Claude Code, Codex, OpenClaw, and custom agent tools from one TUI
33
+ - **Configurable providers** — Define which agent tool directories to scan via `~/.config/skill-manager/config.json`
34
+ - **Global & project scopes** — Filter skills by global (`~/.<tool>/skills/`) or project-level (`./<tool>/skills/`)
35
+ - **Real-time search** — Filter skills by name, description, or provider
36
+ - **Sort** — By name, version, or location
37
+ - **Detailed skill view** — Metadata from SKILL.md frontmatter including provider, path, symlink info
38
+ - **Safe uninstall** — Confirmation dialog, removes skill directories, rule files, and AGENTS.md blocks
39
+ - **In-TUI config editor** — Toggle providers on/off, or open config in `$EDITOR`
40
+
41
+ ## Install
42
+
43
+ **Prerequisites:** [Bun](https://bun.sh) >= 1.0.0
44
+
45
+ ```bash
46
+ bun install -g agent-skill-manager
47
+ ```
48
+
49
+ Or run directly from source:
50
+
51
+ ```bash
52
+ git clone https://github.com/luongnv89/skill-manager.git
53
+ cd skill-manager
54
+ bun install
55
+ bun run start
56
+ ```
57
+
58
+ ## Usage
59
+
60
+ ```bash
61
+ skill-manager # Launch the interactive TUI
62
+ skill-manager --help # Show help
63
+ skill-manager --version # Show version
64
+ ```
65
+
66
+ ## Keyboard Shortcuts
67
+
68
+ | Key | Action |
69
+ | -------------- | ------------------------------------- |
70
+ | `↑/↓` or `j/k` | Navigate skill list |
71
+ | `Enter` | View skill details |
72
+ | `d` | Uninstall selected skill |
73
+ | `/` | Search / filter skills |
74
+ | `Esc` | Back / clear filter / close dialog |
75
+ | `Tab` | Cycle scope: Global → Project → Both |
76
+ | `s` | Cycle sort: Name → Version → Location |
77
+ | `r` | Refresh / rescan skills |
78
+ | `c` | Open configuration |
79
+ | `q` | Quit |
80
+ | `?` | Toggle help overlay |
81
+
82
+ ## Configuration
83
+
84
+ On first run, a config file is created at `~/.config/skill-manager/config.json` with default providers:
85
+
86
+ ```json
87
+ {
88
+ "version": 1,
89
+ "providers": [
90
+ {
91
+ "name": "claude",
92
+ "label": "Claude Code",
93
+ "global": "~/.claude/skills",
94
+ "project": ".claude/skills",
95
+ "enabled": true
96
+ },
97
+ {
98
+ "name": "codex",
99
+ "label": "Codex",
100
+ "global": "~/.codex/skills",
101
+ "project": ".codex/skills",
102
+ "enabled": true
103
+ },
104
+ {
105
+ "name": "openclaw",
106
+ "label": "OpenClaw",
107
+ "global": "~/.openclaw/skills",
108
+ "project": ".openclaw/skills",
109
+ "enabled": true
110
+ },
111
+ {
112
+ "name": "agents",
113
+ "label": "Agents",
114
+ "global": "~/.agents/skills",
115
+ "project": ".agents/skills",
116
+ "enabled": true
117
+ }
118
+ ],
119
+ "customPaths": [],
120
+ "preferences": {
121
+ "defaultScope": "both",
122
+ "defaultSort": "name"
123
+ }
124
+ }
125
+ ```
126
+
127
+ - **Add providers** — Add new entries to the `providers` array for any agent tool
128
+ - **Custom paths** — Add arbitrary directories via `customPaths`
129
+ - **Disable providers** — Set `enabled: false` to skip scanning a provider
130
+ - **Preferences** — Set default scope and sort order
131
+
132
+ You can also toggle providers on/off directly in the TUI by pressing `c`.
133
+
134
+ ## Supported Agent Tools
135
+
136
+ | Tool | Global Path | Project Path |
137
+ | ---------------- | --------------------- | ------------------- |
138
+ | Claude Code | `~/.claude/skills/` | `.claude/skills/` |
139
+ | Codex | `~/.codex/skills/` | `.codex/skills/` |
140
+ | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` |
141
+ | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` |
142
+
143
+ Additional tools can be added via the config file.
144
+
145
+ ## Project Structure
146
+
147
+ ```
148
+ skill-manager/
149
+ ├── bin/ # CLI entry point
150
+ │ └── skill-manager.ts
151
+ ├── src/
152
+ │ ├── index.ts # App bootstrap & keyboard handling
153
+ │ ├── config.ts # Config loading & saving
154
+ │ ├── scanner.ts # Skill directory scanning & filtering
155
+ │ ├── uninstaller.ts # Safe skill removal logic
156
+ │ ├── utils/
157
+ │ │ ├── types.ts # Shared TypeScript types
158
+ │ │ ├── colors.ts # TUI color palette
159
+ │ │ └── frontmatter.ts # SKILL.md frontmatter parser
160
+ │ └── views/
161
+ │ ├── dashboard.ts # Main dashboard layout
162
+ │ ├── skill-list.ts # Scrollable skill list
163
+ │ ├── skill-detail.ts # Skill detail overlay
164
+ │ ├── confirm.ts # Uninstall confirmation dialog
165
+ │ ├── config.ts # In-TUI config editor
166
+ │ └── help.ts # Help overlay
167
+ ├── docs/ # Extended documentation
168
+ ├── package.json
169
+ ├── tsconfig.json
170
+ └── README.md
171
+ ```
172
+
173
+ ## Tech Stack
174
+
175
+ - **Runtime:** [Bun](https://bun.sh) >= 1.0.0
176
+ - **Language:** TypeScript (ESNext, strict mode)
177
+ - **TUI Framework:** [OpenTUI](https://github.com/nicholasgasior/opentui)
178
+ - **Testing:** Bun test runner
179
+ - **CI:** GitHub Actions + pre-commit hooks
180
+
181
+ ## Contributing
182
+
183
+ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
184
+
185
+ ## License
186
+
187
+ [MIT](LICENSE) — see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,31 @@
1
+ ## v1.0.0 — 2025-03-11
2
+
3
+ Initial release of **skill-manager** — the universal skill manager for AI coding agents.
4
+
5
+ ### Features
6
+
7
+ - Interactive TUI dashboard built with OpenTUI and Bun
8
+ - Multi-agent support: Claude Code, Codex, OpenClaw, and generic Agents
9
+ - Configurable providers via `~/.config/skill-manager/config.json`
10
+ - Global and project scope filtering with Tab cycling
11
+ - Real-time search and sort (by name, version, location)
12
+ - Detailed skill view with SKILL.md frontmatter metadata
13
+ - Safe uninstall with confirmation dialog and full removal plan
14
+ - In-TUI config editor — toggle providers on/off or open in `$EDITOR`
15
+ - CLI entry point with `--help` and `--version` flags
16
+ - Neon green logo suite and brand kit
17
+
18
+ ### Infrastructure
19
+
20
+ - Pre-commit hooks (Prettier, TypeScript type-checking)
21
+ - GitHub Actions CI pipeline (type-check + tests)
22
+ - 63 unit tests covering config, scanner, uninstaller, and frontmatter modules
23
+ - OSS-ready: LICENSE, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, issue/PR templates
24
+
25
+ ### Install
26
+
27
+ ```bash
28
+ bun install -g agent-skill-manager
29
+ ```
30
+
31
+ **Full Changelog**: https://github.com/luongnv89/skill-manager/commits/v1.0.0
package/SECURITY.md ADDED
@@ -0,0 +1,43 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ | ------- | --------- |
7
+ | 1.x | Yes |
8
+
9
+ ## Reporting a Vulnerability
10
+
11
+ We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly.
12
+
13
+ ### How to Report
14
+
15
+ 1. **Do NOT** open a public GitHub issue for security vulnerabilities
16
+ 2. Open a [private security advisory](https://github.com/luongnv89/skill-manager/security/advisories/new) on GitHub
17
+ 3. Include detailed steps to reproduce the vulnerability
18
+ 4. Allow up to 48 hours for an initial response
19
+
20
+ ### What to Include
21
+
22
+ - Type of vulnerability
23
+ - Full paths of affected source files
24
+ - Location of the affected source code (tag/branch/commit or direct URL)
25
+ - Step-by-step instructions to reproduce
26
+ - Proof-of-concept or exploit code (if possible)
27
+ - Impact of the issue
28
+
29
+ ### What to Expect
30
+
31
+ - Acknowledgment of your report within 48 hours
32
+ - Regular updates on our progress
33
+ - Credit in the security advisory (if desired)
34
+ - Notification when the issue is fixed
35
+
36
+ ## Security Best Practices
37
+
38
+ When contributing to this project:
39
+
40
+ - Never commit secrets, API keys, or credentials
41
+ - Use environment variables for sensitive configuration
42
+ - Follow secure coding practices
43
+ - Report any security concerns immediately
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { VERSION, VERSION_STRING } from "../src/utils/version";
4
+
5
+ const arg = process.argv[2];
6
+
7
+ if (arg === "--help" || arg === "-h") {
8
+ console.log(`\x1b[1m\x1b[36mskill-manager\x1b[0m ${VERSION_STRING}
9
+
10
+ Interactive TUI for managing installed skills for AI coding agents (Claude Code, Codex, OpenClaw, and more).
11
+
12
+ \x1b[1mUsage:\x1b[0m
13
+ skill-manager Launch the interactive TUI dashboard
14
+ skill-manager --help Show this help message
15
+ skill-manager --version Show version
16
+
17
+ \x1b[1mRequirements:\x1b[0m
18
+ Bun >= 1.0.0 (https://bun.sh)
19
+
20
+ \x1b[1mConfig:\x1b[0m
21
+ ~/.config/skill-manager/config.json
22
+
23
+ \x1b[1mTUI Keybindings:\x1b[0m
24
+ ↑/↓ or j/k Navigate skill list
25
+ Enter View skill details
26
+ d Uninstall selected skill
27
+ / Search / filter skills
28
+ Esc Back / clear filter / close dialog
29
+ Tab Cycle scope: Global → Project → Both
30
+ s Cycle sort: Name → Version → Location
31
+ r Refresh / rescan skills
32
+ c Open configuration
33
+ q Quit
34
+ ? Toggle help overlay`);
35
+ process.exit(0);
36
+ }
37
+
38
+ if (arg === "--version" || arg === "-v") {
39
+ console.log(`skill-manager ${VERSION_STRING}`);
40
+ process.exit(0);
41
+ }
42
+
43
+ // Launch the TUI
44
+ await import("../src/index.ts");
45
+
46
+ export {};