Agent skill · software engineering · aradotso

typeno-voice-input

typeno-voice-input — an agent skill for coding agents.

Why this skill is useful

Provides specific commands and procedures for integrating and using the TypeNo app with local voice transcription that the AI wouldn't reliably generate on its own.

What it needs

Requires npm installed locally. About 7k tokens when loaded. Last updated 2026-07-09. 70 stars on the source repository.

What this skill does

bash npm install -g @marswave/coli bash coli --version bash Download latest release zip from GitHub https://github.com/marswaveai/TypeNo/releases/latest Download TypeNo.app.zip, unzip, move to /Applications open /Applications/TypeNo.app bash xattr -dr com.apple.quarantine "/Applications/TypeNo.app" open /Applications/TypeNo.app bash git clone https://github.com/marswaveai/TypeNo.git cd TypeNo scripts/generateicon.sh # generates app icon assets scripts/buildapp.sh # compiles and bundles to dist/TypeNo.app cp -R dist/TypeNo.app /Applications/ open /Applications/TypeNo.app TypeNo/ ├── AppDelegate.swift # NSApplicationDelegate, menu bar setup ├── AudioRecorder.swift # AVFoundation capture logic ├── TranscriptionService.swift # Shells out to coli CLI ├── PasteService.swift # Accessibility / CGEvent paste ├── HotkeyMonitor.swift # Global CGEventTap for Control key ├── StatusBarController.swift # NSStatusItem, menu construction ├── DragDropHandler.swift # Drag audio files onto status icon └── assets/ └── hero.webp scripts/ ├── generateicon.sh └── buildapp.sh swift // HotkeyMonitor.swift import Cocoa class HotkeyMonitor { private var eventTap: CFMachPort? private var pressStart: Date? private let maxPressDuration: TimeInterval = 0.3 // 300 ms func start(onToggle: @escaping () -> Void) { let mask: CGEventMask = (1 << CGEventType.flagsChanged.rawValue) eventTap = CGEvent.tapCreate( tap: .cgSessionEventTap, place: .headInsertEventTap, options: .defaultTap, eventsOfInterest: mask, callback: { proxy, type, event, refcon in let monitor = Unmanaged<HotkeyMonitor> .fromOpaque(refcon!).takeUnretainedValue() monitor.handle(event: event) return Unmanaged.passUnretained(event) }, userInfo: Unmanaged.passUnretained(self).toOpaque() ) guard let tap = eventTap else { return } let loop = CFMachPortCreateRunLoopSource(nil, tap, 0) CFRunLoopAddSource(CFRunLoopGetCurrent(), loop, .commonModes) CGEvent.tapEnable(tap: tap, enable: true) } private func handle(event: CGEvent) { let flags = event. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aradotso/typeno-voice-input

View the source on GitHub

Browse the @skills marketplace