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.
Files changed (38) hide show
  1. package/README.md +251 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +852 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +60 -0
  6. package/templates/.claude/scripts/command-validator/README.md +147 -0
  7. package/templates/.claude/scripts/command-validator/biome.json +29 -0
  8. package/templates/.claude/scripts/command-validator/bun.lockb +0 -0
  9. package/templates/.claude/scripts/command-validator/package.json +27 -0
  10. package/templates/.claude/scripts/command-validator/src/__tests__/validator.test.ts +148 -0
  11. package/templates/.claude/scripts/command-validator/src/cli.ts +118 -0
  12. package/templates/.claude/scripts/command-validator/src/lib/security-rules.ts +172 -0
  13. package/templates/.claude/scripts/command-validator/src/lib/types.ts +33 -0
  14. package/templates/.claude/scripts/command-validator/src/lib/validator.ts +360 -0
  15. package/templates/.claude/scripts/command-validator/vitest.config.ts +7 -0
  16. package/templates/.claude/scripts/hook-post-file.ts +162 -0
  17. package/templates/.claude/scripts/statusline/CLAUDE.md +178 -0
  18. package/templates/.claude/scripts/statusline/README.md +138 -0
  19. package/templates/.claude/scripts/statusline/biome.json +34 -0
  20. package/templates/.claude/scripts/statusline/bun.lockb +0 -0
  21. package/templates/.claude/scripts/statusline/fixtures/test-input.json +25 -0
  22. package/templates/.claude/scripts/statusline/package.json +19 -0
  23. package/templates/.claude/scripts/statusline/src/index.ts +111 -0
  24. package/templates/.claude/scripts/statusline/src/lib/context.ts +82 -0
  25. package/templates/.claude/scripts/statusline/src/lib/formatters.ts +48 -0
  26. package/templates/.claude/scripts/statusline/src/lib/git.ts +54 -0
  27. package/templates/.claude/scripts/statusline/src/lib/types.ts +25 -0
  28. package/templates/.claude/scripts/statusline/src/lib/usage-limits.ts +105 -0
  29. package/templates/.claude/scripts/statusline/statusline.config.ts +25 -0
  30. package/templates/.claude/scripts/statusline/test.ts +20 -0
  31. package/templates/.claude/scripts/statusline/tsconfig.json +27 -0
  32. package/templates/.claude/scripts/statusline-ccusage.sh +188 -0
  33. package/templates/.claude/scripts/statusline.readme.md +194 -0
  34. package/templates/.claude/scripts/validate-command.js +707 -0
  35. package/templates/.claude/scripts/validate-command.readme.md +283 -0
  36. package/templates/.claude/settings.json.template +60 -0
  37. package/templates/.claude/song/finish.mp3 +0 -0
  38. 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
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node