island-io/mila/mila-meetings
Claude Code and agent skill by island-io/mila
- community
Checking that the SKILL.md file is still in the repository.
Work with Mila transcriptions via the mila MCP server — summarize or search past recordings/meetings ("my last meeting with John"), and follow the current in-progress meeting in real time to suggest what to say next. Use whenever the user mentions Mila, their recordings, meeting transcripts, or asks for live meeting help.
Install
npx vskill@latest install island-io/mila/mila-meetingsSKILL.md
Mila meetings
Mila is the user's local macOS transcription app. The mila MCP server exposes its recordings. If its tools (list_recordings, get_transcript, save_transcript, search_transcripts, get_live_transcript) are not available, tell the user to register the server once: claude mcp add mila -- '/Applications/Mila.app/Contents/MacOS/mila-mcp' (the path is wherever Mila.app actually lives — Settings ▸ Storage shows the exact command with a Copy button)
Past recordings
- "Last meeting with <name>" →
list_recordings(speaker: "<name>", limit: 1),
then get_transcript(id: …). Speaker matching is a case-insensitive substring over the display names the user assigned in Mila; if it finds nothing, retry with a shorter fragment (first name), then fall back to search_transcripts(query: "<name>") — the name may appear in the text or title rather than the speaker labels.
- "What did we say about X" →
search_transcripts(query: "X"), then
get_transcript on the interesting hits.
- Recordings may be long. For summarization,
get_transcriptalready
returns a stored summary when one exists — read it before deciding to re-summarize from the raw transcript. Transcripts may be in any language (often Hebrew); answer in the user's language.
- Any time the transcript should end up in a file (export, save,
upload somewhere, attach) → save_transcript(id: …, path: …) with an absolute path or an existing folder, and Mila writes the complete file itself. NEVER fetch the transcript and write it out yourself: re-emitting it costs about one output token per character (Hebrew especially), i.e. minutes per meeting, where save_transcript takes milliseconds. The reply has saved_to and bytes instead of the text; hand that path to whatever comes next (an upload tool, the user). An existing file is refused unless you pass overwrite: true — ask the user before replacing one. If it refuses because saving files is turned off, tell the user it is a separate setting in Mila (Settings ▸ Storage ▸ "Also allow saving transcripts to files") — do not fall back to writing the transcript out yourself unless they ask for that. Only finished transcripts are saved.
- "Subtitles" / "an .srt for this recording" → `save_transcript(id: …,
format: "srt", path: …)` (next to the user's video if they named one); do not paste cues into chat. It is the same output as Mila's Export Subtitles. If the tool refuses because the recording has no timed segments, say so and offer the text transcript.
- Action items from
get_transcriptcarry asource.voice_command
means the speaker dictated the item out loud; inferred means Live AI derived it from the conversation. Do not report an inferred item as something someone said — say it was picked up from the discussion.
Live meeting assistant
When the user asks to follow the current meeting / act as a live assistant:
- Call
get_live_transcriptwith no arguments. Ifstatusis
not_recording, tell the user to start a Mila recording and offer to check again shortly.
- Poll in a loop every ~15–20 seconds, passing back the previous
response's session_id, revision as since_revision, and next_segment_index as since_segment_index.
{changed: false}→ nothing new; keep waiting silently.- New segments → the first returned segment replaces the last one
you already had (live transcription rewrites it); the rest append.
Output ordering (critical): in harnesses that hide text written between tool calls, anything you write before your next tool call is LOST to the user. In every loop turn: poll, arm the next wake-up timer first (background sleep / scheduled wakeup), and only then write the echo/answer as the turn's FINAL message with no tool calls after it. Never end a loop turn with a placeholder like "(listening)" after the real content — the placeholder is all the user will see.
- Only speak up when the new content warrants it. Default output per
update: one or two sentences of "what to say next" — a concrete suggestion the user could actually say, plus (only when useful) a one-line reason. Don't re-summarize the whole meeting every tick. Match the meeting's language.
- Special statuses:
recording_live_unavailable: no live text will appear for this
recording (live transcription is off in Mila's settings, or not available on this Mac) — say so and stop polling frequently; check occasionally for completed.
stale: warn that Mila seems to have stopped updating (possible
crash); the transcript won't grow.
new_session: true: a different recording started — confirm with
the user before following the new one.
- On
status: completed: stop polling. Call
get_transcript(id: final_recording_id) when the reply carries one — it is optional, and a recording can finish without a handoff id. If it's absent, take the newest entry from list_recordings instead (the reply's note says so too). Close with a short summary + action items.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/mila-meetings/SKILL.md
Popularity
- Repository stars
- 233
- Repository forks
- 27
- 7-day trend score
- 32
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/island-io/mila/mila-meetings)