- Phoenix.new est un agent de codage IA entièrement en ligne spécialisé pour Elixir et le framework Phoenix
- Les utilisateurs peuvent écrire du code dans un IDE basé sur le navigateur via des machines virtuelles isolées, et partager un shell root avec l’agent
- L’agent Phoenix.new contrôle directement le navigateur pour tester l’interface utilisateur et automatiser l’ensemble du flux, des modifications de code au déploiement et à l’intégration GitHub
- Les utilisateurs peuvent suivre l’avancement du développement grâce à un aperçu de l’application et une surveillance des logs en temps réel
- Une extension vers divers langages et frameworks est prévue, ce qui laisse entrevoir une évolution future des workflows de développement
Introduction
- Chris McCord est le développeur qui a créé le framework Phoenix pour Elixir
- Récemment, chez Fly.io, il s’est consacré à un projet confidentiel visant à créer un environnement où les agents LLM fonctionnent aussi bien avec Elixir et Phoenix qu’avec Python ou JavaScript
- Le résultat de ce projet a été la publication de Phoenix.new
- Phoenix.new est un agent de codage IA pour Elixir et Phoenix entièrement en ligne et doté de toutes les fonctionnalités nécessaires
- Il est présenté comme un outil optimisé pour la collaboration en temps réel et le prototypage rapide
Principales caractéristiques de Phoenix.new
- Il fonctionne dans un environnement navigateur tout en fournissant, à l’utilisateur comme à l’agent, un shell root sur une machine virtuelle isolée créée avec Fly Machine
- L’utilisateur peut accéder au shell comme il le souhaite via une interface de type VSCode
- L’agent est spécialisé pour Phoenix et comprend les besoins des applications collaboratives en temps réel
- Phoenix.new intègre un navigateur que l’agent contrôle en mode « headless » afin de tester et manipuler les changements front-end
- Au lieu de simples captures d’écran, il peut analyser le contenu réel des pages et l’état JavaScript
Les avantages de l’accès root
- L’agent peut ouvrir directement un shell comme un utilisateur et mener des expérimentations de développement
- Comme l’environnement repose sur des VM isolées, il peut tout faire, y compris ajouter des paquets dans
mix.exsou installer des paquets APT au niveau système - Cette architecture automatise une grande partie des tâches répétitives et fastidieuses
- Toutes les applications générées s’exécutent immédiatement dans le cloud et bénéficient automatiquement d’URL privées de partage (domaine
.phx.run), du port forwarding intégré, de l’intégration GitHub et des garde-fous d’infrastructure de Fly.io (virtualisation, WireGuard, réseau isolé) - La CLI
ghde GitHub est préinstallée par défaut, ce qui permet à l’agent d’effectuer des tâches de collaboration d’équipe comme cloner des dépôts, consulter des issues ou créer des PR - Une boucle automatisée de déploiement et de test est déjà en place, ce qui permet à l’agent de gérer l’exécution de l’application, la détection des erreurs et leur correction
Vérification des builds en temps réel
- Phoenix.new exécute un véritable navigateur pour tester les applications web
- Lorsqu’il ajoute des fonctionnalités front-end, il ne se contente pas d’écrire et de compiler du code : il manipule directement l’interface et vérifie simultanément la page, l’état JavaScript et les logs serveur
- Son interface embarque un aperçu live de l’application, permettant de surveiller en temps réel le développement et les modifications
- Les changements sont aussi synchronisés en temps réel sur plusieurs onglets
.phx.run
Plus que du simple prototypage
- Il a déjà servi à développer des applications full stack intégrant WebSocket, Phoenix Presence et une véritable base de données
- Tout ce qu’il est possible de faire depuis le shell et le navigateur peut être pris en charge par l’agent automatiquement ou à la demande de l’utilisateur
- Il prend notamment en charge l’exploration de base de données après configuration de
$DATABASE_URL, la proposition de schémas Ecto ou l’installation d’un client MySQL
- Il prend notamment en charge l’exploration de base de données après configuration de
- Les LLM récents disposent de connaissances étendues et de solides capacités de généralisation, ce qui laisse envisager une extension vers de nouveaux langages et frameworks
- Exemple : réussite d’un codage « à la volée » d’une application Tetris en Phoenix LiveView, avec à l’avenir des possibilités pour Rails, React Native, Svelte, Go, etc.
- Le prompt système est actuellement centré sur Phoenix, mais l’équipe affirme sa volonté de l’étendre à d’autres langages et frameworks
Perspectives pour l’ère des agents asynchrones
- L’auteur souligne que nous traversons une période de grande transformation des workflows de développement
- À l’avenir, le développement devrait passer d’un mode centré sur le shell local et les fichiers à une forme pilotée par des agents dans des environnements CI asynchrones
- Même si le développement local ne disparaît pas, la majorité des tâches répétitives devrait migrer vers des environnements cloud centrés sur les agents
- Dans les faits, Phoenix.new est déjà utilisé au quotidien pour des tâches comme le tri des issues de
phoenix-coreet la création de PR de correction - Chris McCord exprime son enthousiasme et ses attentes quant à cette évolution et au potentiel futur de Phoenix.new
1 commentaires
Avis Hacker News
Ce service est vraiment impressionnant, et j’aimerais souligner ici deux innovations particulièrement importantes
J’aimerais recommander Kasm Workspaces : cela permet de lancer librement à distance un environnement de bureau Linux basé sur Docker, et c’est aussi très adapté comme environnement de développement IA ; la persistance du répertoire personnel et des packages est également prise en charge, lien Docker Hub, discussion Reddit sur la persistance des packages
Certains disent qu’il est révolutionnaire de laisser un agent se déplacer librement dans un environnement conteneurisé, mais je me demande si c’est vraiment si révolutionnaire
Je précise que je suis le créateur de Phoenix ; je peux répondre à vos questions si vous en avez ; pour information, phoenix.new est un cluster Elixir global déployé dans le monde entier ; par exemple, si vous vous inscrivez depuis l’Australie, un IDE et un agent vous seront attribués à Sydney
Beau travail ; j’ai été un peu dérouté par la marque Phoenix.new, et je me demande si c’est la même chose que le framework web Elixir Phoenix que je connais déjà, ou davantage que cela
J’ai appris que l’environnement Phoenix.new inclut un navigateur Chrome headless que l’agent peut piloter ; si on lui demande d’ajouter une fonctionnalité frontend, il ne se contente pas d’écrire du code et de faire passer la compilation et le linting : il lance réellement l’application, manipule l’UI et vérifie en même temps le contenu de la page, l’état JavaScript et les logs serveur ; je me demande s’il est aussi possible de faire tourner ce navigateur headless et l’agent en local dans un environnement comme Cursor
Je n’ai pas trouvé de documentation sur la politique de sécurité ni sur le fait de savoir si le code soumis par les utilisateurs est utilisé pour l’entraînement ; j’aimerais savoir où consulter la politique de sécurité correspondante
Je voudrais savoir quelle est votre approche de l’accessibilité (Accessibility), si vous testez l’accessibilité de l’interface de phoenix.new, et si vous avez déjà évalué l’accessibilité du frontend généré, étant donné que beaucoup de gens écrivent aussi leur frontend avec Phoenix
Si vous avez des retours d’expérience sur le provisioning d’environnements isolés via l’API Fly, je serais curieux que vous les partagiez ; j’essaie moi-même une approche similaire pour un système low-code de workflows serverless
En tant que personne qui aime Elixir et croit à l’avenir de l’agentic AI, je trouve ce service très enthousiasmant ; j’ai quelques questions sur la gestion du contexte et sur les modèles utilisés
Je ne sais pas clairement si Phoenix.new est un produit Fly.io ou un projet sous son égide ; je me demande aussi si la politique tarifaire est clairement indiquée, notamment les coûts additionnels liés au déploiement permanent des services web ; sur mobile, j’ai trouvé difficile de repérer facilement ces informations sur la page d’accueil
Je craignais beaucoup qu’Elixir soit à la traîne en matière de support LLM, donc je suis très heureux de voir ce type d’effort ; grâce à ces initiatives ambitieuses, je me sens plus confiant quant à l’avenir d’Elixir
Je me surprends à penser, à moitié pour rire, que le fait que les LLM écrivent mal l’Elixir pourrait presque devenir le plus grand atout d’Elixir
J’ai pourtant eu l’expérience inverse : Claude m’a très bien généré une application Elixir full stack avec LiveView inclus ; le mème sur ce point ne correspond pas vraiment à mon ressenti
J’utilise des LLM pour écrire du code Elixir depuis quelques mois ; ce n’est peut-être pas aussi parfait qu’en JS, mais je trouve ça déjà assez bon
Ces dernières semaines, j’utilise des LLM pour construire de nouveaux prototypes, principalement Claude Sonnet 3.7 via GitHub Copilot dans Zed, et l’expérience est excellente ; il essaie parfois d’utiliser des approches dépassées, mais ce n’est pas vraiment problématique ; il produit aussi facilement de nouvelles fonctionnalités LiveView ; dans l’ensemble, la productivité ne me semble pas très différente de celle que j’ai connue sur des projets Python ou Next.js ; j’en ai sans doute aussi bénéficié parce que j’utilise surtout des packages populaires et bien connus ; au début, j’ai créé moi-même le projet Phoenix avant de le confier au LLM, et cela a aussi réduit les dérives vers des directions étranges
En travaillant en Common Lisp, je me dis qu’il serait utile de pouvoir faire un apprentissage complémentaire du LLM sur la base de code existante ; j’ai l’impression que le simple fait de lire la documentation n’améliore pas vraiment la précision de génération de code ni les capacités générales de résolution de problèmes
J’aimerais demander à @chrismccord : je suis un peu confus, est-ce un projet commun entre Chris et Fly.io ? Est-il impossible de séparer complètement l’application pour l’exploiter soi-même ? Cela veut-il dire que ce n’est pas le projet Phoenix open source ?
Je suis surpris par l’idée que les LLM gèrent mal Elixir ; de mon côté, j’ai plutôt eu de bonnes expériences avec les outils d’IA sur des side projects Phoenix/Elixir
Je n’ai utilisé des LLM qu’avec Elixir, donc je n’ai pas vraiment de point de comparaison, mais même si Claude adopte parfois des approches farfelues, dès qu’on lui fait lire la documentation, il fonctionne plutôt bien
J’ai clairement l’impression que les LLM sont bien meilleurs en Elixir qu’avant ; pour les tâches plus complexes comme Phoenix ou LiveView, cela reste encore difficile ; je me demande quels LLM sont les mieux adaptés à Elixir/Phoenix
Quand je clique sur « Sign in with fly.io », j’arrive sur une page de paiement, mais il n’y a pas de détails sur ce qui est inclus dans les 20 $ de « Built-In AI Assistance » ; il est dit que des fonctions comme build, refactor et debug sont disponibles dans l’IDE, mais j’aimerais en connaître le périmètre exact
Je viens de m’inscrire pour vérifier : il n’y a pas d’essai gratuit, seulement un abonnement immédiat à 20 $, et il n’y a pas non plus de limite d’usage explicitement indiquée
Phoenix.new a l’air puissant et je compte vraiment le tester ; ce n’est pas encore tout à fait le framework agentic qui exploite au maximum l’environnement BEAM tel que je l’imagine, mais peut-être que jido pourra jouer ce rôle