Skip to content

[Bug]: /tools list shows raw terminal escape codes #4128

@nopjmp

Description

@nopjmp

Bug Description

/tools list is showing raw escape codes

Steps to Reproduce

  1. Run hermes
  2. Type /tools list
  3. Observe terminal escape codes

Expected Behavior

Colored response without escape codes

Actual Behavior

⚙  /tools list
Built-in toolsets (cli):
  ?[32m✓ enabled?[0m  web  ?[2m🔍 Web Search & Scraping?[0m
  ?[32m✓ enabled?[0m  browser  ?[2m🌐 Browser Automation?[0m
  ?[32m✓ enabled?[0m  terminal  ?[2m💻 Terminal & Processes?[0m
  ?[32m✓ enabled?[0m  file  ?[2m📁 File Operations?[0m
  ?[32m✓ enabled?[0m  code_execution  ?[2m⚡ Code Execution?[0m
  ?[32m✓ enabled?[0m  vision  ?[2m👁  Vision / Image Analysis?[0m
  ?[31m✗ disabled?[0m  image_gen  ?[2m🎨 Image Generation?[0m
  ?[31m✗ disabled?[0m  moa  ?[2m🧠 Mixture of Agents?[0m
  ?[32m✓ enabled?[0m  tts  ?[2m🔊 Text-to-Speech?[0m
  ?[32m✓ enabled?[0m  skills  ?[2m📚 Skills?[0m
  ?[32m✓ enabled?[0m  todo  ?[2m📋 Task Planning?[0m
  ?[32m✓ enabled?[0m  memory  ?[2m💾 Memory?[0m
  ?[32m✓ enabled?[0m  session_search  ?[2m🔎 Session Search?[0m
  ?[32m✓ enabled?[0m  clarify  ?[2m❓ Clarifying Questions?[0m
  ?[32m✓ enabled?[0m  delegation  ?[2m👥 Task Delegation?[0m
  ?[32m✓ enabled?[0m  cronjob  ?[2m⏰ Cron Jobs?[0m
  ?[31m✗ disabled?[0m  rl  ?[2m🧪 RL Training?[0m
  ?[31m✗ disabled?[0m  homeassistant  ?[2m🏠 Home Assistant?[0m

Affected Component

CLI (interactive chat)

Messaging Platform (if gateway-related)

N/A (CLI only)

Operating System

Ubuntu 24.04

Python Version

3.11.15

Hermes Version

0.6.0

Relevant Logs / Traceback

Root Cause Analysis (optional)

It appears that prompt_toolkit is, rightfully, escaping the escape sequences to prevent escape code injections. However, we want them in this case.

Proposed Fix (optional)

banner.py has _pt_print that can print it out correctly on CLI on in the prompt_toolkit window. I'm not sure if this is the appropriate fix, but I have a patch available that moves banner.py function to colors.py and updates tools_config.py to use it. It just seems incorrect to me and I'm not sure the right way to resolve the issue across the board.

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions