VoiceDrop
Agent Guide

Use VoiceDrop from
Claude Code / Codex

Every recording you make is already structured data an agent can read and write.
Here are all the slash commands and skills available.

Step 0: Get your access token
1

Copy the token in the VoiceDrop app

Bottom tab "Settings" → "Account" → tap "Copy Access Token". The token looks like anon_xxxx….

2

Set it in Claude Code / Codex

TOKEN=anon_xxxxxxxx...   # paste the token you just copied

The token only lasts for the current shell session. To keep it permanently, add export VOICEDROP_TOKEN=… to your ~/.zshrc.

Available skills
/wjs-voicedrop

VoiceDrop's companion skill, with two modes: list (list your recordings and articles) and distill (distill a writing style from your articles and upload it to CLAUDE.md).

Trigger phrases — say it however you like:

/wjs-voicedrop voicedrop list list my VoiceDrop files voicedrop distill distill my VoiceDrop style

Mode 1: list — list your files

Say "voicedrop list" and the agent lists everything in your VoiceDrop space, grouped into:

  • Pending recordings (.m4a files not yet turned into articles)
  • Finished articles (articles/*.json, each with title + body + transcript + SRT)
  • No-speech markers (articles/*.empty — the original recording had no speech)
  • Writing style settings (the CLAUDE.md you uploaded)
"voicedrop list"
"Show me which VoiceDrop recordings haven't become articles yet"

Mode 2: distill — distill your writing style

Say "voicedrop distill" and the agent extracts 15–20 actionable writing rules from your recent articles, shows you a preview for confirmation, then uploads them to your CLAUDE.md — the server picks them up automatically the next time it mines articles.

"voicedrop distill"
"Distill my writing style from my VoiceDrop articles and update my settings"

Once uploaded, it also shows up in the VoiceDrop app under "Settings → Writing Style" — both are the same data.

/wjs-distilling-style

A general-purpose style-distillation skill. Give it a few articles by any author and it extracts a precise, executable writing fingerprint — not just for VoiceDrop users; use it to learn any writer's craft.

Trigger phrases:

/wjs-distilling-style distill this writing style capture X's style rewrite this in X's voice mimic this writer

Two modes

  • Distill: give it 3–6 sample articles and it produces a 9-axis Style Card (sentence rhythm, paragraph density, vocabulary, tone, argument structure, metaphors, emotion, openings/closings, no-go zones), saved to ~/code/style-cards/<author-slug>/style-card.md.
  • Rewrite: give it a target article plus an existing Style Card and it rewrites the piece in that author's voice. Every rewrite is blind-tested by an independent "judge" — the agent never grades its own work.
"Distill the writing style of these three articles into a Style Card"
"Rewrite this draft in Jian Shuo Wang's style"

How it differs from /wjs-voicedrop distill: this skill does the full, fine-grained 9-axis distillation; voicedrop distill is the quick mode that only extracts differential rules to append to VoiceDrop's CLAUDE.md.

Use the API directly (no skill)

Files API cheat sheet

Every skill above calls this same API under the hood — you can also use it directly in your agent prompt:

BASE=https://jianshuo.dev/files/api

# List all files
curl -s -H "Authorization: Bearer $TOKEN" $BASE/list

# Download an article JSON
curl -s -H "Authorization: Bearer $TOKEN" \
  "$BASE/download/users/<your-id>/articles/VoiceDrop-xxxx.json"

# Download writing style settings
curl -s -H "Authorization: Bearer $TOKEN" \
  "$BASE/download/CLAUDE.md"

# Upload / update writing style settings
curl -s -X PUT \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: text/markdown; charset=utf-8" \
  --data-binary @/tmp/style.md \
  "$BASE/upload/CLAUDE.md"

Article JSON format: { title, body, transcript, srt }.

The full loop

Speak → VoiceDrop transcribes it and mines it into an article → /wjs-voicedrop list reads it out → /wjs-voicedrop distill or /wjs-distilling-style distills your writing style → written back to CLAUDE.md → the next article sounds more like you.

Throughout the whole loop, the agent works with your own data and your own token — no second backend, no lock-in. That's exactly what VoiceDrop is built for: plugging voice seamlessly into the agent ecosystem.