6 points par GN⁺ 2026-01-23 | 1 commentaires | Partager sur WhatsApp
  • Claude Chill est un outil proxy PTY qui atténue les problèmes de latence et de scintillement causés lorsque Claude Code redessine de façon répétée l’intégralité du terminal
  • Il intercepte les sorties synchronisées (sync blocks) utilisées par Claude Code et, grâce à un rendu basé sur VT100, ne met à jour que les parties modifiées de l’écran
  • Il conserve un tampon d’historique pour permettre le scrollback, avec un mode lookback accessible via Ctrl+6 pour consulter l’historique complet des sorties
  • Il propose une fonction auto-lookback qui exporte automatiquement l’historique après une certaine période d’inactivité
  • Il fonctionne sous Linux et macOS et constitue une solution légère pour améliorer les performances et la lisibilité du terminal

Aperçu

  • Claude Chill est un programme proxy PTY conçu pour résoudre les problèmes de sortie terminal de Claude Code
    • Claude Code encapsule toute la sortie dans des blocs synchronisés pour effectuer un rendu en une seule fois, mais ce processus provoque des rafraîchissements plein écran de plusieurs milliers de lignes
    • Cela entraîne des problèmes de latence, scintillement et perte du scrollback
  • Claude Chill se place entre le terminal et Claude Code pour n’appliquer que les différences de sortie et conserver un tampon d’historique

Fonctionnalités principales

  • Interception des blocs sync : détecte et traite les gros blocs synchronisés envoyés par Claude Code
  • Rendu basé sur VT : utilise un émulateur VT100 pour suivre l’état de l’écran et n’afficher que les parties modifiées
  • Conservation de l’historique et mode lookback : stocke la sortie dans un tampon pour permettre la consultation des anciens journaux
    • Entrée dans le mode lookback avec la touche Ctrl+6
    • Met temporairement en pause la sortie de Claude et affiche l’historique complet dans le terminal
    • On peut quitter en appuyant à nouveau sur la touche ou avec Ctrl+C
  • Auto-lookback : si aucune saisie n’est détectée pendant un certain temps (15 secondes par défaut), l’historique est exporté automatiquement
    • Peut être désactivé avec l’option -a 0
    • Lors d’un export automatique, l’écran peut scintiller brièvement

Installation et utilisation

  • Installation :
    cargo install --path crates/claude-chill  
    
  • Exemples d’exécution :
    • Exécution de base : claude-chill claude
    • Passage d’arguments : claude-chill -- claude --verbose
    • Définir la taille de l’historique : claude-chill -H 50000 claude
    • Désactiver l’auto-lookback : claude-chill -a 0 claude
  • Options principales :
    • -H, --history : nombre maximal de lignes d’historique (100000 par défaut)
    • -k, --lookback-key : touche de bascule du mode lookback
    • -a, --auto-lookback-timeout : délai d’attente avant l’auto-lookback (ms)

Fichier de configuration

  • Emplacement :
    • Linux : ~/.config/claude-chill.toml
    • macOS : ~/Library/Application Support/claude-chill.toml
  • Principales entrées :
    • history_lines : nombre maximal de lignes d’historique
    • lookback_key : touche de bascule du mode lookback
    • refresh_rate : FPS de rendu
    • auto_lookback_timeout_ms : délai de l’auto-lookback

Protocole clavier et configuration des touches

  • Bascule automatiquement de mode dans les terminaux prenant en charge le Kitty Keyboard Protocol (Kitty, Ghostty, WezTerm, etc.)
    • Si Claude Code active le mode Kitty, Claude Chill reconnaît automatiquement cet encodage lui aussi
  • Format des touches : [modifier][key]
    • Exemples : [f12], [ctrl][g], [ctrl][shift][j]
  • La touche par défaut Ctrl+6 envoie ASCII 0x1E et n’entre en conflit avec presque aucun terminal
    • Sur macOS, Ctrl+Shift+6 (Ctrl+^) produit le même comportement

Fonctionnement

  • Claude Chill crée un terminal virtuel (PTY) et lance Claude Code comme processus enfant
  • Architecture proxy d’entrée/sortie :
    Terminal ⇄ claude-chill ⇄ Claude Code  
    
  • Principales étapes de traitement :
    • Entrée : transmise à Claude, seule la touche lookback est interceptée
    • Sortie : détection des blocs synchronisés, la sortie asynchrone est transmise telle quelle
    • Suivi de l’état de l’écran via l’émulation VT
    • Rendu des seules différences après comparaison avec l’état précédent
    • Conservation du tampon d’historique et prise en charge du mode lookback
    • Transmission à Claude des signaux comme SIGWINCH, SIGINT, SIGTERM

Points d’attention

  • Outil développé pour un usage personnel, sans campagne de tests étendue
  • Fonctionnement vérifié sur Linux et macOS
  • Son utilisation n’est pas recommandée sur des systèmes ou infrastructures critiques
  • Licence MIT

