> ## Documentation Index
> Fetch the complete documentation index at: https://fal.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool activity

> Read tool progress, visible reasoning, and activated skills from response snapshots.

Response snapshots include activity from their execution turns.
Use `fal.activities` to display progress and `fal.activated_skills` to inspect loaded skills.

```ts theme={null}
import { agent } from "./client.ts";

for await (const response of agent.stream({
  input: "Plan a product photo.",
})) {
  for (const activity of response.fal.activities ??
    []) {
    console.log(
      activity.id,
      activity.label,
      activity.status,
    );
  }
  console.log(response.fal.activated_skills ?? []);
}
```

Each update contains the complete activity snapshot. Replace displayed state instead of appending every update.
Activity IDs remain stable when you retrieve or reconnect to the same response.

| Field                    | Meaning                                                    |
| ------------------------ | ---------------------------------------------------------- |
| `id`                     | Stable activity identity within the response.              |
| `turn_id`                | Execution turn that produced the activity.                 |
| `kind`                   | `tool` or `reasoning`.                                     |
| `label`                  | Display label.                                             |
| `status`                 | `running` or `completed`.                                  |
| `started_at`, `ended_at` | Unix timestamps in milliseconds. The end time is optional. |
| `duration_ms`            | Optional duration in milliseconds.                         |

Tool activities include `node`, an optional tool `name`, and optional JSON `arguments` and `output`.
Reasoning activities include visible reasoning in `content`.
Check the activity kind before reading its fields.

Use structured [input requests](/docs/documentation/agent/sdk/inputs) for questions and approvals.
Read the response status and error to determine whether the task succeeded.

`activated_skills` contains names loaded during these turns, including active skills inherited from the conversation.
It does not list every available skill. See [skills](/docs/documentation/agent/sdk/skills) for discovery and activation.

Both arrays are optional. Missing fields mean the response does not report tool or skill activity.
