explaingit

ralbuque/pynkaro

Analysis updated 2026-05-18

42SwiftAudience · developerComplexity · 3/5Setup · moderate

TLDR

A local macOS voice assistant that listens for a wake word, sends only your question text to Claude, and speaks the reply out loud.

Mindmap

mindmap
  root((Pynkaro))
    What it does
      Wake word listening
      On-device transcription
      Sends text to Claude
      Speaks the reply
    Tech stack
      Swift
      Apple Speech framework
      AVSpeechSynthesizer
      Anthropic API
    Use cases
      Hands free voice queries
      Ask Claude for facts
      Local privacy focused assistant
    Audience
      Mac power users
      Developers
      Privacy conscious users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Ask spoken questions and get a Claude generated answer read back to you.

USE CASE 2

Run a hands free voice assistant on a Mac without sending audio to the cloud.

USE CASE 3

Build a menu bar app version with a status icon that shows listening, thinking, or speaking.

USE CASE 4

Enable an animated avatar or Rive rig that moves its mouth while the assistant talks.

What is it built with?

SwiftApple SpeechAVSpeechSynthesizerAnthropic API

How does it compare?

ralbuque/pynkarochussum/mobiusjaywcjlove/dock-lift
Stars424141
LanguageSwiftSwiftSwift
Setup difficultymoderateeasyeasy
Complexity3/52/51/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Needs an Anthropic API key and the Portuguese Brazil dictation language downloaded for fully on-device transcription.

No license information is provided in the README.

In plain English

Pynkaro is a command line prototype of a local voice assistant for macOS. It listens through your microphone, and when it hears the wake word Pincaro it captures your question, transcribes it, sends the text to Claude through the Anthropic API, and speaks the answer back to you. Privacy is a central design point. Wake word detection and transcription run on the Mac itself using Apple's Speech framework, so no audio leaves the computer as long as the Portuguese Brazil dictation language is downloaded in System Settings. The spoken reply is also generated locally with AVSpeechSynthesizer by default. The only thing that travels over the network is the text of your question, sent to api.anthropic.com. To run it, you need macOS 13 or later, Xcode or the Command Line Tools, and an Anthropic API key. You copy an example config file, fill in your API key, and either run it directly with Swift for development or build it into a real menu bar app with a bundled script. As a menu bar app it has no Dock icon, its icon changes to show whether it is listening, thinking, or speaking, and its menu lets you pause listening or quit. The first time it runs, macOS will ask for microphone and speech recognition permission. Settings are controlled through environment variables, letting you change the Claude model used, the system voice, the wake word itself, and whether web search is enabled. The app can also optionally speak with an ElevenLabs cloud voice for a more natural sound, falling back to the local system voice if that fails, and only the reply text is sent to ElevenLabs. There is optional support for an animated avatar, either simple image sprites whose mouth shape changes with the speech, or a 2D rig built in the Rive editor that receives a mouth position value. The code is organized into a handful of Swift files covering the run loop, a state machine for listening and speaking, speech recognition, the Claude API client, and text to speech output. The author lists this clearly as a prototype: it currently runs only in the terminal rather than as a proper menu bar app, wake word detection uses continuous transcription rather than a dedicated low power detector, there is no response streaming yet, and you cannot interrupt the assistant once it starts speaking.

Copy-paste prompts

Prompt 1
Walk me through setting up Pynkaro's config.json with my Anthropic API key.
Prompt 2
Explain how Pynkaro keeps microphone audio local while still calling the Claude API.
Prompt 3
Show me how to change Pynkaro's wake word using the PYNKARO_WAKE_WORD variable.
Prompt 4
How does Pynkaro's lip sync work with ElevenLabs timestamped audio?
Prompt 5
Help me turn Pynkaro's terminal prototype into a proper SwiftUI menu bar app.

Frequently asked questions

What is pynkaro?

A local macOS voice assistant that listens for a wake word, sends only your question text to Claude, and speaks the reply out loud.

What language is pynkaro written in?

Mainly Swift. The stack also includes Swift, Apple Speech, AVSpeechSynthesizer.

What license does pynkaro use?

No license information is provided in the README.

How hard is pynkaro to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is pynkaro for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.