vibe-academy-cli 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.
- package/README.md +251 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +852 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -0
- package/templates/.claude/scripts/command-validator/README.md +147 -0
- package/templates/.claude/scripts/command-validator/biome.json +29 -0
- package/templates/.claude/scripts/command-validator/bun.lockb +0 -0
- package/templates/.claude/scripts/command-validator/package.json +27 -0
- package/templates/.claude/scripts/command-validator/src/__tests__/validator.test.ts +148 -0
- package/templates/.claude/scripts/command-validator/src/cli.ts +118 -0
- package/templates/.claude/scripts/command-validator/src/lib/security-rules.ts +172 -0
- package/templates/.claude/scripts/command-validator/src/lib/types.ts +33 -0
- package/templates/.claude/scripts/command-validator/src/lib/validator.ts +360 -0
- package/templates/.claude/scripts/command-validator/vitest.config.ts +7 -0
- package/templates/.claude/scripts/hook-post-file.ts +162 -0
- package/templates/.claude/scripts/statusline/CLAUDE.md +178 -0
- package/templates/.claude/scripts/statusline/README.md +138 -0
- package/templates/.claude/scripts/statusline/biome.json +34 -0
- package/templates/.claude/scripts/statusline/bun.lockb +0 -0
- package/templates/.claude/scripts/statusline/fixtures/test-input.json +25 -0
- package/templates/.claude/scripts/statusline/package.json +19 -0
- package/templates/.claude/scripts/statusline/src/index.ts +111 -0
- package/templates/.claude/scripts/statusline/src/lib/context.ts +82 -0
- package/templates/.claude/scripts/statusline/src/lib/formatters.ts +48 -0
- package/templates/.claude/scripts/statusline/src/lib/git.ts +54 -0
- package/templates/.claude/scripts/statusline/src/lib/types.ts +25 -0
- package/templates/.claude/scripts/statusline/src/lib/usage-limits.ts +105 -0
- package/templates/.claude/scripts/statusline/statusline.config.ts +25 -0
- package/templates/.claude/scripts/statusline/test.ts +20 -0
- package/templates/.claude/scripts/statusline/tsconfig.json +27 -0
- package/templates/.claude/scripts/statusline-ccusage.sh +188 -0
- package/templates/.claude/scripts/statusline.readme.md +194 -0
- package/templates/.claude/scripts/validate-command.js +707 -0
- package/templates/.claude/scripts/validate-command.readme.md +283 -0
- package/templates/.claude/settings.json.template +60 -0
- package/templates/.claude/song/finish.mp3 +0 -0
- package/templates/.claude/song/need-human.mp3 +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# vibe-academy-cli
|
|
2
|
+
|
|
3
|
+
cli pour installer les presets claude code pour la formation vibe academy.
|
|
4
|
+
|
|
5
|
+
## installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# exécution directe (recommandé)
|
|
9
|
+
npx vibe-academy-cli setup
|
|
10
|
+
|
|
11
|
+
# ou installation globale
|
|
12
|
+
npm install -g vibe-academy-cli
|
|
13
|
+
vibe-academy setup
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## commandes
|
|
17
|
+
|
|
18
|
+
### `setup`
|
|
19
|
+
|
|
20
|
+
installe la configuration claude code.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
vibe-academy setup [options]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**mode interactif** (par défaut):
|
|
27
|
+
```bash
|
|
28
|
+
vibe-academy setup
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
te demande:
|
|
32
|
+
1. **où installer**:
|
|
33
|
+
- 🌍 global (~/.claude) - pour tous les projets
|
|
34
|
+
- 📁 local (.claude) - projet actuel uniquement
|
|
35
|
+
- 📂 personnalisé - extraire le code sans rien écraser
|
|
36
|
+
|
|
37
|
+
2. **quoi installer**:
|
|
38
|
+
- 🔒 hooks de sécurité
|
|
39
|
+
- 📊 statusline personnalisée
|
|
40
|
+
- 🔔 notifications audio
|
|
41
|
+
- 📚 documentation
|
|
42
|
+
|
|
43
|
+
**mode automatique**:
|
|
44
|
+
```bash
|
|
45
|
+
vibe-academy setup --skip
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
installe tout dans ~/.claude sans poser de questions.
|
|
49
|
+
|
|
50
|
+
**options**:
|
|
51
|
+
| option | description |
|
|
52
|
+
|--------|-------------|
|
|
53
|
+
| `--skip` | skip les prompts, installe tout |
|
|
54
|
+
| `--folder <path>` | dossier d'installation custom |
|
|
55
|
+
| `--no-hooks` | ne pas installer les hooks |
|
|
56
|
+
| `--no-statusline` | ne pas installer la statusline |
|
|
57
|
+
| `--no-docs` | ne pas créer le README |
|
|
58
|
+
|
|
59
|
+
### `update`
|
|
60
|
+
|
|
61
|
+
met à jour la configuration existante.
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
vibe-academy update [--folder <path>]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### `uninstall`
|
|
68
|
+
|
|
69
|
+
désinstalle la configuration.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
vibe-academy uninstall [--folder <path>] [--force]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### `auth`
|
|
76
|
+
|
|
77
|
+
gère l'authentification claude code (macos uniquement).
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# afficher le statut
|
|
81
|
+
vibe-academy auth
|
|
82
|
+
vibe-academy auth --status
|
|
83
|
+
|
|
84
|
+
# forcer la ré-authentification
|
|
85
|
+
vibe-academy auth --refresh
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**pourquoi ?** la statusline a besoin du scope `user:profile` pour afficher les infos d'usage anthropic. les anciens tokens peuvent ne pas avoir ce scope.
|
|
89
|
+
|
|
90
|
+
## ce qui est installé
|
|
91
|
+
|
|
92
|
+
### structure
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
.claude/
|
|
96
|
+
├── settings.json # config claude code
|
|
97
|
+
├── README.md # documentation
|
|
98
|
+
├── song/
|
|
99
|
+
│ ├── finish.mp3 # notification fin de session
|
|
100
|
+
│ └── need-human.mp3 # notification question utilisateur
|
|
101
|
+
└── scripts/
|
|
102
|
+
├── validate-command.js # hook sécurité bash
|
|
103
|
+
├── hook-post-file.ts # hook post-édition
|
|
104
|
+
└── statusline/ # statusline personnalisée
|
|
105
|
+
└── src/
|
|
106
|
+
├── index.ts
|
|
107
|
+
└── lib/
|
|
108
|
+
├── usage-limits.ts # appel api anthropic
|
|
109
|
+
├── context.ts # tokens du transcript
|
|
110
|
+
├── git.ts # info git
|
|
111
|
+
└── formatters.ts # couleurs
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### hooks
|
|
115
|
+
|
|
116
|
+
| hook | trigger | action |
|
|
117
|
+
|------|---------|--------|
|
|
118
|
+
| PreToolUse | avant commande bash | valide les commandes dangereuses |
|
|
119
|
+
| Stop | fin de session | joue finish.mp3 |
|
|
120
|
+
| Notification | question utilisateur | joue need-human.mp3 |
|
|
121
|
+
| PostToolUse | après edit/write | hook post-édition |
|
|
122
|
+
|
|
123
|
+
### statusline
|
|
124
|
+
|
|
125
|
+
affiche en temps réel:
|
|
126
|
+
```
|
|
127
|
+
🌿 main • 💄 senior-dev • 📁 ~/project • 🤖 Opus 4.5
|
|
128
|
+
📅 $8.90 • 🧩 117.6K tokens (59%) • ⏱️ (10%) • ⏳ (1h5m left)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
| info | source |
|
|
132
|
+
|------|--------|
|
|
133
|
+
| branche git | `git branch` |
|
|
134
|
+
| output style | claude code |
|
|
135
|
+
| dossier | claude code |
|
|
136
|
+
| modèle | claude code |
|
|
137
|
+
| coût du jour | ccusage (optionnel) |
|
|
138
|
+
| tokens contexte | transcript local |
|
|
139
|
+
| utilisation % | **api anthropic directe** |
|
|
140
|
+
| temps restant | **api anthropic directe** |
|
|
141
|
+
|
|
142
|
+
**note importante**: l'utilisation % et le temps restant viennent directement de l'api anthropic (`/api/oauth/usage`), pas d'une projection. c'est le vrai temps avant que ta fenêtre de 5h se réinitialise.
|
|
143
|
+
|
|
144
|
+
## prérequis
|
|
145
|
+
|
|
146
|
+
- **node.js** >= 18
|
|
147
|
+
- **bun** (recommandé) ou npm/pnpm
|
|
148
|
+
- **macos** pour les notifications audio et l'auth keychain
|
|
149
|
+
|
|
150
|
+
## développement
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
cd cli
|
|
154
|
+
|
|
155
|
+
# installer les dépendances
|
|
156
|
+
npm install
|
|
157
|
+
|
|
158
|
+
# build
|
|
159
|
+
npm run build
|
|
160
|
+
|
|
161
|
+
# dev (watch mode)
|
|
162
|
+
npm run dev
|
|
163
|
+
|
|
164
|
+
# test local
|
|
165
|
+
node dist/index.js setup --folder ./test
|
|
166
|
+
|
|
167
|
+
# test interactif complet
|
|
168
|
+
node dist/index.js setup
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## architecture
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
cli/
|
|
175
|
+
├── src/
|
|
176
|
+
│ ├── index.ts # entry point, définition des commandes
|
|
177
|
+
│ ├── commands/
|
|
178
|
+
│ │ ├── setup.ts # installation interactive
|
|
179
|
+
│ │ ├── update.ts # mise à jour
|
|
180
|
+
│ │ ├── uninstall.ts # désinstallation
|
|
181
|
+
│ │ └── auth.ts # gestion authentification
|
|
182
|
+
│ ├── utils/
|
|
183
|
+
│ │ ├── files.ts # copie fichiers, génération settings
|
|
184
|
+
│ │ ├── paths.ts # détection chemins
|
|
185
|
+
│ │ ├── logger.ts # affichage coloré, spinners
|
|
186
|
+
│ │ └── auth.ts # vérification scopes oauth
|
|
187
|
+
│ └── types/
|
|
188
|
+
│ └── index.ts # types typescript
|
|
189
|
+
├── templates/
|
|
190
|
+
│ └── .claude/ # fichiers à copier
|
|
191
|
+
│ ├── scripts/
|
|
192
|
+
│ │ ├── statusline/
|
|
193
|
+
│ │ └── ...
|
|
194
|
+
│ └── song/
|
|
195
|
+
├── dist/ # build output
|
|
196
|
+
├── package.json
|
|
197
|
+
├── tsconfig.json
|
|
198
|
+
└── tsup.config.ts
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## dépendances
|
|
202
|
+
|
|
203
|
+
| package | usage |
|
|
204
|
+
|---------|-------|
|
|
205
|
+
| commander | framework cli |
|
|
206
|
+
| inquirer | prompts interactifs |
|
|
207
|
+
| chalk | couleurs terminal |
|
|
208
|
+
| ora | spinners |
|
|
209
|
+
|
|
210
|
+
## philosophie
|
|
211
|
+
|
|
212
|
+
### api anthropic directe
|
|
213
|
+
|
|
214
|
+
on appelle directement l'api anthropic pour les infos d'usage au lieu de passer par ccusage:
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
❌ statusline → ccusage → fichiers locaux → estimation
|
|
218
|
+
✅ statusline → api anthropic → données réelles
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
avantages:
|
|
222
|
+
- données exactes (pas de projection)
|
|
223
|
+
- temps restant toujours correct (≤ 5h)
|
|
224
|
+
- pourcentage d'utilisation réel
|
|
225
|
+
|
|
226
|
+
### vérification des scopes
|
|
227
|
+
|
|
228
|
+
au setup, on vérifie que le token oauth a le scope `user:profile`. si non, on propose de ré-authentifier automatiquement.
|
|
229
|
+
|
|
230
|
+
## prochaines étapes après installation
|
|
231
|
+
|
|
232
|
+
1. **ajouter le marketplace**:
|
|
233
|
+
```bash
|
|
234
|
+
/plugin marketplace add matthieucousin/vibe-academy-marketplace
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
2. **installer les plugins**:
|
|
238
|
+
```bash
|
|
239
|
+
/plugin install vibe-academy@vibe-academy-marketplace
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
3. **commencer à coder!**
|
|
243
|
+
|
|
244
|
+
## inspirations
|
|
245
|
+
|
|
246
|
+
- [aiblueprint-cli](https://github.com/Melvynx/aiblueprint/tree/main/claude-code-config/)
|
|
247
|
+
- [superpowers](https://github.com/obra/superpowers)
|
|
248
|
+
|
|
249
|
+
## licence
|
|
250
|
+
|
|
251
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|