Skip to content

Feature Request: Auto-name terminal sessions from conversation context #3645

@bojanbulut

Description

@bojanbulut

Describe the feature or problem you'd like to solve

When working across multiple Copilot CLI sessions throughout the day, all terminal tabs are unnamed or generically labelled. There is no way to glance at your taskbar or terminal tabs and know which session was debugging the auth bug versus which was the deployment pipeline fix. Over a full day of development, context-switching becomes unnecessary mental overhead.

Proposed solution

At the start of each new Copilot CLI session, automatically analyze the first user message and generate a 2 to 3 word summary that gets applied as the terminal tab/window title.

Example behaviour:

┌─────────────────────────────────────────────┬──────────────────────┐
│ First message │ Auto-generated title │
├─────────────────────────────────────────────┼──────────────────────┤
│ "Why is my UAT health check returning 403?" │ UAT Health Fix │
├─────────────────────────────────────────────┼──────────────────────┤
│ "Help me refactor the auth middleware" │ Auth Refactor │
├─────────────────────────────────────────────┼──────────────────────┤
│ "Write unit tests for the payments service" │ Payment Tests │
└─────────────────────────────────────────────┴──────────────────────┘

Why This Matters

  • Zero friction, no user input required
  • Works with Windows Terminal, iTerm2, and VS Code integrated terminal
  • Compounds value for power users running parallel sessions
  • Aligns with Copilot's goal of reducing cognitive load during development

Example prompts or workflows

Implementation Ideas

  • Use the same summarisation the model already does for chat history and surface it as a terminal title via ANSI escape sequences or platform-native title APIs
  • Optionally refresh the title at session end to reflect the final resolved topic
  • Could be opt-in via a user setting: copilotcli.autoNameTerminal: true

Additional context

Current Workaround

Manually calling $Host.UI.RawUI.WindowTitle via a custom codeGeneration.instructions rule in VS Code settings.json, but this requires the model to remember to do it and does not work consistently across all terminal hosts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:sessionsSession management, resume, history, session picker, and session statearea:terminal-renderingDisplay and rendering: flickering, scrolling, line wrapping, output formatting
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions