Skip to content

feat(renderers): add typewriter_delay parameter to AnsiRenderer#28

Merged
galuszkm merged 3 commits intomainfrom
copilot/add-typewriter-delay-to-ansirenderer
Apr 12, 2026
Merged

feat(renderers): add typewriter_delay parameter to AnsiRenderer#28
galuszkm merged 3 commits intomainfrom
copilot/add-typewriter-delay-to-ansirenderer

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 12, 2026

AnsiRenderer had no native way to produce a typewriter effect — developers had to subclass or proxy stdout, touching every consumer. This adds a first-class typewriter_delay parameter that centralises the behaviour at the renderer level.

Changes

  • AnsiRenderer.__init__ — new typewriter_delay: float = 0.0 keyword argument, stored as self._typewriter_delay
  • _write_with_delay(text) — new internal helper; when delay > 0.0 writes characters one-by-one, flushing and sleeping typewriter_delay seconds after each printable non-whitespace character; when delay == 0.0 writes the whole string in a single call (zero overhead)
  • _handle_token — delegates to _write_with_delay
  • _handle_reasoning — writes surrounding ANSI escape codes directly, passes only the content text through _write_with_delay so colour codes are never delayed
  • Only TOKEN and REASONING events are affected; all other output (tools, separators, completions) runs at full speed

Usage

# Default — no effect, no overhead
renderer = AnsiRenderer()

# Smooth typewriter output at ~8 ms per character
renderer = AnsiRenderer(typewriter_delay=0.008)

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • astral.sh
    • Triggering command: /usr/bin/curl curl -LsSf REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@galuszkm galuszkm marked this pull request as ready for review April 12, 2026 04:52
Copilot AI changed the title [WIP] Add typewriter_delay parameter for AnsiRenderer feat(renderers): add typewriter_delay parameter to AnsiRenderer Apr 12, 2026
Copilot AI requested a review from galuszkm April 12, 2026 04:52
Copy link
Copy Markdown
Member

@galuszkm galuszkm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@galuszkm galuszkm merged commit 845d3a1 into main Apr 12, 2026
11 checks passed
@galuszkm galuszkm deleted the copilot/add-typewriter-delay-to-ansirenderer branch April 12, 2026 04:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] typewriter_delay parameter for AnsiRenderer

2 participants