Token导航 LogoToken导航

Agent Skill · 效率

openutter(openutter 效率)

openutter 用于处理音频、语音、转写和声音素材相关任务,适合在 OpenClaw 中需要整理音频流程、转写内容或生成配音素材时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

openutter 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为操作浏览器;许可证为 MIT-0,第三方扫描有提醒项,按安装量在效率类的 21,003 个 Skill 里排第 4,509。

总安装 13,148周安装 559GitHub Stars 公开资料未说明下载 4,606核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openutter(openutter 效率)
来源仓库:https://github.com/sumansid/openutter
安装命令:
openclaw skills install openutter
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install openutter

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

openutter 用于处理音频、语音、转写和声音素材相关任务,适合在 OpenClaw 中需要整理音频流程、转写内容或生成配音素材时使用。适用于 Google Meet 会议字幕捕获和音频转写处理的效率提升场景。

通过 openclaw skills install openutter 命令安装,支持无头浏览器会议接入。安装前建议确认权限范围和维护状态,注意可能涉及屏幕录制和网络连接操作。openutter 属于效率类 Skill,可作为该场景下的辅助能力补充。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install openutter;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

openutter 怎么安装?

在终端执行 openclaw skills install openutter。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

openutter 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

openutter 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

openutter 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

openutter 用的人多吗?

公开数据是累计安装 13,148 次,近一周安装 559 次,下载 4,606 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

openutter 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
openutter

openutter 效率 · 本页

13,148—操作浏览器MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
open-utter
description
Headless Google Meet bot that joins meetings and captures live captions as transcripts.
homepage
https://github.com/sumansid/openutter
metadata
{ "openclaw": { "emoji": "🦦", "requires": { "bins": ["node"] } } }

OpenUtter

STOP — Ask the user before doing anything

When the user asks to join a meeting, you MUST do these steps IN ORDER. Do NOT skip ahead.

Step A: Read the file ~/.openutter/auth-meta.json (it may not exist — that's fine).

Step B: Ask the user how they want to join. Do NOT launch the bot yet.

If auth-meta.json exists and has an email field, ask:

"How would you like to join the meeting? 1. Join as user@gmail.com (authenticated — no host approval needed) 2. Join as OpenUtter Bot (guest — host must admit) 3. Join with a custom name (guest)"

If auth-meta.json does NOT exist, ask:

"What name should the bot use to join the meeting?"

Default to "OpenUtter Bot" if the user doesn't have a preference.

Step C: WAIT for the user to answer. Only then launch the bot with the right flags.

  • User chose authenticated → use --auth
  • User chose guest → use --anon --bot-name "Their Name" (always ask for a name)

The bot will refuse to start without --auth or --anon. When using --anon, --bot-name is also required.


A meeting bot that joins Google Meet meetings via Playwright browser automation and captures live captions as a real-time transcript.

Prerequisites

  • playwright-core (ships with openclaw)
  • Chromium browser: npx playwright-core install chromium

Join a Meeting

IMPORTANT: Always run these commands with background:true — the bot is a long-running process that stays in the meeting. Do not wait for it to complete; background it immediately and poll for status updates.

Launch command

exec background:true command:"npx tsx skills/openutter/scripts/utter-join.ts https://meet.google.com/abc-defg-hij --auth|--anon --channel <current-channel> --target <current-chat-id>"

IMPORTANT: Always pass --channel and --target from the current conversation context. The bot uses these to send screenshots and status images directly to the user's chat.

Options (required — bot will error without one):

  • --auth — join using saved Google account (~/.openutter/auth.json)
  • --anon --bot-name "Name" — join as a guest with this display name (both required together)

Other options:

  • --headed — show the browser window (for debugging)
  • --camera — join with camera on (default: off)
  • --mic — join with microphone on (default: off)
  • --duration 60m — auto-leave after duration (supports ms/s/m/h)

Live Caption Transcript

Captions are automatically captured whenever the bot is in a meeting. After joining, the bot enables Google Meet's built-in live captions and captures the text via a MutationObserver. Captions are deduplicated (Meet updates word-by-word) and flushed to a transcript file every 5 seconds.

Transcript location: ~/.openclaw/workspace/openutter/transcripts/<meeting-id>-<YYYY-MM-DD>.txt

Format:

[14:30:05] Alice: Hey everyone, let's get started
[14:30:12] Bob: Sounds good, I have the updates ready
[14:30:25] Alice: Great, go ahead

When the meeting ends, the bot prints [OPENUTTER_TRANSCRIPT] <path> with the transcript file path.

Get Transcript (what are they saying?)

When the user asks "what are they saying?", "what's happening?", "summarize the meeting", or anything about meeting content — run this script. Do NOT use utter-screenshot.ts for this.

exec command:"npx tsx skills/openutter/scripts/utter-transcript.ts"

Use --last 20 to get only the last 20 lines (for long meetings).

Read the output and summarize it for the user in natural language.

Take a Screenshot (visual context only)

If the user asks to see the meeting (e.g. "send me a screenshot", "what does it look like"):

exec command:"npx tsx skills/openutter/scripts/utter-screenshot.ts"

Send the screenshot image to the user via message. Do NOT read the screenshot yourself.

How It Works

  1. Join: Launches headless Chromium, navigates to the Meet URL, enters the bot name, clicks "Ask to join", and waits for the host to admit it.
  1. Caption capture: After joining, the bot clicks the CC button to enable Google Meet's live captions, then injects a MutationObserver to capture caption text from the DOM. Captions are deduplicated (partial word-by-word updates are ignored) and flushed to a transcript file every 5 seconds.

Authentication (Optional)

By default the bot joins as a guest and needs host admission. To join as an authenticated Google user (no admission needed), run the auth script once:

npx tsx skills/openutter/scripts/utter-auth.ts

This opens a headed browser — sign into Google, then press Enter. The session is saved to ~/.openutter/auth.json and automatically loaded on future joins. Re-run if the session expires.

Files

  • ~/.openutter/auth.json — saved Google session (cookies + localStorage, from utter-auth.ts)
  • ~/.openutter/chrome-profile/ — persistent Chromium profile (used when no auth.json)
  • ~/.openutter/config.json — bot configuration (optional)
  • ~/.openclaw/workspace/openutter/transcripts/ — live caption transcripts
  • ~/.openclaw/workspace/openutter/on-demand-screenshot.png — on-demand screenshot from a running meeting
  • ~/.openclaw/workspace/openutter/debug-join-failed.png — screenshot on join failure
  • ~/.openclaw/workspace/openutter/debug-admit-failed.png — screenshot on admission failure
  • ~/.openclaw/workspace/openutter/joined-meeting.png — confirmation screenshot after joining

Headless VM Tips

  • Chrome flags --use-fake-ui-for-media-stream and --use-fake-device-for-media-stream are set automatically, so no real camera/mic hardware is needed.
  • No X11/Wayland display is required — runs fully headless.
  • Use --duration to auto-leave after a set time.

Agent Behavior — MANDATORY

After launching the bot with exec background:true, you MUST poll the process to check for success/failure and send screenshots back to the user.

Step 1: Poll for output

After starting the background exec, poll the process every 10–15 seconds:

process action:poll

Step 2: Parse markers and send images using the message tool

The bot prints machine-readable markers. When you see them, you MUST use the message tool to send the screenshot image to the user.

On success — bot prints [OPENUTTER_SUCCESS_IMAGE] <path>:

message action:"send" media:"./openutter/joined-meeting.png" content:"Successfully joined the meeting!"

On screenshot request — bot prints [OPENUTTER_SCREENSHOT] <path>:

message action:"send" media:"./openutter/on-demand-screenshot.png" content:"Here's the current meeting view"

On failure — bot prints [OPENUTTER_DEBUG_IMAGE] <path> (or exits non-zero):

message action:"send" media:"./openutter/debug-join-failed.png" content:"Could not join the meeting. Here is what the bot saw"

CRITICAL: ALWAYS use the message tool with media:"./openutter/<filename>.png" to send screenshots. Use relative paths only (starting with ./). Never use absolute paths or ~ paths. NEVER just describe what happened in text. The user MUST receive the actual image.

When the user asks "send me screenshot" or "what do you see", run utter-screenshot.ts, then use the message tool with media:"./openutter/on-demand-screenshot.png".

Step 3: When user asks about meeting content

CRITICAL: When the user asks what's happening, what someone said, or anything about meeting content — run utter-transcript.ts. NEVER use utter-screenshot.ts for this.

exec command:"npx tsx skills/openutter/scripts/utter-transcript.ts"

Read the output and summarize it for the user. Use --last 20 for long meetings.

On meeting end — bot prints [OPENUTTER_TRANSCRIPT] <path>: Run utter-transcript.ts and provide a summary to the user.

When to use which script

User asks...Use this script
"what are they saying?"utter-transcript.ts
"what's happening in the meeting?"utter-transcript.ts
"summarize the meeting"utter-transcript.ts
"what did they talk about?"utter-transcript.ts
"send me a screenshot"utter-screenshot.ts
"what does the meeting look like?"utter-screenshot.ts

NEVER read or analyze screenshot images to understand meeting content.

Screenshot files

  • ~/.openclaw/workspace/openutter/joined-meeting.png — confirmation screenshot after joining
  • ~/.openclaw/workspace/openutter/debug-join-failed.png — join button not found
  • ~/.openclaw/workspace/openutter/debug-admit-failed.png — not admitted / blocked / timed out

Troubleshooting

  • Join button not found: Google Meet UI changes occasionally. The debug screenshot shows what the bot saw — send it to the user.
  • Not admitted: The bot joins as a guest and needs host approval. Ask the host to admit "OpenUtter Bot". If timed out, the debug screenshot is sent automatically.
  • No captions captured: The CC button selector may change with Meet updates. If the transcript is empty, captions may not have been enabled. Try --headed to verify the CC button is clicked.
  • Headless blocked: The bot uses stealth patches to bypass headless detection. If Google Meet blocks it, try --headed for debugging.

平台分布

OpenClaw

79.58%
按下载量换算3,665

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills