cd /news/ai-tools/my-first-chatgpt-codex-plugin-saymd · home topics ai-tools article
[ARTICLE · art-130485] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

My first ChatGPT / Codex plugin: saymd

A developer released saymd, a free MIT-licensed CLI that converts microphone speech or audio files into structured Markdown prompts that coding agents can reference with an @ mention. The tool, now listed in the ChatGPT/Codex Plugins directory, uses a bring-your-own-key model with providers including Gemini 3.5 Transcribe, OpenAI's gpt-4o-transcribe, Deepgram nova-3, and ElevenLabs scribe_v2, and outputs prompts organized into Objective, Context, Instructions, and Constraints sections with feature, bug, and plan templates. It requires Node 20+ and ffmpeg on macOS or Linux, and the developer says a typical 60-second dictation costs well under a cent on the user's own API key.

by read5 min views3 publishedSep 15, 2026

Speak once, get a Markdown prompt any agent can @. Free MIT CLI — now live in the ChatGPT / Codex Plugins directory.

Back on 4 Sep, in the AI image prompt commands newsletter, I teased a VCL project built on Gemini 3.5 Transcribe.

Here I am.

This is also my first product live as a ChatGPT / Codex plugin. Among roughly a thousand third-party plugins, one of them is mine — and I'm excited for you to try it.

Meet saymd — a Free MIT CLI that turns microphone speech (or an audio file) into a structured Markdown prompt any agent can @. Not a raw dump into chat. A usable spec: Objective / Context / Instructions / Constraints (or a feature / bug / plan template).

You bring your own speech-to-text key (BYOK). saymd does not host your audio or sell transcription minutes.

Start-here: npx saymd setupnpx saymd doctornpx saymd. Then @ .ai/prompt.md in your agent. Site: saymd.app · Free MIT: GitHub.

I spent years in VS Code. Even with Cursor, Codex, Claude Code, and Antigravity desktop apps on the machine, I still prefer the CLI when I can. Less UI chrome. Faster loops. Feels like home.

The bottleneck is not the agent. It's typing.

Dictation helps. Tools like Wispr Flow and native IDE dictate are great for getting words out of your head. The problem: they usually dump messy unstructured text straight into the chat box. Agents then guess the objective, invent constraints, and miss the acceptance criteria you meant to say.

I wanted the opposite: speak once → get a prompt file I can @ in Cursor, Codex, Claude Code, Gemini CLI, Grok Build, Copilot, OpenCode — whatever I'm using that day.

That's saymd.

--file idea.m4a..ai/prompt.md``@ that file in your agent and let it execute. Default headings (no template): Objective · Context · Instructions · Constraints.

--template Shape
feature Objective, Context, Instructions, Constraints, Acceptance criteria
bug Objective, Context, Steps to reproduce, Expected / Actual
plan Objective, Context, numbered Steps, Constraints, Open questions

Demo from the GitHub repo — mic or --file → structured .ai/prompt.md.

npx saymd setup
npx saymd doctor
npx saymd

Or from an existing clip:

npx saymd --file idea.m4a --template feature

Useful flags:

-o .ai/prompt.md — output path--template feature|bug|plan``--seconds 30 — shorter first test (Free max is ~60s)--lang hu — language hint if auto-detect misses--provider gemini|openai|deepgram|elevenlabs doctor checks ffmpeg, mic, provider, and API key before your first real take. Press Enter to stop recording early — you don't have to wait for the max.

Requirements: Node 20+, ffmpeg, macOS or Linux (Windows: WSL or --file only).

All four are available on Free. You create the key with the provider, paste it in saymd setup, and pay that provider directly.

Provider Exact model Notes
Gemini (recommended) gemini-3.5-transcribe Speech-to-text and Markdown structuring
OpenAI gpt-4o-transcribe Speech-to-text and Markdown structuring
Deepgram nova-3 STT only — also needs Gemini or OpenAI to structure
ElevenLabs scribe_v2 STT only — same as Deepgram

Keys live in ~/.saymd/config.json (mode 0600) or env vars (GEMINI_API_KEY, OPENAI_API_KEY, …). A typical ~60s dictation is usually well under $0.01 on your own key (provider pricing applies).

Privacy: API keys stay on your machine. Audio goes only to the STT provider you chose, with your key. saymd.app does not receive your audio, transcripts, or prompt files.

Languages (Free): 85+ input languages with automatic detection. On Free, every section of the Markdown is written in the same language you spoke. Pro unlocks cross-language --out (e.g. speak Hungarian → English Markdown).

The Free MIT CLI is the whole product for short recordings. Stay there if that's all you need.

If you start using saymd every day — continue a spec after the first take, ask it to flag missing requirements, speak one language and write the Markdown in another, or record past a minute — that's Pro. It's a separate package (@saymd/pro), not a hidden switch in the MIT repo. I sell the year first: €39/year at saymd.app. A monthly option exists if you only want to try; yearly is the one I'd pick.

saymd activate <activation-code>
saymd --continue .ai/prompt.md
saymd --review .ai/prompt.md
saymd --out en

Pro adds:

--continue — add more speech; merge into the same spec--review — missing requirements, constraints, acceptance criteria--out — speak one language, write the spec in another.saymd/vocab.txt

Surface Status
ChatGPT / Codex Live in the OpenAI Plugins Directory — among ~1000 ChatGPT plugins, one of them is mine, and I'm genuinely excited
Gemini CLI gemini extensions install https://github.com/kondasviktor/saymd
Grok Build Available via DIY marketplace add from the README; official catalog PR pending
Claude Code + Cursor Currently under review for publishing

If you use ChatGPT, search saymd under Plugins in your account. Screenshots below of the live listing — Voice to Markdown prompts.

saymd live in the ChatGPT / Codex Plugins directory.

Install screen — starter @saymd prompts and the Install plugin button.

Slash commands in the plugin package include /saymd, /saymd-feature, /saymd-bug, /saymd-plan, plus Pro-oriented /saymd-continue, /saymd-review, /saymd-out.

Native loop still works everywhere: run the local CLI → @ .ai/prompt.md → offer to implement.

Outgrowing the 60-second Free cap?

Keep the MIT CLI. Add Pro when continue / review / cross-language / longer takes start to matter — €39/year.

npx saymd setup && npx saymd doctor, then one short recording. If you only remember one line: agents execute; saymd delivers the usable spec.

npx saymd setup — pick Gemini (gemini-3.5-transcribe) unless you already live on OpenAI keys. npx saymd doctor``npx saymd --seconds 30 --template feature`` saymd activate <code> Originally published on Vibe Coder's Life. I send a short Tuesday/Friday digest on AI coding tools and shipping with agents — subscribe.

Sources: saymd.app · GitHub (MIT Free CLI) · Gemini 3.5 Transcribe · ChatGPT / Codex plugin.

Disclosure: Wispr Flow link is a referral. saymd is my product (Free MIT CLI + optional Pro). Buy Me a Coffee is optional support — not required to use Free. Drafting/editing used AI assistance; the product, plugin listing, and CLI are my own shipping work.

── more in #ai-tools 4 stories · sorted by recency
── more on @saymd 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/my-first-chatgpt-cod…] indexed:0 read:5min 2026-09-15 ·