---
title: "Composer actions"
description: "A composer-action is a compact app-owned action beside the chat input controls. It is appropriate for opening app UI or starting an app workflow."
url: "https://sotaagents.ai/manual/developer-guide/composer-actions"
generated_by: "sotaagents-ldp"
docs_index: "https://sotaagents.ai/manual/llms.txt"
locale: "en"
---

# Composer actions

A `composer-action` is a compact app-owned action beside the chat input controls. It is appropriate for opening app UI or starting an app workflow.

YAML

```
contributes:
  ui:
    - id: report-action
      kind: nativeModule
      surface: composer-action
      slot: chat.composer.actions
      module:
        entry: dist/ui/app.js
        export: ReportAction
```

TSX

```
import { useAppContext } from '@sota/platform';

export function ReportAction() {
  const { ui } = useAppContext();
  return <button type="button" onClick={() => ui.openArtifact('reports.viewer')}>Reports</button>;
}
```

`useComposer` is deliberately unavailable here. If UI must read or edit the active draft, declare a `composer-panel`; do not reach into Core stores.
