The native macOS AI assistant that bridges all your CLI tools in one place.
Website • Features • Installation • Build • Contributing • Docs
McClaw is a native macOS application built with Swift and SwiftUI that unifies multiple AI assistants through their official CLI tools. Instead of managing API keys or juggling between different apps, McClaw talks directly to the CLIs you already have installed.
One app. All your AIs. Zero API keys.
- Claude (Anthropic) — Full streaming support, session management, MCP tools, background sessions
- ChatGPT (OpenAI) — Chat completions via CLI, image generation
- Codex (OpenAI) — Agentic coding assistant with plan mode
- Gemini (Google) — Multi-modal conversations, 1M context, image generation
- Ollama — Local models, fully offline
- GitHub Copilot — Code-focused AI via
gh copilot - Amazon Q Developer — AWS-integrated AI assistant
- DashScope / Qwen (Alibaba Cloud) — API-based provider with model selection
- BitNet — Experimental 1-bit LLM, ultra-efficient local inference
- CLI Bridge Architecture — Uses official CLI tools, no API keys, respects provider ToS
- Unified Chat Interface — Switch providers mid-conversation, markdown rendering, code highlighting
- Menu Bar App — Always accessible, lightweight, stays out of your way
- Smart CLI Detection — Auto-discovers installed CLIs, assisted installation for missing ones
- Git Integration — Repository management, branches, commits, PRs, issues, file diffs, and AI-powered git workflows
- 859 tests — Comprehensive test suite across 3 SPM targets
- Canvas Mode — Live HTML/JS preview panel with hot-reload, bidirectional JS bridge, and file watcher
- Voice Mode — Speech-to-text, text-to-speech, push-to-talk, wake word activation
- Skills System — Bundled skills for common tasks (PDF, DOCX, PPTX, metrics, competitive analysis, MCP builder)
- Slash Commands — Built-in commands for quick actions
- File Attachments — Drag & drop or pick files to include in conversations
- Session Management — Persistent chat history with export
- Scheduled Tasks — Cron jobs and one-off scheduled prompts (Claude via PTY
/loop, others via LocalScheduler) - 30+ Connectors — Google Workspace, GitHub, Slack, Discord, Telegram, Jira, Notion, Trello, Microsoft 365, and more
- MCP Support — Model Context Protocol server management (Claude CLI + Gemini settings.json)
- WordPress MCP Bridge — 13 sub-connectors with ~278 abilities for WordPress site management
- Prompt Enrichment —
@fetchdirective to inject live data from connectors into prompts - OAuth + PKCE — Secure token flows with Keychain storage
Connect McClaw directly to messaging platforms — no external server needed:
- Telegram — Bot API integration
- Slack — Workspace bot
- Discord — Bot presence
- Matrix — Decentralized chat
- Mattermost — Team messaging
- Mastodon — Fediverse integration
- Zulip — Topic-based chat
- Rocket.Chat — Self-hosted messaging
- Twitch — Live stream chat
- Local Pairing — QR code pairing with mobile devices via Network.framework WebSocket
- Relay Server — Remote access through relay.joseconti.com (JWT auth, WebSocket relay)
- Self-hosted Mode — Run your own relay with zero auth requirements
- Screen Recording — ScreenCaptureKit integration for screen context
- Camera Capture — AVCapture for visual input
- Location Services — CLLocationManager for location-aware prompts
- Command Dispatch — Structured command routing for advanced automation
- Execution Approvals — Glob-based allow/deny rules for CLI commands
- Environment Sanitization — Strips sensitive env vars before passing to CLIs
- TCC Compliance — Proper macOS permission handling (microphone, screen recording, camera, location)
- Keychain Storage — OAuth tokens and credentials stored in macOS Keychain
- IPC Protocol — Unix socket communication with HMAC authentication
- Auto-Updates — Sparkle framework integration
- Deep Links —
mcclaw://URL scheme support - Multi-language — Full localization infrastructure (i18n)
- Adaptive Learning — Learns from usage patterns to improve suggestions
- macOS 15 (Sequoia) or later
- At least one AI CLI installed:
- Claude Code —
npm install -g @anthropic-ai/claude-code - ChatGPT CLI —
brew install chatgpt - Codex CLI —
npm install -g @openai/codex - Gemini CLI —
npm install -g @google/gemini-cli - Ollama —
brew install ollama - GitHub Copilot —
brew install gh+gh extension install github/gh-copilot - Amazon Q Developer —
brew install amazon-q - DashScope / Qwen — API key from Alibaba Cloud (configured in McClaw settings)
- BitNet — Installed automatically via McClaw's guided setup
- Claude Code —
Get the latest release from mcclaw.app or from GitHub Releases.
- Xcode 16+ or Swift 6.0+ toolchain
- macOS 15+
# Clone the repository
git clone https://github.com/joseconti/mc-claw.git
cd mc-claw
# Build the full app bundle (recommended)
./scripts/build-app.sh
# The app is generated at build/McClaw.app
open build/McClaw.app# Quick compile check
cd McClaw && swift build
# Run tests (859 tests)
cd McClaw && swift test
# Build only the binary (no bundle)
cd McClaw && swift runMcClaw is built as a Swift Package Manager project with 3 modular targets:
| Target | Description |
|---|---|
| McClaw | Main executable — SwiftUI app, views, services, state management |
| McClawKit | Core library — CLI parsing, security logic, connectors, voice, canvas, device, channel kits |
| McClawIPC | Inter-process communication — Unix socket with HMAC auth |
- 100% standalone — No external gateway or server dependencies
- Actor-based concurrency — All services use Swift actors for thread safety
- @Observable pattern — State management via
@Observable+@MainActor - AsyncStream — Streaming responses from CLIs
- No API keys required — Delegates authentication to each CLI's own auth flow
| Dependency | Purpose |
|---|---|
| MenuBarExtraAccess | Menu bar window control |
| swift-log | Structured logging |
| Sparkle | Auto-updates |
mc-claw/
├── McClaw/ # Swift Package
│ ├── Package.swift
│ ├── Sources/
│ │ ├── McClaw/ # Main app target
│ │ │ ├── App/ # Entry point, AppDelegate
│ │ │ ├── State/ # AppState, ViewModels
│ │ │ ├── Views/ # SwiftUI views (Chat, Settings, Voice, Canvas, Security...)
│ │ │ ├── Services/ # CLIBridge, Cron, MCP, Voice, Canvas, Connectors, NativeChannels, Mobile...
│ │ │ ├── Models/ # Data models (CLI, Chat, Connectors, MCP, Skills, Device, Cron...)
│ │ │ └── Infrastructure/ # Config, Logging, Keychain
│ │ ├── McClawKit/ # Core pure-logic library (CLI, Security, Voice, Canvas, Connectors, Device, Channel kits)
│ │ └── McClawIPC/ # Unix socket IPC with HMAC auth
│ └── Tests/ # 859 tests
├── BundledSkills/ # Built-in skill definitions
├── docs/ # Architecture documentation
├── scripts/ # Build and utility scripts
└── SPRINTS.md # Development progress tracker
We welcome contributions! McClaw is an open-source project and we appreciate help from the community.
Please read our Contributing Guide before submitting a pull request.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and ensure tests pass:
cd McClaw && swift test - Build the app to verify:
./scripts/build-app.sh - Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
Full architecture documentation is available in the docs/McClaw/ directory:
- Architecture Overview
- CLI Bridge
- Chat UI
- Data Models
- Features Map
- Connectors
- Scheduling
- Native Channels
- Localization
- Mobile Apps
- Git Integration
- Accessibility
- iOS companion app
- Android companion app
- Plugin marketplace
- Tier 1 language translations (28 languages)
- Themes and appearance customization
McClaw is released under the GNU General Public License v3.0.
This means:
- Forks must also be GPLv3 — any derivative work must be released under the same license.
- Source code must be public — if you distribute a modified version, you must make the complete source code available to everyone.
- No proprietary forks — you cannot take this code and make it closed-source.
José Conti — mcclaw.app
- GitHub: @joseconti
- X: @josecontic
- Email: j.conti@joseconti.com