# 🎯 Tutoriel : Intégrer `codellama:13b-python` dans Cursor avec la Sidebar + Cline

Ce guide complet t’explique comment :

- Intégrer le modèle **codellama:13b-python** local (via **Ollama**) dans Cursor
- L’utiliser dans la **sidebar des agents + Ask** de Cursor
- Configurer **Cline** pour tirer le meilleur de ton modèle local

---

## ✅ Prérequis

- ✅ Ollama est installé et configuré
- ✅ Modèle téléchargé : `ollama pull codellama:13b-python`
- ✅ Variable `OLLAMA_MODELS` correctement configurée si besoin
- ✅ Cursor est installé ([https://cursor.so](https://cursor.so/))

---

## 🧱 Étape 1 : Vérifier que le modèle fonctionne

Dans ton terminal :

```bash
ollama run codellama:13b-python
```

> Tu dois pouvoir chatter avec le modèle en ligne de commande.

---

## 🛠️ Étape 2 : Configurer `cursor-agent.json`

1. À la racine de ton projet, crée un fichier :

```bash
cursor-agent.json
```

2. Mets-y ceci :

```json
{
  "name": "CodeLlama Local",
  "entry": "main.py",
  "llm": {
    "provider": "custom",
    "completion_url": "http://localhost:11434/api/generate",
    "method": "POST",
    "headers": {
      "Content-Type": "application/json"
    },
    "input_key": "prompt",
    "output_key": "response"
  }
}
```

---

## 🧠 Étape 3 : Créer un script Python minimal `main.py`

```python
import sys
import json
import requests

prompt = sys.stdin.read().strip()

payload = {
    "model": "codellama:13b-python",
    "prompt": prompt,
    "stream": False
}

res = requests.post("http://localhost:11434/api/generate", json=payload)
print(json.dumps({"response": res.json().get("response", "")}))
```

✅ Ce script lit un prompt depuis Cursor, interroge Ollama, et retourne la réponse.

---

## 🧪 Étape 4 : Vérifier que Cursor reconnaît le modèle

- Ouvre Cursor
- Clique sur la **sidebar des agents (Ask)** à gauche
- Tu devrais voir **CodeLlama Local** dans la liste
- Clique dessus et tape une commande (ex : `Peux-tu générer une fonction en Python ?`)

✅ Si tout est bien configuré, tu verras la réponse de `codellama` s’afficher.

---

## 💬 Étape 5 : Utiliser le modèle avec **Cline**

### 🔹 Qu’est-ce que Cline ?

Cline est la barre latérale à droite de Cursor qui te permet de :

- Sélectionner un modèle
- Voir l’historique des prompts
- Travailler sur une sélection de code

### 📌 Utilisation :

1. Sélectionne du code dans un fichier Python
2. Tape `//` pour activer le prompt intégré
3. Cursor ouvrira automatiquement **Cline**
4. Clique sur la flèche déroulante à côté de "Model" et choisis **CodeLlama Local**

### ✅ Astuces :

- Tu peux taper des prompts personnalisés du style :
    
    - "Optimise ce code."
    - "Corrige les erreurs."
    - "Ajoute un docstring."
- Les suggestions s’appliqueront directement sur le code sélectionné
    

---

## 🔧 Étape 6 : Personnaliser encore plus avec des agents dynamiques

Tu peux relier `main.py` à ta propre classe Python d’agent (voir tutoriels précédents) pour :

- Définir un rôle spécifique à chaque agent
- Créer une interface CLI
- Injecter des prompts système

---

## 🧹 Étape 7 : Résolution de problèmes

- Si `CodeLlama Local` n’apparaît pas : redémarre Cursor ou vérifie que tu es dans le bon dossier
- Si rien ne s'affiche : assure-toi que le service Ollama tourne (tester avec `ollama run`)
- Pour voir les erreurs de Cursor : `Ctrl+Shift+I` > Console

---

## ✅ Tu es prêt !

Tu peux maintenant :

- Utiliser ton modèle local dans la **sidebar Ask** de Cursor
- Poser des questions directement dans le **cline** à droite
- Interagir avec `codellama:13b-python` sans dépendre de l’API OpenAI ou d’internet

Souhaites-tu maintenant que je te génère des variantes avec rôles dynamiques par agent ou une intégration CLI/Streamlit ?