[BUG] Output text hard-wraps at 80 columns when $COLUMNS is not set (Terminology terminal)

Status Fixed / completed
Reported on v2.1.84
Maintainer reply None cached
Activity 5 comments · opened Mar 26, 2026 · closed Mar 26, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code wraps all text output at 80 columns regardless of actual terminal
width. The issue appears when $COLUMNS is not exported by the terminal
emulator (Terminology on Linux). tput cols correctly returns the terminal
width, but Claude Code does not use it as a fallback.

What Should Happen?

Output should wrap at the actual terminal width, using tput cols or ioctl
TIOCGWINSZ as a fallback when $COLUMNS is unset.
Environment

  • Claude Code version: 2.1.84
  • OS: Ubuntu 24.04 / Linux 6.14.0-37-generic x86_64
  • Terminal: Terminology
  • $TERM: xterm-256color
  • $COLUMNS: (unset)
  • tput cols: 80 (but terminal is wider than 80)

Error Messages/Logs

Steps to Reproduce

To reproduce

  1. Open Terminology (or any terminal that does not export $COLUMNS)
  2. Run claude
  3. Observe that all text output wraps at 80 columns even if the terminal is

wider

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.84

Platform

Anthropic API

Operating System

linux

Terminal/Shell

Other

Additional Information

overlapped text

View original on GitHub ↗

5 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/27844
  2. https://github.com/anthropics/claude-code/issues/5430
  3. https://github.com/anthropics/claude-code/issues/35860

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

nix789 · 6 months ago

<img width="1120" height="688" alt="Image" src="https://github.com/user-attachments/assets/b2f6ecaa-f089-4bb1-a36c-10459b4be39d" />

nix789 · 6 months ago

<img width="1877" height="678" alt="Image" src="https://github.com/user-attachments/assets/f6bddb16-13f3-4e0a-a9b5-af0dc4ee979e" />

<img width="1877" height="678" alt="Image" src="https://github.com/user-attachments/assets/776952db-b132-4cb1-9cfd-8dd2fd1bea88" />

nix789 · 6 months ago

Title: Cursor jumps to top of screen / output overlaps in Terminology terminal
emulator — requires tmux workaround

Environment:

  • Claude Code: 2.1.84
  • OS: Ubuntu 24.04 (Linux 6.14.0)
  • Terminal emulator: Terminology 1.13.0 (Enlightenment project)
  • Desktop: GNOME (ubuntu:GNOME)
  • Shell: bash

---
Description

When running Claude Code directly inside Terminology, the cursor jumps to the
top of the screen each time Claude finishes a response and renders the input
prompt. This causes all output to overlap and become unreadable. Interactive
UI elements (permission prompts, choice menus) are also unreadable due to
rendering overflow.

Steps to reproduce

  1. Open Terminology 1.13.0
  2. Run claude directly in the shell
  3. Submit any prompt
  4. Observe: after Claude's response, the cursor jumps to row 1 and the input

prompt overwrites existing content

What was tried

┌────────────────────────────────────────────┬───────────┐
│ Attempted fix │ Result │
├────────────────────────────────────────────┼───────────┤
│ TERM=xterm via Claude Code env settings │ No change │
├────────────────────────────────────────────┼───────────┤
│ TERM=dumb + NO_COLOR=1 │ No change │
├────────────────────────────────────────────┼───────────┤
│ Disabling ty_escapes in Terminology config │ No change │
└────────────────────────────────────────────┴───────────┘

The issue persists even with TERM=dumb and NO_COLOR=1, which rules out
color/256color escape sequences as the cause. The root cause appears to be an
incompatibility between Claude Code's TUI cursor-control sequences (via the
ink renderer) and Terminology's handling of cursor positioning — specifically
how Terminology interprets cursor movement when redrawing the prompt UI.

Workaround

Running Claude Code inside tmux within Terminology resolves the issue
completely. tmux acts as an intermediary, managing cursor control and
presenting a stable screen to Terminology.

tmux new-session -A -s claude claude

This is a functional workaround but requires an additional dependency and
setup for users of Terminology.

Expected behavior

Claude Code should render correctly in Terminology without requiring tmux as
an intermediary.

Possible fix direction

Investigating what specific escape sequences ink's log-update emits when
drawing/redrawing the input prompt — particularly cursor-up sequences
(\033[{n}A) and alternate screen buffer switching (\033[?1049h/\033[?1049l) —
may identify the incompatibility. Terminology is a reasonably popular terminal
on Linux/Enlightenment desktops and is included in standard Ubuntu
repositories.

<img width="1202" height="678" alt="Image" src="https://github.com/user-attachments/assets/6ae11025-f0b0-4dee-a609-f5bd69fa6c17" />

github-actions[bot] · 6 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.