1 commentaires

 
GN⁺ 2026-01-23
Avis sur Hacker News
  • Je suis responsable du rendu TUI de Claude Code
    Désolé pour la gêne occasionnée pendant si longtemps, mais aujourd’hui nous avons déployé à tous les utilisateurs un rendu différentiel (differential renderer)
    Nous avons entièrement réécrit le système de rendu, et désormais seule environ 1/3 des sessions subit encore des scintillements intermittents. Les scintillements continus ont quasiment disparu
    J’ai aussi soumis des correctifs pour la prise en charge de la sortie synchronisée (mode DEC 2026) dans le terminal VSCode et tmux, et ils ont déjà été fusionnés
    Si vous voulez une expérience totalement sans scintillement, je recommande Ghostty. Plus d’infos dans le commentaire de l’issue #769, la PR xterm.js #5453 et la PR tmux #4744

    • Je me demande pourquoi il y a eu si peu de communication officielle sur un problème aussi important
      Des commentaires sont postés chaque jour sur les issues GitHub (#1913, #826, #3648), mais depuis le rollback de décembre, il n’y a presque pas eu de réponse d’Anthropic
      Je comprends la difficulté technique, mais ce manque de communication a sans doute entamé la confiance des utilisateurs
    • J’utilise le forfait à 200 $, et j’ai souvent des timeouts sur les requêtes API
      Ça arrive alors que je ne fais tourner qu’un ou deux agents. Je me demande s’il pourrait rester une limite de débit de l’ancien forfait, ou si des sessions à long contexte pourraient en être la cause
      Malgré ça, je trouve l’outil vraiment passionnant, car il me permet de créer des applis qui étaient impossibles auparavant
    • J’aimerais qu’on accorde un peu plus d’attention à l’issue #769
      Sur macOS avec iTerm, l’écran remontait à chaque perte de focus de la fenêtre, ce qui était vraiment pénible
    • Avant de recommander Ghostty, je conseille de lire ce billet
      Il y avait une fuite mémoire depuis Ghostty 1.0, et des applis CLI comme Claude Code réunissaient souvent les conditions qui faisaient apparaître le problème
      Le correctif a déjà été fusionné et sera inclus dans la version 1.3
    • Je me demande s’il est prévu de séparer le TUI et l’UI pour que chacun puisse créer sa propre interface
      Si c’était configurable de manière aussi flexible que Zed, l’expérience serait bien meilleure
  • Cela fait des mois que je n’ai pas utilisé Claude Code, et je suis surpris de voir que le flicker n’est toujours pas réglé
    Je me dis que si ce n’est pas open source, ce n’est peut-être pas à cause de la concurrence, mais plutôt à cause du désordre de la base de code

    • La cause du problème, c’est que la bibliothèque Ink efface puis redessine tout à chaque mise à jour
      Il y a des détails à ce sujet dans l’issue #769
      J’ai patché le paquet npm en local, mais ce n’est pas parfait. Il faut changer en profondeur la manière de faire le rendu
      À titre de comparaison, OpenAI Codex est écrit en Rust + ratatui, donc il n’a pas ce problème
    • À mon avis, l’équipe Claude Code développe Claude Code avec Claude Code, ce qui explique peut-être la lenteur de la correction
      Ce genre de bug complexe finit par nécessiter qu’une personne s’y mette directement un week-end, mais on dirait qu’ils se contentent de lancer des agents
    • Anthropic a dit que « 90 % du code serait écrit par l’IA », mais il est ironique qu’ils n’arrivent même pas à corriger un bug de flicker basique
      D’autres outils CLI (opencode, codex, gemini, droid, etc.) n’ont pas ce problème
    • On dirait que l’équipe essaie simplement de tenir le coup face à trop d’issues et à l’évolution rapide des modèles
      S’ils l’avaient utilisé eux-mêmes dans un environnement tmux, ils sauraient à quel point c’est pénible, mais j’ai quand même envie d’être un peu compréhensif
    • Codex est bien plus fluide et stable que Claude Code. Le fait qu’il soit écrit en Rust semble faire une vraie différence
  • J’aimerais utiliser Claude Code, mais je ne peux pas à cause de la fonction de scrollback de Ghostty qui est cassée
    Le proxy PTY intercepte le flux de sortie, ce qui bloque l’accès de Ghostty à son tampon interne

    • Je n’ai pas constaté de problème de défilement dans Ghostty. En revanche, l’absence de barre de défilement est regrettable
    • Je recommande d’essayer tmux. Le défilement n’est pas fluide, mais les nombreuses fonctionnalités compensent largement
  • Je me demandais ce que signifiait exactement le flickering
    Parfois, Claude Code se met soudainement à faire défiler l’écran vers le haut, puis il devient difficile de redescendre, et il faut redémarrer le terminal pour revenir à la normale

    • J’ai le même problème. C’est pareil sur macOS avec iTerm2, et redémarrer la session est la seule solution temporaire
    • Dans le terminal VSCode, c’était encore pire non seulement avec Claude Code mais aussi avec Gemini. En passant à Ghostty, le problème a été entièrement résolu
  • J’aimerais qu’il y ait une option pour ancrer le champ de saisie en bas du terminal
    C’est pénible de devoir sans cesse faire défiler entre le chat et la zone de saisie

    • J’ai pensé la même chose en l’utilisant dans un environnement tmux–mosh–mobile
      Du point de vue de l’usage mobile, ce serait une fonctionnalité qui changerait complètement la donne
  • En voyant le format de readme.md, c’est intéressant, on a l’impression que Claude Code l’a écrit lui-même

    • Mais ce n’est probablement pas CC qui écrit directement, plutôt un résultat produit via d’autres modèles (Codex, Gemini, etc.)
  • Cette mise à jour semble être la plus grosse amélioration apportée à Claude Code ces derniers mois
    Je vais l’installer et la tester immédiatement

  • À ce propos, j’ai vu un précédent post affirmant que le rendu terminal de Claude Code avait été amélioré de 85 %

    • Mais il reste toujours des problèmes de défilement
  • Merci d’avoir enfin réduit le flickering. C’était un bug qui donnait la migraine, donc ça va vraiment faire du bien
    J’espère qu’Anthropic réglera rapidement ce problème de façon définitive

  • Codex reste beaucoup plus réactif même quand les sessions s’allongent, alors que Claude devient poussif avec le temps

    • Le fait que Codex soit écrit en Rust semble clairement faire la différence