Ekstremt tynd voice-relay: iPhone dansk diktering → Hono endpoint på Mac → Claude Code (via buddy-channel).
Ingen Whisper. Ingen model-downloads. Bruger iPhones indbyggede Speech framework som er i top-3 globalt på dansk, kører on-device, og har nærmest nul latency.
iPhone Shortcut (Dictate Text, da-DK)
│
▼ POST /speak (over Tailscale)
Hono server på Mac :7777
│
▼ appendFile
Buddy-channel → Claude Code
cd ~/Apps/cctalk
pnpm install
cp .env.example .envGenerer et token og sæt det i .env:
echo "AUTH_TOKEN=$(openssl rand -hex 32)" >> .envRediger .env og fjern den gamle placeholder-linje. Sæt også BUDDY_CHANNEL til stien på din faktiske buddy-integration hvis du har en – ellers bruger den /tmp/cctalk.log som default.
pnpm startDu skulle se:
cctalk lytter på :7777
buddy-channel: /tmp/cctalk.log
chmod +x test.sh
./test.shHvis du ser {"ok":true,"received":"hej cc..."} er serveren klar.
På Mac:
brew install --cask tailscaleLog ind, og installer Tailscale på iPhone fra App Store med samme konto.
Find dit Mac MagicDNS-navn i Tailscale-menuen (menubar) – typisk din-mac.din-tailnet.ts.net.
Test fra iPhone Safari: http://din-mac.din-tailnet.ts.net:7777/health → skal returnere {"ok":true,"service":"cctalk"}.
Se shortcut-setup.md for detaljeret guide.
Back Tap (alle nyere iPhones): Settings → Accessibility → Touch → Back Tap → Double Tap → Tal til cc
Action Button (iPhone 15 Pro+): Settings → Action Button → Shortcut → Tal til cc
- Dobbelt-tap bagsiden af iPhonen (eller tryk Action Button)
- Tal dansk naturligt
- Tryk stop (eller vent på auto-stop)
- Teksten lander i din buddy-channel og sendes videre til cc
For at serveren starter automatisk ved login, opret en launchd plist:
cat > ~/Library/LaunchAgents/dk.webhouse.cctalk.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>dk.webhouse.cctalk</string>
<key>WorkingDirectory</key>
<string>$HOME/Apps/cctalk</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/node</string>
<string>server.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/cctalk.out.log</string>
<key>StandardErrorPath</key>
<string>/tmp/cctalk.err.log</string>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/dk.webhouse.cctalk.plistServeren bruger default appendFile til BUDDY_CHANNEL. Hvis din buddy bruger en named pipe, Unix socket eller noget andet, så rediger server.js omkring linje 45 hvor appendFile kaldes.
- Node.js 20+ (ES modules)
- Hono 4 +
@hono/node-server - dotenv
- iPhone Shortcuts (indbygget)
- Tailscale (gratis tier)
MIT