Skip to content
maxipesfixPublic

About

Control desktop agents from anywhere

Resources

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

mkay

Drive AI agent desktop apps on macOS (Claude, ChatGPT/Codex and Cursor) from a terminal, from LLM clients, and by voice.

Directory What it is
multi-agent-cli agent_ctl.py: the CLI and per-app backends that drive each app's interface through macOS accessibility. Standard-library Python only.
multi-agent-mcp agent_mcp.py: an MCP server exposing the CLI as tools to local (stdio) and remote (HTTP with a bearer token) LLM clients. Runs with uv.
local-voice-ptt voice_ptt.py: a push-to-talk voice client. Local Whisper, an LLM (OpenAI by default, or Claude) choosing MCP tools, spoken replies via say, spoken confirmation before anything is sent.
macos-app m’kay.app: a menu-bar app, distributed as a disk image, that links this Mac to a voice server. A Swift shell running the connector with a bundled Python; setup of Accessibility, Automation and sign-in, no terminal needed.
local-voice-pipecat voice_pipecat.py: a hands-free voice client on Pipecat, used from a browser over WebRTC. Turn detection and barge-in, cloud or local speech and a choice of voices and models on its page, the same tools and spoken confirmation.

Each layer uses only the one below it: the MCP server runs the CLI's commands, and voice clients call the MCP server's tools.

Talk to your Mac, running everything yourself

The local voice stack runs on your Mac: a Pipecat server that serves a web page, listens through the browser, and drives the apps with the MCP server's tools. Only the LLM (and cloud speech, if you choose it) is called over the internet.

You need: macOS with the Claude, ChatGPT or Cursor desktop app, uv (brew install uv), and an OpenAI API key (or an Anthropic key). Deepgram, Cartesia and Fish Audio keys are optional: without them, speech runs on your Mac with Whisper and Kokoro.

  1. Get the code and set your key:

    git clone https://github.com/maxipesfix/mkay.git
    cd mkay/local-voice-pipecat && cp .env.example .env

    Then set OPENAI_API_KEY= in local-voice-pipecat/.env (and any optional keys).

  2. Start the voice server (the first run installs its dependencies, a few minutes):

    ./voice_pipecat.py
  3. Give the terminal app you started it from Accessibility access (System Settings → Privacy & Security → Accessibility), then restart the server. The first time it presses keys in an app, macOS also asks to let the terminal control System Events; allow it.

  4. Open http://localhost:7860/ in Chrome or Safari, choose Listening, Voice and Model under the circle, click Start talking, and allow the microphone. Try "What's going on?" or "What projects do I have in ChatGPT?". Nothing is sent to an agent until you say yes to the read-back.

The first session with local speech downloads the Whisper and Kokoro models (about 0.8 GB). See local-voice-pipecat for settings, troubleshooting and running it as a library; to talk from your phone instead, the m’kay app links your Mac to the hosted service at mkay.ai.

Licensed under the BSD 2-Clause License; see LICENSE.

About

Control desktop agents from anywhere

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages