---
title: "Voice message — Mango 3.1 Grove extension"
description: "Record, preview, and upload a voice message to your configured file host."
url: "https://mangoirc.chat/extensions/voice"
language: "en"
---

[← All extensions](https://mangoirc.chat/extensions)

Messaging · Sprig

# Voice message

by [Mango](https://mangoirc.chat/)

Record, preview, and upload a voice message to your configured file host.

Install in Mango 3.1 6 KB · Mango 3.1

Version

0.1.6

Runs as

Composer pane

Grove API

1

Updated

2026-09-18

Requested access

## 3 permissions

- **Record voice messages**Records audio through Mango’s native microphone bridge after system permission, while its composer pane is visible.
- **Upload files**Uploads files through your configured provider and inserts their links into your message draft without sending it.
- **Add slash commands**Registers its own commands and can show native command-result cards.

Network access

## No internet access

Its manifest declares no external hosts. Grove’s sandbox blocks network requests outside the package.

From the extension

## README

# Voice message

A small (420 × 144pt) composer-only utility, opened from ` + ` or ` /record `. Install from the Mango Extension Store, or load this directory with Grove’s **Load Unpacked (Dev)…** command. No build step or external network permissions are needed. Requires a Mango 3.1 build with the new native ` microphone.record ` bridge; earlier builds reject this new capability safely. Update Mango if it reports an unsupported capability during installation.

Record up to three minutes of mono AAC, preview/discard, then **Upload**. Optionally enter a filename in the labeled File name field between Play and Upload. It becomes the audio filename (with ` .m4a ` added automatically); leaving it blank uses ` voice-message.m4a `. Mango uploads through the configured provider and leaves the URL in the draft. The draft includes a plain-text label and duration, for example ` [Voice] (00:12): https://files.example/voice-message.m4a `—not a Markdown link or a proprietary IRC tag. Failed uploads do not insert the label. The recipient does not need this extension: Mango’s audio link preview provides the player, and other clients can open the ordinary file URL.

Microphone permission is explicit. Closing the utility, revoking the grant, backgrounding Mango, or losing the WebKit process stops capture. No local file paths or upload credentials enter JavaScript. Browser microphone access is still denied. Recordings are temporary, not a durable draft across app restarts.

The selected host must accept audio. Deploy the accompanying Mango Uploads M4A validation change before using the hosted service; older deployments reject audio. Do not silently switch to a different host.

**manifest.json**chat.mangoirc.grove.voice

```
{
  "grove": 1,
  "id": "chat.mangoirc.grove.voice",
  "name": "Voice message",
  "version": "0.1.6",
  "description": "Record, preview, and upload a voice message to your configured file host.",
  "author": {
    "name": "Mango",
    "url": "https://mangoirc.chat"
  },
  "entry": "index.html",
  "readme": "README.md",
  "presentation": {
    "surfaces": [
      "composer"
    ],
    "defaultSurface": "composer",
    "minSize": {
      "width": 320,
      "height": 144
    },
    "defaultSize": {
      "width": 420,
      "height": 144
    }
  },
  "contributions": {
    "commands": [
      {
        "name": "record",
        "summary": "Record a voice message"
      }
    ]
  },
  "capabilities": [
    "microphone.record",
    "uploads.use",
    "commands.register"
  ],
  "hostPermissions": []
}
```
