---
title: "trim_audio: Trim audio"
description: "Save one stretch of an owned voice-over, song or audio upload as a new WAV audio generation, cut to the sample."
canonical_url: "https://meetkuro.com/agents/tools/trim_audio/"
updated: 2026-11-03
locale: "en"
tool: "trim_audio"
scopes: ["generation.write"]
---

# trim_audio

**Trim audio**

Save one stretch of an owned voice-over, song or audio upload as a new WAV audio generation, cut to the sample. Specify the start time and duration in seconds. To cut a whole take into a talking head's lines, pass each window of `chunks` from transcribe_media with chunk_max_seconds. Costs no credits; uses account storage. get_generation waits for the result.

## Scope

- `generation.write` — Makes, edits, imports, shares and deletes media in the account.

## Behaviour

- **Writes**: Creates or changes items in the caller's own account.
- **Adds or updates**: Adds or updates; nothing the caller already has is deleted or overwritten.
- **Stays in the account**: Stays inside the caller's private Kuro account: any media provider it calls acts on Kuro's account, and the result is visible to no one else.

## Credits

What the tool's description says about credits, verbatim:

- Costs no credits; uses account storage. get_generation waits for the result.

## Inputs

| Name | Type | Required | Details |
| --- | --- | --- | --- |
| `source` | object (type: "upload") or object (type: "generation") | yes | — |
| `start_seconds` | number | yes | ≥ 0; ≤ 600 |
| `duration_seconds` | number | yes | > 0; ≤ 600 |
| `accurate` | boolean | no | — |

## Example call

A `tools/call` request with the required arguments only, each a placeholder read off the schema. Replace them before sending.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "trim_audio",
    "arguments": {
      "source": {
        "type": "upload",
        "upload_id": "00000000-0000-4000-8000-000000000000"
      },
      "start_seconds": 0,
      "duration_seconds": 1
    }
  }
}
```

## Input schema

As the server sends it in `tools/list`:

```json
{
  "type": "object",
  "properties": {
    "source": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "upload"
            },
            "upload_id": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "type",
            "upload_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "const": "generation"
            },
            "generation_id": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "type",
            "generation_id"
          ],
          "additionalProperties": false
        }
      ]
    },
    "accurate": {
      "type": "boolean"
    },
    "start_seconds": {
      "type": "number",
      "minimum": 0,
      "maximum": 600
    },
    "duration_seconds": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 600
    }
  },
  "required": [
    "source",
    "start_seconds",
    "duration_seconds"
  ],
  "additionalProperties": false
}
```

## Related tools

- [`transcribe_media`](https://meetkuro.com/agents/tools/transcribe_media.md): Get the spoken words out of any audio or video in the user's account, timed and attributed to speakers.
- [`get_generation`](https://meetkuro.com/agents/tools/get_generation.md): Get current status and signed media URL for one generation.
- [`trim_video`](https://meetkuro.com/agents/tools/trim_video.md): Save one stretch of an owned video as a new clip, using a keyframe copy by default.

---

## About Kuro

Kuro is an AI picture studio: prompt-driven images, clips, voice-overs and music, and storyboard-backed films with consistent characters across every scene.

Agents connect over MCP and can generate directly:

```
claude mcp add kuro https://api.meetkuro.com/mcp --transport http
```

The app is at https://app.meetkuro.com and requires an account.

Each guide, model page, comparison and free tool page on this site (not a tool's variants, and not the index pages) has a Markdown twin at its own URL plus `.md`, and so do /benchmarks/, the English /agents/ page (as /agents.md) and the MCP tool reference. Every tool: https://meetkuro.com/agents/tools/
