Intake Skill

Local transcription of Apple Voice Memos on a Mac: utterance tables, daily reports and meeting notes for an agent

  • 66 ★ on the repository
  • Last commit
  • MIT
Skill

Broad access

Why this level

  • The skill reads personal voice memos from the Voice Memos container and passes transcript text to Codex CLI
  • The nightly scheduled run works without a person and writes files to disk
All reasons and checks

grapeot/intake-skill

Install

Manual install

python -m intake_skill doctor

Environment check after installation. A day run: `python -m intake_skill run-day --date YYYYMMDD --asr-engine mlx --postprocess-engine codex`.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The skill reads personal voice memos from the Voice Memos container and passes transcript text to Codex CLI
  • The nightly scheduled run works without a person and writes files to disk

This is third-party code. Review the repository files before installing.

What it does

Intake Skill takes Apple Voice Memos already synced to a Mac and places normalized audio, a `transcript_YYYYMMDD.csv` transcript table, Markdown and HTML daily reports and meeting notes in `meetings/*.md` into the `data/YYYYMMDD/` folder. The pipeline has three steps: syncing local files from the standard Voice Memos container, transcribing with the local MLX Qwen3 ASR model (`Qwen/Qwen3-ASR-1.7B`) and producing reports through a configured Codex CLI. The commands: `python -m intake_skill doctor` checks the environment, `sync --date ... --dry-run` shows what would be copied, `run-day --date ... --asr-engine mlx --postprocess-engine codex` performs a run and `dashboard` opens a status panel. The skill is meant to be installed by the agent itself: you give it the repository link in your workspace, and it clones the repo to `skills/intake-skill`, installs dependencies and `mlx-qwen3-asr`, runs synthetic audio through every step and shows the results. A nightly scheduled run is optional and enabled only after operator confirmation.

Who it is for. Mac users with voice memos who want daily transcripts and meeting notes without cloud speech-recognition services.

Good fit when

  • Apple voice recorder memos pile up and a daily Markdown and HTML report is needed
  • After a meeting a summary must come from the recording without manual transcription
  • Recognition must run locally while Codex CLI prepares the report text
  • A nightly scheduled run and a dashboard for manual catch-up of missed days are wanted

Not a fit when

  • The recordings do not come from Apple Voice Memos: the skill does not record from a microphone
  • Speaker identification or attributing lines to participants is needed: this is excluded by design
  • There is no Mac where the memos have already synced

Example request

Install https://github.com/grapeot/intake-skill for me, run the sample audio and show where the reports landed

Limitations

The skill is narrow by design: Apple Voice Memos on a Mac only, no microphone recording, no speaker separation and no other audio sources. Local recognition needs `mlx-qwen3-asr` and the downloaded `Qwen/Qwen3-ASR-1.7B` model, and the first download takes time. Codex CLI prepares the reports, so it must be configured, and transcript text goes to that CLI. The nightly run works only if the Mac stays awake and powered and Voice Memos sync often enough. Cron runs with a minimal environment, and the managed line sets `PATH`. Installation is project-local and creates no global Codex skill.

How to disable. Delete the project `skills/intake-skill` folder and the nightly job from the schedule (`crontab -e`). The `data/` results folder remains and can be deleted separately if needed.

FAQ

How do I install Intake Skill?

Give the agent the repository link and ask it to install: it clones it to `skills/intake-skill`, installs dependencies and `mlx-qwen3-asr` and verifies the pipeline on sample audio. The detailed playbook is in `skills/skill_intake.md`.

Where are the results stored?

In `data/YYYYMMDD/`: audio, `transcript_YYYYMMDD.csv`, `daily_YYYYMMDD.md`, `daily_YYYYMMDD.html` and notes in `meetings/`.

Does recognition run locally?

Yes, the local MLX Qwen3 ASR model transcribes after `mlx-qwen3-asr` is installed. Reports are prepared by the operator's Codex CLI, so transcript text goes to it.

How do I enable the nightly run?

The skill installs the schedule once after your confirmation, and `python -m intake_skill dashboard` shows the status. The Mac must stay awake at that time.

Can the skill tell speakers apart?

No, speaker recognition and participant attribution are excluded by design. The skill also does not record from a microphone.

Discussion

No questions or reviews yet.

Skills

A skill and MCP server let an agent search and analyze meeting, lecture and stream transcripts kept by the DeLive app

SkillExtended access261Repository stars

18 portable skills for work where AI is weakest: messy voice input, message tone, small trend tests and safe shipping.

PluginMinimal access108Repository stars
Official

MeetCap records Mac meetings and transcribes them locally; its skill lets Claude Code and Codex record and search the archive

SkillBroad access305Repository stars

cafe3310's personal skill collection: spec-driven project work, reviews, reports, browser, 3D and video in one repository

SkillExtended access256Repository stars

Local AI commands for voice and text: clipboard dictation, text fixes, speech, an assistant and parallel agents in worktrees

CLIExtended access239Repository stars

A skill that takes an agent from an idea to a working TypeScript extension for Voz, so Mac dictation becomes commands or notes.

SkillBroad access55Repository stars

README in short

The README sets the narrow scope, the three-step pipeline, the main commands, the output layout and the boundaries of local recognition and Codex. The detailed install playbook lives in `skills/skill_intake.md`.

README badge

Original SKILL.md

---
name: intake-skill
description: >-
  Install, verify, operate, and debug the Apple Voice Memos Intake Skill via python -m intake_skill.
disable-model-invocation: true
---

# Intake Skill

Use this skill when a user asks an AI agent to install or operate the Intake Skill repo. The expected user request is:

```text
Install this repo for me: https://github.com/grapeot/intake-skill
```

The job is complete only after the repo is cloned as a project-local skill, the local CLI is installed, tests pass, real local ASR has been installed and verified, a sample audio file has gone through sync, MLX Qwen3 ASR, and Codex postprocessing end to end, the operator has been shown where the output files are, and the operator has made an explicit choice about the optional nightly automatic run.

When talking to the operator, keep the cognitive burden low. Prefer phrases like "nightly automatic run", "runs every night", or "daily background run" instead of leading with terms such as "cron", "cron job", or "crontab". Use the technical terms only when showing exact commands, errors, or backup files. Explain setup as: "I can set this up to run once every night while your Mac is awake."

## Scope and Runtime Defaults

Intake Skill is Voice Memos only. It reads files that Apple Voice Memos has already synced to the Mac. Do not add microphone recording, non-Voice-Memos sources, speaker recognition, diarization, reference voices, or participant attribution.

Mock engines are retained for unit tests and explicit offline debugging. Functional setup and operation should use MLX Qwen3 ASR and Codex postprocessing by default. Before processing real Voice Memos, verify Codex with a trivial non-private prompt and validate Codex postprocessing on synthetic sample audio.

## Install from GitHub

Start in the user's current workspace and install this repo as a project-local skill, not as a standard global Codex skill. If `skills/intake-skill` already exists, inspect it rather than cloning over it.

```bash
mkdir -p skills
git clone https://github.com/grapeot/intake-skill.git skills/intake-skill
cd skills/intake-skill
uv venv .venv
source .venv/bin/activate
uv pip install -e '.[dev,qwen-asr]'
python -m pytest -q
python -m intake_skill --help
```

If `uv` is missing, install `uv` first by the user's normal package manager or mark setup blocked with the exact reason. Do not switch to a global `pip install` unless the user explicitly requests it.

## First-Run Setup Gate

Run `doctor` and inspect the JSON before touching private audio:

Report a problem