# CaraChat Recréer en PHP (JumPHP\Gui) le client de chat Caramail d'origine, un applet Java de 2002 (normal.jar, paquet net.spray.chat, classe CaraNewChat), décompilé/désassemblé. Même protocole TCP texte (trames « code TAB champs… LF ») pour se connecter au serveur de chat (projet caramail-server, port 4500 par défaut), via $engine->tcp() (pont TCP du playground dans le navigateur). Fonctions : connexion (pseudo, âge, sexe, ville), salon courant avec liste des connectés, envoi de phrases avec couleurs/styles et smileys, liste des salons publics/permanents, création/entrée dans un salon, messages privés (fenêtres/onglets), recherche de connectés par pseudo/ville avec filtres âge/sexe, infos d'un connecté, nombre de connectés, ping 667. Interface fidèle à l'applet (onglets, zone de discussion colorée, sélecteur de couleur et de smileys). ## An application with windows and forms (JumPHP\Gui) This project is an **application**, not a game: windows with buttons, lists, fields, drawn by PHP (no HTML), the same on the desktop, in the browser and on phones. Follow `AGENTS.md` section 17 and `docs/gui.md`; example: `games/hello-gui`. A window = `forms/.form.yaml` (its widgets: what the JumPHP IDE's visual editor writes) + `src/Form/.php` (its code). Test each feature as you write it (`GameTestCase`: click, type, check what the form shows), check the screens with `bin/jumphp shot caramail-chat`. --- ## The JumPHP playground This project was made on the JumPHP playground: the application's page is https://jumphp.net/caramail-chat (in its "Applications"). - The application is `apps/caramail-chat/`. Read `AGENTS.md` (the JumPHP contract) first; replace the skeleton with the application described above; tests for each feature, as you write them; screenshots you look at. - **Publishing**: every push to `main` is online within a minute (Git webhook). The MCP tool `sync_project` (server `jumphp`) publishes at once and returns the errors. - **Its home page**: `apps/caramail-chat/site/` (AGENTS.md section 13, with the application's real screenshots) and `apps/caramail-chat/assets/thumbnail.png`. - When it is done: MCP `update_project` with `listed: true` shows it in the playground's applications.