claude-scionos 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/.gitattributes +2 -0
- package/LICENSE +21 -0
- package/README.fr.md +257 -0
- package/README.md +257 -0
- package/index.js +67 -0
- package/package.json +41 -0
package/.gitattributes
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 comeback01
|
|
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.fr.md
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Claude Code (via ScioNos)
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/claude-scionos)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://github.com/ScioNos/claude-scionos/pulls)
|
|
9
|
+
|
|
10
|
+
**Exécuteur éphémère et sécurisé pour la CLI Claude Code**
|
|
11
|
+
|
|
12
|
+
_[🇬🇧 Read in English](./README.md)_
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### 📖 Table des matières
|
|
19
|
+
|
|
20
|
+
- [Présentation](#présentation)
|
|
21
|
+
- [Points clés](#points-clés)
|
|
22
|
+
- [Prérequis](#prérequis)
|
|
23
|
+
- [Installation](#installation)
|
|
24
|
+
- [Utilisation](#utilisation)
|
|
25
|
+
- [Fonctionnement](#fonctionnement)
|
|
26
|
+
- [Considérations de sécurité](#considérations-de-sécurité)
|
|
27
|
+
- [Dépannage](#dépannage)
|
|
28
|
+
- [Contribuer](#contribuer)
|
|
29
|
+
- [Licence](#licence)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### 🛡️ Présentation
|
|
34
|
+
|
|
35
|
+
**claude-scionos** est un exécuteur éphémère et sécurisé pour la CLI officielle [Claude Code](https://github.com/anthropics/claude-code). Il initialise toutes les variables d'environnement nécessaires **directement en mémoire**, garantissant qu'aucun fichier de configuration ni aucune donnée d'authentification n'est jamais écrit sur le disque.
|
|
36
|
+
|
|
37
|
+
L'objectif est d'offrir une couche d'exécution propre, isolée et professionnelle, entièrement compatible avec Claude Code, spécifiquement conçue pour **l'environnement SNIA**.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### 📌 Points clés
|
|
42
|
+
|
|
43
|
+
- 🔒 **Isolation du jeton** — Le jeton d'authentification n'est jamais écrit sur le disque
|
|
44
|
+
- 💾 **Zéro persistance** — Aucun fichier temporaire ni configuration locale stockés
|
|
45
|
+
- 🧩 **Compatibilité totale** — Fonctionne parfaitement avec la CLI officielle Claude Code
|
|
46
|
+
- 🔐 **Stockage en mémoire uniquement** — Toutes les informations d'identification sont détruites à la fin du processus
|
|
47
|
+
- 🚀 **Démarrage rapide** — Exécution en une seule commande via `npx`
|
|
48
|
+
- 🧪 **Prêt pour CI/CD** — Adapté aux workflows automatisés et pipelines
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### ⚙️ Prérequis
|
|
53
|
+
|
|
54
|
+
Avant d'utiliser `claude-scionos`, assurez-vous d'avoir :
|
|
55
|
+
|
|
56
|
+
- **Node.js** version 22 ou supérieure ([Télécharger](https://nodejs.org/))
|
|
57
|
+
- La CLI **Claude Code** installée globalement :
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g @anthropic-ai/claude-code
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- Un **ANTHROPIC_AUTH_TOKEN** valide depuis [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### 📥 Installation
|
|
68
|
+
|
|
69
|
+
#### Option 1 : Exécution directe (Recommandé)
|
|
70
|
+
|
|
71
|
+
Aucune installation nécessaire ! Exécutez directement avec `npx` :
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx claude-scionos
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Option 2 : Installation globale
|
|
78
|
+
|
|
79
|
+
Pour une utilisation fréquente, installez globalement :
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm install -g claude-scionos
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Puis exécutez :
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
claude-scionos
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 🚀 Utilisation
|
|
94
|
+
|
|
95
|
+
#### Utilisation de base
|
|
96
|
+
|
|
97
|
+
Exécutez simplement la commande :
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx claude-scionos
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Ce qui se passe :**
|
|
104
|
+
|
|
105
|
+
1. L'outil vérifie si la CLI Claude Code est installée
|
|
106
|
+
2. Vous invite à saisir votre `ANTHROPIC_AUTH_TOKEN`
|
|
107
|
+
3. Lance Claude Code avec le jeton stocké **uniquement en mémoire**
|
|
108
|
+
4. Nettoie automatiquement les informations d'identification à la sortie
|
|
109
|
+
|
|
110
|
+
#### Exemple de session
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
$ npx claude-scionos
|
|
114
|
+
|
|
115
|
+
Claude Code (via ScioNos)
|
|
116
|
+
To retrieve your token, visit: https://hubs02225.snia.ch/console/token
|
|
117
|
+
? Please enter your ANTHROPIC_AUTH_TOKEN: ********
|
|
118
|
+
|
|
119
|
+
# Claude Code démarre...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### Options de ligne de commande
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Afficher la version
|
|
126
|
+
npx claude-scionos --version
|
|
127
|
+
npx claude-scionos -v
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 🔍 Fonctionnement
|
|
133
|
+
|
|
134
|
+
1. **Vérification** : Vérifie que la commande `claude` est disponible dans votre PATH
|
|
135
|
+
2. **Saisie du jeton** : Demande de manière sécurisée votre jeton d'authentification (entrée masquée)
|
|
136
|
+
3. **Configuration de l'environnement** : Crée des variables d'environnement isolées :
|
|
137
|
+
- `ANTHROPIC_BASE_URL` → `https://hubs02225.snia.ch`
|
|
138
|
+
- `ANTHROPIC_AUTH_TOKEN` → Votre jeton (mémoire uniquement)
|
|
139
|
+
4. **Exécution** : Lance le processus Claude Code avec l'environnement personnalisé
|
|
140
|
+
5. **Nettoyage** : Détruit automatiquement les informations d'identification à la sortie
|
|
141
|
+
|
|
142
|
+
**Aucun fichier créé. Aucune donnée persistée.**
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### 🔐 Considérations de sécurité
|
|
147
|
+
|
|
148
|
+
Bien que `claude-scionos` assure une sécurité maximale en conservant les jetons uniquement en mémoire, veuillez noter :
|
|
149
|
+
|
|
150
|
+
⚠️ **Notes importantes :**
|
|
151
|
+
|
|
152
|
+
- Les jetons ne sont **jamais écrits sur le disque**
|
|
153
|
+
- Les dumps mémoire ou débogueurs pourraient potentiellement exposer le jeton pendant l'exécution du processus
|
|
154
|
+
- Les jetons sont automatiquement effacés à la fin du processus
|
|
155
|
+
- **Utiliser uniquement dans des environnements de confiance**
|
|
156
|
+
|
|
157
|
+
✅ **Bonnes pratiques :**
|
|
158
|
+
|
|
159
|
+
- Ne partagez jamais votre `ANTHROPIC_AUTH_TOKEN` avec d'autres personnes
|
|
160
|
+
- Récupérez un nouveau jeton pour chaque session depuis [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
161
|
+
- Évitez d'exécuter sur des systèmes partagés/non fiables
|
|
162
|
+
- Utilisez pour le développement local ou des pipelines CI/CD sécurisés
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### 🛠️ Dépannage
|
|
167
|
+
|
|
168
|
+
#### Erreur : 'claude' command not found
|
|
169
|
+
|
|
170
|
+
**Problème :** La CLI Claude Code n'est pas installée ou n'est pas dans le PATH.
|
|
171
|
+
|
|
172
|
+
**Solution :**
|
|
173
|
+
```bash
|
|
174
|
+
npm install -g @anthropic-ai/claude-code
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Vérifiez l'installation :
|
|
178
|
+
```bash
|
|
179
|
+
claude --version
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
#### Échec de l'authentification du jeton
|
|
185
|
+
|
|
186
|
+
**Problème :** Jeton invalide ou expiré.
|
|
187
|
+
|
|
188
|
+
**Solution :**
|
|
189
|
+
1. Obtenez un nouveau jeton depuis [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
190
|
+
2. Assurez-vous de copier le jeton complet (sans espaces supplémentaires)
|
|
191
|
+
3. Vérifiez votre connexion réseau à `hubs02225.snia.ch`
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
#### Erreur de version Node.js
|
|
196
|
+
|
|
197
|
+
**Problème :** La version de Node.js est inférieure à 22.
|
|
198
|
+
|
|
199
|
+
**Solution :**
|
|
200
|
+
```bash
|
|
201
|
+
# Vérifiez votre version de Node
|
|
202
|
+
node --version
|
|
203
|
+
|
|
204
|
+
# Mettez à jour Node.js vers la version 22 ou supérieure
|
|
205
|
+
# Visitez : https://nodejs.org/
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### 🤝 Contribuer
|
|
211
|
+
|
|
212
|
+
Les contributions sont les bienvenues ! Voici comment vous pouvez aider :
|
|
213
|
+
|
|
214
|
+
1. **Signaler des bugs** — [Ouvrir une issue](https://github.com/ScioNos/claude-scionos/issues)
|
|
215
|
+
2. **Suggérer des fonctionnalités** — Partagez vos idées via les issues
|
|
216
|
+
3. **Soumettre des PRs** — Fork, créez une branche et soumettez une pull request
|
|
217
|
+
|
|
218
|
+
**Configuration de développement :**
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Cloner le dépôt
|
|
222
|
+
git clone https://github.com/ScioNos/claude-scionos.git
|
|
223
|
+
cd claude-scionos
|
|
224
|
+
|
|
225
|
+
# Installer les dépendances
|
|
226
|
+
npm install
|
|
227
|
+
|
|
228
|
+
# Tester localement
|
|
229
|
+
node index.js
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 📝 Licence
|
|
235
|
+
|
|
236
|
+
Licence MIT — © 2025 [ScioNos](https://scionos.ch)
|
|
237
|
+
|
|
238
|
+
Voir le fichier [LICENSE](./LICENSE) pour plus de détails.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### 🔗 Liens
|
|
243
|
+
|
|
244
|
+
- **Page d'accueil :** [https://scionos.ch](https://scionos.ch)
|
|
245
|
+
- **Package npm :** [https://www.npmjs.com/package/claude-scionos](https://www.npmjs.com/package/claude-scionos)
|
|
246
|
+
- **Issues :** [https://github.com/ScioNos/claude-scionos/issues](https://github.com/ScioNos/claude-scionos/issues)
|
|
247
|
+
- **Claude Code :** [https://github.com/anthropics/claude-code](https://github.com/anthropics/claude-code)
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
<div align="center">
|
|
252
|
+
|
|
253
|
+
**Fait avec ❤️ par ScioNos**
|
|
254
|
+
|
|
255
|
+
[⬆ Retour en haut](#claude-code-via-scionos)
|
|
256
|
+
|
|
257
|
+
</div>
|
package/README.md
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Claude Code (via ScioNos)
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/claude-scionos)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://github.com/ScioNos/claude-scionos/pulls)
|
|
9
|
+
|
|
10
|
+
**Ephemeral and secure runner for Claude Code CLI**
|
|
11
|
+
|
|
12
|
+
_[🇫🇷 Lire en français](./README.fr.md)_
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### 📖 Table of Contents
|
|
19
|
+
|
|
20
|
+
- [Overview](#overview)
|
|
21
|
+
- [Key Features](#key-features)
|
|
22
|
+
- [Requirements](#requirements)
|
|
23
|
+
- [Installation](#installation)
|
|
24
|
+
- [Usage](#usage)
|
|
25
|
+
- [How It Works](#how-it-works)
|
|
26
|
+
- [Security Considerations](#security-considerations)
|
|
27
|
+
- [Troubleshooting](#troubleshooting)
|
|
28
|
+
- [Contributing](#contributing)
|
|
29
|
+
- [License](#license)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### 🛡️ Overview
|
|
34
|
+
|
|
35
|
+
**claude-scionos** is an ephemeral and secure runner for the official [Claude Code](https://github.com/anthropics/claude-code) CLI. It initializes all required environment variables **directly in memory**, ensuring that no configuration files or authentication data are ever written to disk.
|
|
36
|
+
|
|
37
|
+
The goal is to offer a clean, isolated, and professional execution layer fully compatible with Claude Code, specifically designed for the **SNIA environment**.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### 📌 Key Features
|
|
42
|
+
|
|
43
|
+
- 🔒 **Token Isolation** — Authentication token never written to disk
|
|
44
|
+
- 💾 **Zero Persistence** — No temporary files or local configuration stored
|
|
45
|
+
- 🧩 **Full Compatibility** — Works seamlessly with the official Claude Code CLI
|
|
46
|
+
- 🔐 **Memory-Only Storage** — All credentials destroyed on process exit
|
|
47
|
+
- 🚀 **Quick Start** — Single command execution via `npx`
|
|
48
|
+
- 🧪 **CI/CD Ready** — Suitable for automated workflows and pipelines
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### ⚙️ Requirements
|
|
53
|
+
|
|
54
|
+
Before using `claude-scionos`, ensure you have:
|
|
55
|
+
|
|
56
|
+
- **Node.js** version 22 or later ([Download](https://nodejs.org/))
|
|
57
|
+
- **Claude Code** CLI installed globally:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g @anthropic-ai/claude-code
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- A valid **ANTHROPIC_AUTH_TOKEN** from [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### 📥 Installation
|
|
68
|
+
|
|
69
|
+
#### Option 1: Direct Execution (Recommended)
|
|
70
|
+
|
|
71
|
+
No installation required! Run directly with `npx`:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx claude-scionos
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Option 2: Global Installation
|
|
78
|
+
|
|
79
|
+
For frequent use, install globally:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm install -g claude-scionos
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Then run:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
claude-scionos
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 🚀 Usage
|
|
94
|
+
|
|
95
|
+
#### Basic Usage
|
|
96
|
+
|
|
97
|
+
Simply execute the command:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx claude-scionos
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**What happens:**
|
|
104
|
+
|
|
105
|
+
1. The tool checks if Claude Code CLI is installed
|
|
106
|
+
2. Prompts you to enter your `ANTHROPIC_AUTH_TOKEN`
|
|
107
|
+
3. Launches Claude Code with the token stored **only in memory**
|
|
108
|
+
4. Automatically cleans up credentials when you exit
|
|
109
|
+
|
|
110
|
+
#### Example Session
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
$ npx claude-scionos
|
|
114
|
+
|
|
115
|
+
Claude Code (via ScioNos)
|
|
116
|
+
To retrieve your token, visit: https://hubs02225.snia.ch/console/token
|
|
117
|
+
? Please enter your ANTHROPIC_AUTH_TOKEN: ********
|
|
118
|
+
|
|
119
|
+
# Claude Code starts...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### Command-Line Options
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Display version
|
|
126
|
+
npx claude-scionos --version
|
|
127
|
+
npx claude-scionos -v
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 🔍 How It Works
|
|
133
|
+
|
|
134
|
+
1. **Verification**: Checks if `claude` command is available in your PATH
|
|
135
|
+
2. **Token Input**: Securely prompts for your authentication token (masked input)
|
|
136
|
+
3. **Environment Setup**: Creates isolated environment variables:
|
|
137
|
+
- `ANTHROPIC_BASE_URL` → `https://hubs02225.snia.ch`
|
|
138
|
+
- `ANTHROPIC_AUTH_TOKEN` → Your token (memory only)
|
|
139
|
+
4. **Execution**: Spawns Claude Code process with custom environment
|
|
140
|
+
5. **Cleanup**: Automatically destroys credentials on exit
|
|
141
|
+
|
|
142
|
+
**No files are created. No data persists.**
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### 🔐 Security Considerations
|
|
147
|
+
|
|
148
|
+
While `claude-scionos` ensures maximum security by keeping tokens in memory only, please be aware:
|
|
149
|
+
|
|
150
|
+
⚠️ **Important Notes:**
|
|
151
|
+
|
|
152
|
+
- Tokens are **never written to disk**
|
|
153
|
+
- Memory dumps or debuggers could potentially expose the token while the process runs
|
|
154
|
+
- Tokens are automatically cleared when the process terminates
|
|
155
|
+
- **Use only in trusted environments**
|
|
156
|
+
|
|
157
|
+
✅ **Best Practices:**
|
|
158
|
+
|
|
159
|
+
- Never share your `ANTHROPIC_AUTH_TOKEN` with others
|
|
160
|
+
- Retrieve a fresh token for each session from [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
161
|
+
- Avoid running on shared/untrusted systems
|
|
162
|
+
- Use for local development or secure CI/CD pipelines
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### 🛠️ Troubleshooting
|
|
167
|
+
|
|
168
|
+
#### Error: 'claude' command not found
|
|
169
|
+
|
|
170
|
+
**Problem:** Claude Code CLI is not installed or not in PATH.
|
|
171
|
+
|
|
172
|
+
**Solution:**
|
|
173
|
+
```bash
|
|
174
|
+
npm install -g @anthropic-ai/claude-code
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Verify installation:
|
|
178
|
+
```bash
|
|
179
|
+
claude --version
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
#### Token authentication fails
|
|
185
|
+
|
|
186
|
+
**Problem:** Invalid or expired token.
|
|
187
|
+
|
|
188
|
+
**Solution:**
|
|
189
|
+
1. Get a fresh token from [https://hubs02225.snia.ch/console/token](https://hubs02225.snia.ch/console/token)
|
|
190
|
+
2. Ensure you're copying the complete token (no extra spaces)
|
|
191
|
+
3. Check your network connection to `hubs02225.snia.ch`
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
#### Node.js version error
|
|
196
|
+
|
|
197
|
+
**Problem:** Node.js version is below 22.
|
|
198
|
+
|
|
199
|
+
**Solution:**
|
|
200
|
+
```bash
|
|
201
|
+
# Check your Node version
|
|
202
|
+
node --version
|
|
203
|
+
|
|
204
|
+
# Upgrade Node.js to version 22 or later
|
|
205
|
+
# Visit: https://nodejs.org/
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### 🤝 Contributing
|
|
211
|
+
|
|
212
|
+
Contributions are welcome! Here's how you can help:
|
|
213
|
+
|
|
214
|
+
1. **Report Bugs** — [Open an issue](https://github.com/ScioNos/claude-scionos/issues)
|
|
215
|
+
2. **Suggest Features** — Share your ideas via issues
|
|
216
|
+
3. **Submit PRs** — Fork, create a branch, and submit a pull request
|
|
217
|
+
|
|
218
|
+
**Development Setup:**
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Clone the repository
|
|
222
|
+
git clone https://github.com/ScioNos/claude-scionos.git
|
|
223
|
+
cd claude-scionos
|
|
224
|
+
|
|
225
|
+
# Install dependencies
|
|
226
|
+
npm install
|
|
227
|
+
|
|
228
|
+
# Test locally
|
|
229
|
+
node index.js
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 📝 License
|
|
235
|
+
|
|
236
|
+
MIT License — © 2025 [ScioNos](https://scionos.ch)
|
|
237
|
+
|
|
238
|
+
See [LICENSE](./LICENSE) file for details.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### 🔗 Links
|
|
243
|
+
|
|
244
|
+
- **Homepage:** [https://scionos.ch](https://scionos.ch)
|
|
245
|
+
- **npm Package:** [https://www.npmjs.com/package/claude-scionos](https://www.npmjs.com/package/claude-scionos)
|
|
246
|
+
- **Issues:** [https://github.com/ScioNos/claude-scionos/issues](https://github.com/ScioNos/claude-scionos/issues)
|
|
247
|
+
- **Claude Code:** [https://github.com/anthropics/claude-code](https://github.com/anthropics/claude-code)
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
<div align="center">
|
|
252
|
+
|
|
253
|
+
**Made with ❤️ by ScioNos**
|
|
254
|
+
|
|
255
|
+
[⬆ Back to Top](#claude-code-via-scionos)
|
|
256
|
+
|
|
257
|
+
</div>
|
package/index.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { password } from '@inquirer/prompts';
|
|
5
|
+
import spawn from 'cross-spawn';
|
|
6
|
+
import which from 'which';
|
|
7
|
+
import process from 'node:process';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
|
+
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
const pkg = require('./package.json');
|
|
12
|
+
|
|
13
|
+
// 0. Handle --version / -v flag
|
|
14
|
+
if (process.argv.includes('--version') || process.argv.includes('-v')) {
|
|
15
|
+
console.log(pkg.version);
|
|
16
|
+
process.exit(0);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 1. Check if "claude" command is available
|
|
20
|
+
try {
|
|
21
|
+
await which('claude');
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error(chalk.redBright("Error: 'claude' command not found. Please install Claude Code first: npm install -g @anthropic-ai/claude-code"));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// 2. Intro
|
|
28
|
+
console.clear();
|
|
29
|
+
console.log(chalk.cyan.bold("Claude Code (via ScioNos)"));
|
|
30
|
+
|
|
31
|
+
// 3. Token info
|
|
32
|
+
console.log(chalk.blueBright("To retrieve your token, visit: https://hubs02225.snia.ch/console/token"));
|
|
33
|
+
|
|
34
|
+
// 4. Token input
|
|
35
|
+
const token = await password({
|
|
36
|
+
message: "Please enter your ANTHROPIC_AUTH_TOKEN:",
|
|
37
|
+
validate: (input) => {
|
|
38
|
+
if (!input || input.trim() === '') {
|
|
39
|
+
return "Token cannot be empty.";
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
},
|
|
43
|
+
mask: '*'
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// 5. Environment configuration
|
|
47
|
+
const env = {
|
|
48
|
+
...process.env,
|
|
49
|
+
ANTHROPIC_BASE_URL: "https://hubs02225.snia.ch",
|
|
50
|
+
ANTHROPIC_AUTH_TOKEN: token,
|
|
51
|
+
ANTHROPIC_API_KEY: "" // Force empty string
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// 6. Launch Claude Code
|
|
55
|
+
const child = spawn('claude', [], {
|
|
56
|
+
stdio: 'inherit',
|
|
57
|
+
env: env
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
child.on('close', (code) => {
|
|
61
|
+
process.exit(code);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
child.on('error', (err) => {
|
|
65
|
+
console.error(chalk.red(`Error launching Claude: ${err.message}`));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-scionos",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Ephemeral and secure runner for Claude Code CLI in SNIA environment",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"claude-scionos": "index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"release:patch": "npm version patch -m \"Chore: Bump version to %s\"",
|
|
12
|
+
"release:minor": "npm version minor -m \"Chore: Bump version to %s\"",
|
|
13
|
+
"release:major": "npm version major -m \"Chore: Bump version to %s\""
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"claude",
|
|
17
|
+
"snia",
|
|
18
|
+
"cli",
|
|
19
|
+
"wrapper"
|
|
20
|
+
],
|
|
21
|
+
"author": "ScioNos",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"homepage": "https://scionos.ch",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/ScioNos/claude-scionos.git"
|
|
27
|
+
},
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/ScioNos/claude-scionos/issues"
|
|
30
|
+
},
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=22"
|
|
33
|
+
},
|
|
34
|
+
"private": false,
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@inquirer/prompts": "^8.0.1",
|
|
37
|
+
"chalk": "^5.6.2",
|
|
38
|
+
"cross-spawn": "^7.0.6",
|
|
39
|
+
"which": "^6.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|