Tool tree
gradeNot graded
page: Home
list_toolsAnswer
List every audio tool on this site with what it does and the agent action it exposes. Call this first to choose the right page for a request, then open_tool to go there. Read-only.
View tool JSON
{
"name": "list_tools",
"kind": "answer",
"impl": "imperative",
"description": "List every audio tool on this site with what it does and the agent action it exposes. Call this first to choose the right page for a request, then open_tool to go there. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}open_toolAction
Open one of this site's tools by slug, e.g. "silence-remover". The page navigates after replying; that page then registers its own tools, so call inspect_audio there. Audio already loaded on the current page is not carried over: use send_to_tool for that.
View tool JSON
{
"name": "open_tool",
"kind": "act",
"impl": "imperative",
"description": "Open one of this site's tools by slug, e.g. \"silence-remover\". The page navigates after replying; that page then registers its own tools, so call inspect_audio there. Audio already loaded on the current page is not carried over: use send_to_tool for that.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "A slug from list_tools."
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/"
}page: Audio trimmer
inspect_audioAnswer
Call this first. Read derived facts about the audio loaded on this page: whether a file is loaded, its duration, channels and sample rate, the current selection, every visible setting and the export format. Never returns audio samples or file contents.
View tool JSON
{
"name": "inspect_audio",
"kind": "answer",
"impl": "imperative",
"description": "Call this first. Read derived facts about the audio loaded on this page: whether a file is loaded, its duration, channels and sample rate, the current selection, every visible setting and the export format. Never returns audio samples or file contents.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/audio-trimmer"
}set_output_formatAction
Choose the download format shown in the export bar, and optionally the bitrate for lossy formats. Changes a visible control only; nothing is rendered or saved.
View tool JSON
{
"name": "set_output_format",
"kind": "act",
"impl": "imperative",
"description": "Choose the download format shown in the export bar, and optionally the bitrate for lossy formats. Changes a visible control only; nothing is rendered or saved.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"mp3",
"wav",
"m4a",
"ogg",
"opus",
"flac",
"aac",
"aiff",
"wma",
"m4r"
],
"description": "Output format id."
},
"bitrateKbps": {
"type": "number",
"description": "Bitrate for lossy formats, in kbps."
}
},
"additionalProperties": false
},
"page": "/audio-trimmer"
}render_previewAction
Render the result of the current settings locally and show it as a listenable player below the controls. Does not download, upload or replace the original.
View tool JSON
{
"name": "render_preview",
"kind": "act",
"impl": "imperative",
"description": "Render the result of the current settings locally and show it as a listenable player below the controls. Does not download, upload or replace the original.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/audio-trimmer"
}export_downloadAction
Finish the job: render the result with the current settings and start a browser download of the edited audio. This saves a file on the device, so call it only after the person has asked for the export or the trimmed file.
View tool JSON
{
"name": "export_download",
"kind": "act",
"impl": "imperative",
"description": "Finish the job: render the result with the current settings and start a browser download of the edited audio. This saves a file on the device, so call it only after the person has asked for the export or the trimmed file.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"mp3",
"wav",
"m4a",
"ogg",
"opus",
"flac",
"aac",
"aiff",
"wma",
"m4r"
],
"description": "Download format. Default: the format shown in the export bar."
}
},
"additionalProperties": false
},
"page": "/audio-trimmer"
}list_toolsAnswer
List every audio tool on this site with what it does and the agent action it exposes. Call this first to choose the right page for a request, then open_tool to go there. Read-only.
View tool JSON
{
"name": "list_tools",
"kind": "answer",
"impl": "imperative",
"description": "List every audio tool on this site with what it does and the agent action it exposes. Call this first to choose the right page for a request, then open_tool to go there. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/audio-trimmer"
}open_toolAction
Open one of this site's tools by slug, e.g. "silence-remover". The page navigates after replying; that page then registers its own tools, so call inspect_audio there. Audio already loaded on the current page is not carried over: use send_to_tool for that.
View tool JSON
{
"name": "open_tool",
"kind": "act",
"impl": "imperative",
"description": "Open one of this site's tools by slug, e.g. \"silence-remover\". The page navigates after replying; that page then registers its own tools, so call inspect_audio there. Audio already loaded on the current page is not carried over: use send_to_tool for that.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "A slug from list_tools."
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/audio-trimmer"
}send_to_toolAction
Hand the audio on this page to another tool on this site and open it there, with no re-upload. Sends the result of the current settings, rendered losslessly; take "original" sends the file as it was loaded. Slugs come from list_tools. The page navigates after replying; call inspect_audio on the new page.
View tool JSON
{
"name": "send_to_tool",
"kind": "act",
"impl": "imperative",
"description": "Hand the audio on this page to another tool on this site and open it there, with no re-upload. Sends the result of the current settings, rendered losslessly; take \"original\" sends the file as it was loaded. Slugs come from list_tools. The page navigates after replying; call inspect_audio on the new page.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The tool to open next, e.g. \"silence-remover\"."
},
"take": {
"type": "string",
"enum": [
"result",
"original"
],
"description": "What to send. Default: result."
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/audio-trimmer"
}load_audio_from_urlAction
Open an audio file by URL on this page, as if the person had chosen it: a public https:// URL, a data: URL, or an http://localhost URL served on this machine (an agent with a shell can serve a file the person attached and load it here). The browser fetches it and it stays in the tab. The server must allow cross-origin reads. Otherwise ask the person to choose the file.
View tool JSON
{
"name": "load_audio_from_url",
"kind": "act",
"impl": "imperative",
"description": "Open an audio file by URL on this page, as if the person had chosen it: a public https:// URL, a data: URL, or an http://localhost URL served on this machine (an agent with a shell can serve a file the person attached and load it here). The browser fetches it and it stays in the tab. The server must allow cross-origin reads. Otherwise ask the person to choose the file.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "https:// or data: URL of an audio file."
}
},
"required": [
"url"
],
"additionalProperties": false
},
"page": "/audio-trimmer"
}set_selectionAction
Move the selection handles on the waveform, in seconds from the start of the file. The page clamps the values to the file.
View tool JSON
{
"name": "set_selection",
"kind": "act",
"impl": "imperative",
"description": "Move the selection handles on the waveform, in seconds from the start of the file. The page clamps the values to the file.",
"inputSchema": {
"type": "object",
"properties": {
"startSec": {
"type": "number",
"minimum": 0,
"description": "Selection start."
},
"endSec": {
"type": "number",
"minimum": 0,
"description": "Selection end."
}
},
"additionalProperties": false
},
"page": "/audio-trimmer"
}set_trimAction
Trim, cut or clip the loaded audio: set the start and end of the selection in seconds, whether to keep that selection or cut it out and join the rest, and whether to fade the new edges. Example: the first 30 seconds is startSec 0, endSec 30, mode keep. Moves the visible controls only; nothing is saved until export_download is called.
View tool JSON
{
"name": "set_trim",
"kind": "act",
"impl": "imperative",
"description": "Trim, cut or clip the loaded audio: set the start and end of the selection in seconds, whether to keep that selection or cut it out and join the rest, and whether to fade the new edges. Example: the first 30 seconds is startSec 0, endSec 30, mode keep. Moves the visible controls only; nothing is saved until export_download is called.",
"inputSchema": {
"type": "object",
"properties": {
"startSec": {
"type": "number",
"description": "Selection start, in seconds from the start of the file.",
"minimum": 0
},
"endSec": {
"type": "number",
"description": "Selection end, in seconds from the start of the file.",
"minimum": 0
},
"mode": {
"type": "string",
"description": "\"keep\" exports only the selection; \"cut\" removes it and joins the rest.",
"enum": [
"keep",
"cut"
]
},
"fade": {
"type": "boolean",
"description": "Fade the new edges for 20 ms so a cut never clicks."
}
},
"additionalProperties": false
},
"page": "/audio-trimmer"
}page: Audio joiner
set_join_gapAction
Set the silent gap in seconds inserted between each pair of files, 0 to 5. Zero joins them with no space at all. The run bar and the total length update at once; nothing is saved until export_download is called.
View tool JSON
{
"name": "set_join_gap",
"kind": "act",
"impl": "imperative",
"description": "Set the silent gap in seconds inserted between each pair of files, 0 to 5. Zero joins them with no space at all. The run bar and the total length update at once; nothing is saved until export_download is called.",
"inputSchema": {
"type": "object",
"properties": {
"gapSec": {
"type": "number",
"description": "Digital silence between tracks, in seconds, 0 to 5. About 2 reads as an album gap; 0 suits segments of one continuous recording.",
"minimum": 0,
"maximum": 5
}
},
"additionalProperties": false
},
"page": "/audio-joiner"
}page: Audio splitter
set_splitAction
Choose where the cuts go: a fixed number of equal parts, a fixed length for every part, or one cut in the middle of each silent gap. Each method reads only its own knobs. The cut markers on the waveform and the plan text update at once; nothing is saved until export_download is called, which downloads one file per part.
View tool JSON
{
"name": "set_split",
"kind": "act",
"impl": "imperative",
"description": "Choose where the cuts go: a fixed number of equal parts, a fixed length for every part, or one cut in the middle of each silent gap. Each method reads only its own knobs. The cut markers on the waveform and the plan text update at once; nothing is saved until export_download is called, which downloads one file per part.",
"inputSchema": {
"type": "object",
"properties": {
"method": {
"type": "string",
"description": "\"equal\" splits into a fixed number of parts; \"length\" makes every part a fixed length with a shorter remainder at the end; \"silence\" cuts at every gap quieter than the threshold.",
"enum": [
"equal",
"length",
"silence"
]
},
"parts": {
"type": "number",
"description": "Number of equal parts for the equal method, 2 to 40.",
"minimum": 2,
"maximum": 40
},
"partLengthSec": {
"type": "number",
"description": "Length of each part in seconds for the length method, 5 to 900 in steps of 5.",
"minimum": 5,
"maximum": 900
},
"silenceThresholdDbfs": {
"type": "number",
"description": "Audio below this level in dBFS counts as silence for the silence method, -70 to -20. Room tone sits near -50, so -45 catches it.",
"minimum": -70,
"maximum": -20
},
"minimumGapSec": {
"type": "number",
"description": "A gap must last at least this many seconds to earn a cut, 0.3 to 5.",
"minimum": 0.3,
"maximum": 5
}
},
"additionalProperties": false
},
"page": "/audio-splitter"
}page: Silence remover
set_silence_removalAction
Set how quiet gaps are detected and removed: the silence threshold in dBFS, the shortest gap that counts, and the padding kept on each side of a cut. The report under the sliders and the highlights on the waveform update at once; nothing is saved.
View tool JSON
{
"name": "set_silence_removal",
"kind": "act",
"impl": "imperative",
"description": "Set how quiet gaps are detected and removed: the silence threshold in dBFS, the shortest gap that counts, and the padding kept on each side of a cut. The report under the sliders and the highlights on the waveform update at once; nothing is saved.",
"inputSchema": {
"type": "object",
"properties": {
"threshold": {
"type": "number",
"description": "Audio below this level, in dBFS, counts as silence. -70 to -20.",
"minimum": -70,
"maximum": -20
},
"minimumGapSec": {
"type": "number",
"description": "Ignore gaps shorter than this many seconds. 0.1 to 3.",
"minimum": 0.1,
"maximum": 3
},
"paddingSec": {
"type": "number",
"description": "Seconds of quiet kept on each side of a cut. 0 to 0.5.",
"minimum": 0,
"maximum": 0.5
}
},
"additionalProperties": false
},
"page": "/silence-remover"
}