Skip to content

Add starter prompt suggestions to the empty conversation state #72

Description

@DragonnZhang

Problem or Motivation

When you open a new conversation, OpenWork shows a centered composer under the heading "What should we build?" — but nothing else. New users (and returning ones facing a blank canvas) get no hint about what the agent can do or how to phrase a good first request.

Every comparable desktop client fills this gap with prompt suggestions: Claude Code Desktop shows curated "prompt suggestions", and ChatGPT / Codex show example starter prompts on their empty state. OpenWork has a rotating placeholder in the input, but no clickable starting points.

Proposed Solution

Render a small row of starter prompt suggestion chips directly beneath the centered composer on the empty conversation state (only while the composer is empty). Clicking a chip populates the composer with a fuller prompt and focuses the input — it does not auto-send, so the user can edit before submitting.

  • 4 generic, build-oriented suggestions that match the "What should we build?" framing: Explain this codebase, Build a feature, Fix a bug, Write tests.
  • Each chip shows a short localized label + icon; clicking seeds the composer with the fuller localized prompt.
  • Suggestions hide as soon as the composer has content (typed or seeded), matching the empty-state-only behavior in other clients.

Feasibility

Frontend-only. The empty-state composer already lives in apps/electron/src/renderer/components/app-shell/ChatDisplay.tsx (showCenteredEmptyComposer). Seeding the composer reuses the existing controlled-draft channel (onInputChangeinputValue), the same path drafts already use — no backend/qwen-code changes. Content is static and localized via i18n. No new IPC, no new persistence.

Acceptance criteria (what the CDP assertion checks)

  1. On the empty conversation, a [data-testid="empty-suggestions"] surface renders with 4 chips.
  2. The composer starts empty.
  3. Clicking the first chip populates the composer with a prompt that is longer than the chip's short label (i.e. it seeds the prompt, not just the title).
  4. The suggestions surface disappears once the composer has content.

Alternatives Considered

  • Auto-send on click — rejected; seeding + letting the user edit is safer and matches Claude Code Desktop / ChatGPT.
  • Workspace-type-aware or dynamically generated suggestions — deferred; a small static, localized set is lower-risk and fully frontend.

Additional Context

Source references: Claude Code Desktop "prompt suggestions"; ChatGPT / Codex empty-state example prompts. Part of the autonomous desktop-feature parity loop (loop-bot).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    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