Skip to content

Feature Request: Actionable Elements in Agent Output (clickable follow-up actions) #1336

@a00889920

Description

@a00889920

Feature Request: Actionable Elements in Agent Output

Summary

Allow the agent to render clickable action elements in its terminal output that, when activated by the user, inject a predefined message back into the conversation — enabling one-click execution of suggested follow-up actions like running skills, tools, or common workflows.

Problem

Today, the agent often suggests next steps in its responses:

Analysis complete. You might want to:
- Run the daily incident summary
- Check the build status  
- Deploy to staging

The user must then manually type the follow-up request. This creates friction, especially for:

  • Discoverable skills — new users don't know what to type
  • Multi-step workflows — agent suggests step 2, user has to rephrase it
  • Repetitive actions — same follow-up typed over and over

Proposed Solution

Agent-side: New markdown-like syntax

The agent's response can include action elements using a special syntax:

Analysis complete. You might want to:
- [▶ Run daily summary](@action "run PrimaryOCE daily_summary")
- [▶ Check build status](@action "check the build status for server-outlook-gateway")
- [▶ Deploy to staging](@action "deploy the current branch to staging")

Client-side: Rendered as interactive elements

The CLI client renders these as clickable/selectable items in the terminal:

Analysis complete. You might want to:
  ▶ Run daily summary          ← click or press [1]
  ▶ Check build status         ← click or press [2]
  ▶ Deploy to staging          ← click or press [3]

Activation methods (choose one or more)

Method How it works Terminal support
Keyboard shortcut Press [1], [2], [3] to select Universal
OSC 8 hyperlink + custom URI Click triggers copilot-action://run?msg=... Windows Terminal, iTerm2, modern terminals
Tab-completion Actions appear as completable suggestions Universal
Arrow-key selection Navigate with ↑↓, press Enter Universal

What happens on activation

  1. The action's predefined message is injected as a new user message into the conversation
  2. The agent processes it exactly as if the user typed it
  3. Normal conversation flow continues
User clicks "▶ Run daily summary"
  → Equivalent to user typing: "run PrimaryOCE daily_summary"
  → Agent invokes the PrimaryOCE skill
  → Results displayed

Use Cases

1. Skill Discovery & Execution

Agent: I found 3 relevant skills:
  ▶ Run daily incident summary
  ▶ Run gateway local dev
  ▶ Run API tests

2. Error Recovery Suggestions

Agent: Build failed with 3 errors. Suggested fixes:
  ▶ Auto-fix lint errors
  ▶ Show full error details
  ▶ Revert last change and retry

3. Multi-step Workflow Navigation

Agent: PR #4521 is ready. Next steps:
  ▶ View the diff
  ▶ Run CI checks
  ▶ Approve and merge

4. Confirmation Prompts

Agent: This will delete 47 files. Are you sure?
  ▶ Yes, proceed
  ▶ Show me the file list first
  ▶ Cancel

5. Onboarding & Help

Agent: Welcome! Here are some things I can do:
  ▶ Explore this codebase
  ▶ Run tests
  ▶ Show my calendar
  ▶ Check incidents

Technical Considerations

Syntax Design

  • Must be backwards-compatible (agents that emit actions should still render readable text in older clients)
  • Fallback rendering: ▶ Run daily summary (just plain text, no interactivity)
  • The action payload is a natural language message, not a function call — the agent still decides how to process it

Client Implementation

  • Actions are ephemeral — they're only valid for the current response
  • Once any action is activated (or the user types a new message), previous actions are invalidated
  • Actions should be visually distinct from regular text (color, icon, indentation)

Security

  • Action payloads are user-visible — no hidden commands
  • The agent processes the injected message through normal guardrails
  • No privilege escalation — same as if user typed the message manually

Prior Art

  • Slack — Bot messages with action buttons
  • GitHub Actions — Manual workflow dispatch buttons
  • VS Code Copilot Chat — Follow-up suggestions as clickable chips
  • ChatGPT — Suggested follow-up prompts as clickable pills
  • Jupyter notebooks — Interactive widgets in output cells

Impact

This would significantly improve:

  • Discoverability — users see what's possible without reading docs
  • Speed — one click vs. typing a full sentence
  • Workflow continuity — agent guides user through multi-step processes
  • Accessibility — reduces cognitive load of remembering exact phrasings

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:theming-accessibilityVisual themes, colors, dark/light mode, contrast, screen readers, i18n/RTL

    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