Aller au contenu

jcode

jcode est un agent de codage en terminal open source disponible sur jcode.sh. Il propose une TUI interactive et une CLI scriptable pour l'analyse de dépôts, les modifications de code et les workflows de développement pilotés par outils.

jcode dispose d'un type de fournisseur openai-compatible dédié. Connecté à notre Everyware AI API hébergée en Suisse, vos prompts et votre code source restent au sein de notre infrastructure GPU suisse.


Fonctionnalités clés

  • TUI orientée terminal: codage interactif directement dans le répertoire du projet.
  • Fournisseurs personnalisés: profils de fournisseurs nommés pour les endpoints compatibles OpenAI.
  • Catalogue de modèles: récupérez les modèles disponibles depuis l'endpoint /v1/models du gateway, ou déclarez-les explicitement.
  • Contrôle du raisonnement: paramètres de raisonnement par modèle et /effort dans la TUI.
  • Souveraineté totale des données: toutes les requêtes de modèle passent par notre Everyware AI API suisse.

Installation

curl -fsSL https://jcode.sh/install | bash
brew tap 1jehuang/jcode
brew install jcode

Vérifiez l'installation:

jcode --version

Configuration

1. Enregistrer la clé API

Stockez la clé API virtuelle dans le fichier d'environnement privé du fournisseur jcode:

mkdir -p ~/.config/jcode
printf 'JCODE_PROVIDER_EW_API_KEY=sk-bf-...\n' > ~/.config/jcode/provider-ew.env
chmod 600 ~/.config/jcode/provider-ew.env

2. Enregistrer le gateway

Créez ou modifiez ~/.jcode/config.toml:

[provider]
default_provider = "ew"
default_model = "flagship"

[providers.ew]
type = "openai-compatible"
base_url = "https://ai.ewcs.ch/v1"
auth = "bearer"
api_key_env = "JCODE_PROVIDER_EW_API_KEY"
env_file = "provider-ew.env"
default_model = "flagship"
requires_api_key = true
supports_reasoning_effort = true

[[providers.ew.models]]
id = "flagship"
context_window = 1048576
reasoning = true

[[providers.ew.models]]
id = "balanced"
context_window = 1000000
reasoning = true

[[providers.ew.models]]
id = "fast"
context_window = 262144
reasoning = true

Le nom de profil ew combiné aux IDs de modèle produit les sélecteurs ew/flagship, ew/balanced et ew/fast.

Effort de raisonnement

jcode détecte automatiquement la prise en charge du raisonnement à partir du nom de la famille de modèles. Comme les noms de modèles du gateway (flagship, balanced, fast) sont neutres, définissez explicitement supports_reasoning_effort = true pour que /effort soit envoyé comme reasoning_effort.

3. Alternative: générer le profil via la CLI

printf '%s' "$EW_AI_API_KEY" | jcode provider add ew \
  --base-url https://ai.ewcs.ch/v1 \
  --model flagship \
  --context-window 1048576 \
  --api-key-stdin \
  --set-default

Les modèles supplémentaires peuvent ensuite être ajoutés sous [[providers.ew.models]] dans config.toml.

4. Vérifier et démarrer

cd /path/to/project
jcode --provider-profile ew auth-test
jcode --provider-profile ew

Commandes et workflows typiques

  • Démarrer en mode interactif:
    jcode
    
  • Sélectionner le profil et le modèle au démarrage:
    jcode --provider-profile ew --model balanced
    
  • Dans la TUI:
    • /model: ouvrir le sélecteur de modèle
    • Ctrl+Tab / Ctrl+Shift+Tab: modèle suivant / précédent
    • /effort: modifier le niveau de raisonnement
  • Prompt unique:
    jcode run "Explain the architecture of this repository."
    

Limites des modèles

jcode expose context_window par modèle mais pas de limite distincte de tokens de sortie; la longueur de sortie est gérée par l'agent. Si un modèle n'est pas déclaré, jcode revient à un contexte de 200 000 tokens. Déclarez les limites explicitement comme indiqué ci-dessus.