Skip to content

SCTY-Inc/tokdown-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TokDown

iOS app that connects to a Limitless Pendant via BLE, transcribes audio on-device using Apple Speech, and pushes markdown transcripts to GitHub.

Companion to TokDown for macOS.

How It Works

Pendant (BLE) -> Opus decode -> Speech recognition -> Markdown -> GitHub
  1. Connects to Limitless Pendant over Bluetooth LE
  2. Decodes Opus audio frames via libopus
  3. Transcribes with on-device SFSpeechRecognizer (chunked every 45s)
  4. Formats as timestamped markdown with YAML front matter
  5. Pushes to GitHub via Contents API

Features

  • Manual or calendar-driven recording -- auto-start/stop based on calendar events
  • On-device transcription -- no cloud APIs, works offline
  • Background recording -- continues when app is backgrounded
  • Auto-reconnect -- recovers from BLE disconnects mid-recording
  • Transcript editing -- review and edit before pushing
  • Push queue -- retries failed pushes when network returns

Requirements

  • iOS 18.0+
  • Xcode 16+
  • XcodeGen
  • Limitless Pendant (or compatible BLE device)

Setup

xcodegen generate
open TokDown.xcodeproj

Add your GitHub PAT in the app's Settings screen. Transcripts push to the configured repo.

Architecture

File Purpose
PendantBLE.swift CoreBluetooth manager, BLE handshake
LimitlessProtocol.swift Protobuf encode/decode, fragment reassembly, Opus extraction
OpusStreamDecoder.swift libopus wrapper
TranscriptionService.swift Chunked SFSpeechRecognizer
SessionManager.swift Pipeline orchestrator
TranscriptFormatter.swift Markdown + YAML front matter
GitHubSync.swift GitHub Contents API push
PushQueue.swift Offline retry queue

License

MIT

About

iOS companion to TokDown — Limitless Pendant BLE -> on-device transcription -> markdown -> GitHub

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages