---
title: Composer
description: The Codex prompt band with its status line and shortcut hints.
---

<Component path="codex/examples/codex-composer" />

<RegistryInstall name="codex-composer" />

`CodexComposer` is a shadcn `InputGroup` on a full-width band with a bold `›`. While it is empty, a pink block cursor sits on the first letter of the placeholder. Under it, the status line shows the model and effort in yellow, the directory in green and the current task, then `← for agents · ? for shortcuts` with the keys in shadcn `Kbd`.

Every other prop goes to the input, so use `value` and `onChange` for a controlled prompt or `defaultValue` for an uncontrolled one.

| Prop | Default | Description |
| --- | --- | --- |
| `placeholder` | `Ask Codex to do anything` | The input placeholder. |
| `model` | `gpt-6.1-codex` | Model name in the status line. |
| `effort` | | Reasoning effort after the model, like `low`. |
| `cwd` | `~/acme/web` | Working directory in the status line. |
| `task` | | Current task after the directory. |
| `warnings` | | Shows `⚠ N warnings · f2 to view` on the right. |
| `context` | | Right-hand text, like `88% context left`, when there are no warnings. |
| `onSend` | | Called with the trimmed text on Enter. An uncontrolled composer clears afterwards. With `value`, clear it yourself in `onSend`. |
| `busy` | `false` | A turn is running. Enter does not send and Escape calls `onStop`. |
| `onStop` | | Called on Escape while `busy`. |

## Used in

**[Codex](/blocks/codex)**

A full recreation of an OpenAI Codex CLI session, from the banner to the pinned prompt.
