skillstogether 0.1.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.
- package/README.md +294 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2749 -0
- package/package.json +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# skillstogether
|
|
2
|
+
|
|
3
|
+
CLI tool to install organization skills from SkillsTogether.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
███████╗██╗ ██╗██╗██╗ ██╗ ███████╗████████╗ ██████╗ ██████╗ ███████╗████████╗██╗ ██╗███████╗██████╗
|
|
7
|
+
██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝╚══██╔══╝██╔═══██╗██╔════╝ ██╔════╝╚══██╔══╝██║ ██║██╔════╝██╔══██╗
|
|
8
|
+
███████╗█████╔╝ ██║██║ ██║ ███████╗ ██║ ██║ ██║██║ ███╗█████╗ ██║ ███████║█████╗ ██████╔╝
|
|
9
|
+
╚════██║██╔═██╗ ██║██║ ██║ ╚════██║ ██║ ██║ ██║██║ ██║██╔══╝ ██║ ██╔══██║██╔══╝ ██╔══██╗
|
|
10
|
+
███████║██║ ██╗██║███████╗███████╗███████║ ██║ ╚██████╔╝╚██████╔╝███████╗ ██║ ██║ ██║███████╗██║ ██║
|
|
11
|
+
╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Use directly with npx (recommended)
|
|
18
|
+
npx skillstogether add <organization-slug>
|
|
19
|
+
|
|
20
|
+
# Or install globally
|
|
21
|
+
npm install -g skillstogether
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
### Authentication
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Log in via browser
|
|
30
|
+
npx skillstogether auth login
|
|
31
|
+
|
|
32
|
+
# Check authentication status
|
|
33
|
+
npx skillstogether auth status
|
|
34
|
+
|
|
35
|
+
# Log out
|
|
36
|
+
npx skillstogether auth logout
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Installing Skills
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Install skills interactively (select which skills to install)
|
|
43
|
+
npx skillstogether add <organization-slug>
|
|
44
|
+
|
|
45
|
+
# Install all skills without prompts
|
|
46
|
+
npx skillstogether add <organization-slug> -y
|
|
47
|
+
|
|
48
|
+
# Install a specific skill
|
|
49
|
+
npx skillstogether add <organization-slug>/<skill-slug>
|
|
50
|
+
# or
|
|
51
|
+
npx skillstogether add <organization-slug> --skill <skill-slug>
|
|
52
|
+
|
|
53
|
+
# Install globally (in home directory)
|
|
54
|
+
npx skillstogether add <organization-slug> --global
|
|
55
|
+
|
|
56
|
+
# Overwrite existing skill files
|
|
57
|
+
npx skillstogether add <organization-slug> --force
|
|
58
|
+
|
|
59
|
+
# Custom installation directory
|
|
60
|
+
npx skillstogether add <organization-slug> --dir ./my-skills
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Options
|
|
64
|
+
|
|
65
|
+
| Option | Alias | Description |
|
|
66
|
+
| ------------------- | ----- | ------------------------------------------ |
|
|
67
|
+
| `--dir <path>` | `-d` | Custom installation directory |
|
|
68
|
+
| `--force` | `-f` | Overwrite existing skill files |
|
|
69
|
+
| `--yes` | `-y` | Skip interactive prompts, install all |
|
|
70
|
+
| `--skill <slug>` | — | Install a specific skill by slug |
|
|
71
|
+
| `--global` | — | Install globally (in home directory) |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Telemetry
|
|
76
|
+
|
|
77
|
+
The CLI collects telemetry data to help improve skills and track usage. This data includes:
|
|
78
|
+
|
|
79
|
+
- Skill name and slug
|
|
80
|
+
- Organization slug
|
|
81
|
+
- Target agent (e.g., Cursor, Claude Code)
|
|
82
|
+
- Installation scope (project or global)
|
|
83
|
+
- Timestamp
|
|
84
|
+
|
|
85
|
+
**No personal or device information is collected.**
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Development
|
|
90
|
+
|
|
91
|
+
### Prerequisites
|
|
92
|
+
|
|
93
|
+
- Node.js >= 18
|
|
94
|
+
- pnpm
|
|
95
|
+
|
|
96
|
+
### Setup
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# From the monorepo root
|
|
100
|
+
pnpm install
|
|
101
|
+
|
|
102
|
+
# Navigate to CLI package
|
|
103
|
+
cd packages/cli
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Build
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Build the CLI
|
|
110
|
+
pnpm build
|
|
111
|
+
|
|
112
|
+
# Watch mode (rebuild on changes)
|
|
113
|
+
pnpm dev
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Running Locally
|
|
117
|
+
|
|
118
|
+
#### Option 1: Run directly with Node
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# From packages/cli directory
|
|
122
|
+
node dist/index.js --help
|
|
123
|
+
node dist/index.js auth login
|
|
124
|
+
node dist/index.js add my-org
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### Option 2: Link globally
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# From packages/cli directory
|
|
131
|
+
pnpm link --global
|
|
132
|
+
|
|
133
|
+
# Now use it anywhere
|
|
134
|
+
skillstogether --help
|
|
135
|
+
skillstogether auth login
|
|
136
|
+
|
|
137
|
+
# To unlink
|
|
138
|
+
pnpm unlink --global
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### Option 3: Run from monorepo root
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# From monorepo root
|
|
145
|
+
node packages/cli/dist/index.js --help
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Environment Variables
|
|
149
|
+
|
|
150
|
+
| Variable | Default | Description |
|
|
151
|
+
| --------------------- | ----------------------- | -------------------- |
|
|
152
|
+
| `CLI_API_URL` | `http://localhost:3000` | API server URL |
|
|
153
|
+
|
|
154
|
+
Example:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Use a different API URL
|
|
158
|
+
CLI_API_URL=http://localhost:3000 node dist/index.js auth login
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Testing the Full Flow
|
|
162
|
+
|
|
163
|
+
1. Start the Next.js dev server:
|
|
164
|
+
```bash
|
|
165
|
+
# From monorepo root
|
|
166
|
+
pnpm dev
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
2. In another terminal, build and run the CLI:
|
|
170
|
+
```bash
|
|
171
|
+
cd packages/cli
|
|
172
|
+
pnpm build
|
|
173
|
+
node dist/index.js auth login
|
|
174
|
+
node dist/index.js add <your-org-slug>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Type Checking
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pnpm typecheck
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Publishing to npm
|
|
186
|
+
|
|
187
|
+
### Prerequisites
|
|
188
|
+
|
|
189
|
+
1. You need an npm account with publish access to the `@skillstogether` scope
|
|
190
|
+
2. Log in to npm:
|
|
191
|
+
```bash
|
|
192
|
+
npm login
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Publishing Steps
|
|
196
|
+
|
|
197
|
+
#### 1. Update the version
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Patch release (0.1.0 -> 0.1.1)
|
|
201
|
+
npm version patch
|
|
202
|
+
|
|
203
|
+
# Minor release (0.1.0 -> 0.2.0)
|
|
204
|
+
npm version minor
|
|
205
|
+
|
|
206
|
+
# Major release (0.1.0 -> 1.0.0)
|
|
207
|
+
npm version major
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### 2. Build and publish
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# Build the package (runs automatically via prepublishOnly)
|
|
214
|
+
pnpm build
|
|
215
|
+
|
|
216
|
+
# Publish to npm
|
|
217
|
+
pnpm publish --access public
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Or as a single command:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm version patch && pnpm publish --access public
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
#### 3. Verify the publish
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Check the package on npm
|
|
230
|
+
npm view skillstogether
|
|
231
|
+
|
|
232
|
+
# Test with npx
|
|
233
|
+
npx skillstogether@latest --help
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Publishing Checklist
|
|
237
|
+
|
|
238
|
+
- [ ] Update version in `package.json`
|
|
239
|
+
- [ ] Ensure all changes are committed
|
|
240
|
+
- [ ] Build passes (`pnpm build`)
|
|
241
|
+
- [ ] Type check passes (`pnpm typecheck`)
|
|
242
|
+
- [ ] Test locally before publishing
|
|
243
|
+
- [ ] Publish with `pnpm publish --access public`
|
|
244
|
+
- [ ] Create a git tag for the release
|
|
245
|
+
|
|
246
|
+
### Creating a Release Tag
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# After publishing, create a git tag
|
|
250
|
+
git tag cli-v0.1.0
|
|
251
|
+
git push origin cli-v0.1.0
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Project Structure
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
packages/cli/
|
|
260
|
+
├── src/
|
|
261
|
+
│ ├── index.ts # Entry point, CLI setup
|
|
262
|
+
│ ├── commands/
|
|
263
|
+
│ │ ├── add.ts # Install skills command
|
|
264
|
+
│ │ └── auth.ts # Authentication commands
|
|
265
|
+
│ ├── lib/
|
|
266
|
+
│ │ ├── api.ts # API client
|
|
267
|
+
│ │ ├── config.ts # Config file management
|
|
268
|
+
│ │ └── installer.ts # Skill file installation
|
|
269
|
+
│ └── utils/
|
|
270
|
+
│ ├── banner.ts # ASCII art banner
|
|
271
|
+
│ └── browser.ts # Browser auth flow
|
|
272
|
+
├── dist/ # Built output
|
|
273
|
+
├── package.json
|
|
274
|
+
├── tsconfig.json
|
|
275
|
+
└── README.md
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Configuration
|
|
281
|
+
|
|
282
|
+
The CLI stores configuration in `~/.skillstogether/config.json`:
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"token": "your-auth-token"
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## License
|
|
293
|
+
|
|
294
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|