Claude Code Haha is a desktop Claude Code workspace for macOS, Windows, and Linux: multi-session workspaces, global search, branch / Worktree launch, diff review, built-in browser preview, GUI permission approval, any model — Claude, ChatGPT, Grok, presets,
$ npx -y skills add NanmiCoder/cc-haha --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: NanmiCoder/cc-haha
What's inside
English · 简体中文
Claude Code Haha is a desktop Claude Code workspace for macOS, Windows, and Linux: multi-session workspaces, global search, branch / Worktree launch, diff review, built-in browser preview, GUI permission approval, any model — Claude, ChatGPT, Grok, presets, or local endpoints — image generation, visual MCP & SubAgent managers, model trace, Computer Use, skill marketplace, colour themes, desktop pets, H5 remote access, IM integration, and scheduled tasks, all in one app.
This project is maintained in the author's spare time. Corporate or individual sponsorships are welcome to support ongoing development. Custom features, integrations, and business partnerships are also open for discussion.
📧 Contact: relakkes@gmail.com
Release trust and privacy: Code signing policy · Privacy and network access
For users who want to debug the underlying CLI, server, or local development flow:
bun install
cp .env.example .env
./bin/claude-haha
See environment variables and CLI setup for more configuration options.
Full documentation site: https://cchaha.ai
| Section | Documents |
|---|---|
| Getting started | What this is · Download and install · Connect a model provider · Your first session · Troubleshooting |
| Desktop features | Feature overview · Computer Use · Desktop pets · Phone H5 and IM relay |
| IM integrations | Overview and pairing · Feishu · Telegram · WeChat · DingTalk · WhatsApp |
| CLI | Install and run · Command reference · Environment variables |
| Internals | Desktop architecture · Multi-agent system · Skills system · Memory system · Computer Use architecture · Local server and API · Channel system · Project structure · Contributing and quality gates |
If this project helps you, consider buying me a coffee — every bit of support keeps this project going ❤️
Scan the QR code below to join the cc-haha user group on Feishu (Lark) — the conversation there is mostly in Chinese. For questions and bug reports in English, Issues is the better place.
| Category | Technology |
|---|---|
| Language | TypeScript |
| Desktop app | Electron |
| Desktop UI | React + Vite |
| Local runtime | Bun |
| Terminal UI | React + Ink |
| CLI parsing | Commander.js |
| API | Anthropic SDK |
| Protocols | MCP, LSP |
Thanks to the following open-source projects and community practices for reference and inspiration:
If this project helps you, please support it with a ⭐ Star so more people can discover Claude Code Haha.
.env.example
.github/
AGENTS.md
CODEOWNERS
copilot-instructions.md
FUNDING.yml
ISSUE_TEMPLATE/
bug_report.md
config.yml
question.md
pull_request_template.md
workflows/
build-desktop-dev.yml
deploy-docs.yml
nightly-quality.yml
pr-quality.yml
pr-triage.yml
release-desktop.yml
.gitignore
adapters/
AGENTS.md
bun.lock
common/
__tests__/
adapter-client.test.ts
chat-queue.test.ts
config.test.ts
format.test.ts
http-client.test.ts
message-buffer.test.ts
message-dedup.test.ts
pairing.test.ts
permission.test.ts
session-recovery.test.ts
session-store.test.ts
ws-bridge.test.ts
adapter-client.ts
attachment/
__tests__/
attachment-limits.test.ts
attachment-store.test.ts
image-block-watcher.test.ts
outbound-image.test.ts
safe-remote-image.test.ts
attachment-limits.ts
attachment-store.ts
attachment-types.ts
image-block-watcher.ts
outbound-image.ts
safe-remote-image.ts
chat-queue.ts
config.ts
format.ts
http-client.ts
message-buffer.ts
message-dedup.ts
pairing.ts
permission.ts
session-recovery.ts
session-store.ts
ws-bridge.ts
dingtalk/
__tests__/
ai-card.test.ts
helpers.test.ts
permission-card.test.ts
stream-state.test.ts
ai-card.ts
helpers.ts
index.ts
media.ts
permission-card.ts
stream-state.ts
feishu/
__tests__/
card-errors.test.ts
cardkit.test.ts
extract-payload.test.ts
feishu.test.ts
flush-controller.test.ts
markdown-style.test.ts
media.test.ts
streaming-card.test.ts
card-errors.ts
cardkit.ts
extract-payload.ts
flush-controller.ts
index.ts
markdown-style.ts
media.ts
path-safety.ts
streaming-card.ts
package.json
README.md
telegram/
__tests__/
commands.test.ts
media.test.ts
menu.test.ts
telegram.test.ts
commands.ts
format.ts
index.ts
media.ts
menu.ts
tsconfig.json
wechat/
__tests__/
protocol.test.ts
typing.test.ts
index.ts
media.ts
protocol.ts
typing.ts
whatsapp/
__tests__/
format.test.ts
protocol.test.ts
session.test.ts
format.ts
index.ts
media.ts
protocol.ts
session.ts
AGENTS.md
bin/
claude-haha
bun.lock
bunfig.toml
CONTRIBUTING.md
desktop/
AGENTS.md
build/
check-install-processes.ps1
entitlements.mac.inherit.plist
entitlements.mac.plist
installer.nsh
recover-legacy-install-data.ps1
bun.lock
bunfig.toml
docs/
component-library-plan.md
redesign-paper-ink-seal.md
electron/
ipc/
capabilities.test.ts
capabilities.ts
channels.ts
previewMessage.ts
main.security.test.ts
main.ts
pet-preload.ts
preload.ts
preview-preload.ts
services/
appIdentity.test.ts
appIdentity.ts
appMode.test.ts
appMode.ts
appModeLifecycle.test.ts
dialogs.test.ts
dialogs.ts
keychain.test.ts
keychain.ts
localePreference.test.ts
localePreference.ts
menu.test.ts
menu.ts
nativeAppearance.test.ts
nativeAppearance.ts
navigationGuards.test.ts
navigationGuards.ts
notifications.test.ts
notifications.ts
notificationSmoke.test.ts
notificationSmoke.ts
pets.test.ts
pets.ts
petWindow.test.ts
petWindow.ts
preview.test.ts
preview.ts
previewLifecycle.test.ts
previewLifecycle.ts
previewSession.ts
rendererEntry.test.ts
rendererEntry.ts
rendererLifecycle.test.ts
rendererLifecycle.ts
serverRuntime.test.ts
serverRuntime.ts
shell.test.ts
shell.ts
sidecarManager.test.ts
sidecarManager.ts
singleInstance.test.ts
singleInstance.ts
stdioGuards.test.ts
stdioGuards.ts
systemProxyBridge.test.ts
systemProxyBridge.ts
terminal.test.ts
terminal.ts
tray.test.ts
tray.ts
updater.test.ts
updater.ts
updateSmoke.test.ts
updateSmoke.ts
windows.test.ts
windows.ts
windowSmoke.test.ts
windowSmoke.ts
windowStartup.test.ts
windowStartup.ts
zoom.test.ts
zoom.ts
tsconfig.json
eslint.config.js
gallery.html
icon-assets.test.ts
index-html.test.ts
index.html
package.json
pnpm-lock.yaml
public/
app-icon.png
app-icon.svg
fonts/
inter-latin-ext.woff2
inter-latin.woff2
jetbrains-mono-latin-ext.woff2
jetbrains-mono-latin.woff2
manrope-latin-ext.woff2
manrope-latin.woff2
material-symbols-outlined.woff2
noto-serif-sc-latin-ext.woff2
noto-serif-sc-latin.woff2
icons/
bilibili.svg
douyin.svg
github.svg
xiaohongshu.svg
README.md
scripts/
assemble-generated-pet-atlas.py
assert-electron-output-idle.ts
build-linux.sh
build-macos-arm64.sh
build-pet-sheet-guide.py
build-preview-agent.ts
build-sidecars.test.ts
build-sidecars.ts
build-windows-x64.ps1
clean-dmg-builder-cache.sh
clean-electron-output.ts
dev-launcher.test.ts
e2e-context-usage-live-agent-browser.sh
e2e-deepseek-thinking-ui-agent-browser.sh
e2e-install-center-agent-browser.sh
e2e-parallel-providers-agent-browser.sh
e2e-rewind-agent-browser.sh
e2e-rewind-complex-agent-browser.sh
e2e-slash-plugin-agent-browser.sh
electron-dev.ts
electron-output-guard.test.ts
electron-output-guard.ts
install-macos-unsigned.sh
prepare-node-pty.ts
prepare-ripgrep.test.ts
prepare-ripgrep.ts
ripgrep-licenses/
COPYING
LICENSE-MIT
UNLICENSE
scan-missing-imports.ts
windows-installer-smoke.ps1
sidecars/
claude-sidecar.ts
launcherRouting.test.ts
launcherRouting.ts
src/
src-tauri/
app-icon-macos.svg
app-icon.png
app-icon.svg
build.rs
capabilities/
default.json
Cargo.lock
Cargo.toml
icons/
128x128.png
128x128@2x.png
256x256.png
32x32.png
512x512.png
64x64.png
android/
mipmap-anydpi-v26/
ic_launcher.xml
mipmap-hdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-mdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xxhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
mipmap-xxxhdpi/
ic_launcher_foreground.png
ic_launcher_round.png
ic_launcher.png
values/
ic_launcher_background.xml
icon.icns
icon.ico
icon.png
ios/
AppIcon-20x20@1x.png
AppIcon-20x20@2x-1.png
AppIcon-20x20@2x.png
AppIcon-20x20@3x.png
AppIcon-29x29@1x.png
AppIcon-29x29@2x-1.png
AppIcon-29x29@2x.png
AppIcon-29x29@3x.png
AppIcon-40x40@1x.png
AppIcon-40x40@2x-1.png
AppIcon-40x40@2x.png
AppIcon-40x40@3x.png
AppIcon-512@2x.png
AppIcon-60x60@2x.png
AppIcon-60x60@3x.png
AppIcon-76x76@1x.png
AppIcon-76x76@2x.png
AppIcon-83.5x83.5@2x.png
Square107x107Logo.png
Square142x142Logo.png
Square150x150Logo.png
Square284x284Logo.png
Square30x30Logo.png
Square310x310Logo.png
Square44x44Logo.png
Square71x71Logo.png
Square89x89Logo.png
StoreLogo.png
Info.plist
resources/
preview-agent.js
src/
lib.rs
macos_notifications.m
main.rs
webview_panel.rs
tauri-config.test.ts
tauri.conf.json
tauri.macos.conf.json
tauri.release-ci.json
tauri.windows.conf.json
windows-installer-hooks.nsh
__tests__/
agentsSettings.test.tsx
componentReachability.test.ts
contextUsageLifecycle.test.tsx
diagnosticsSettings.test.tsx
generalSettings.test.tsx
mcpSettings.test.tsx
mcpStoreKnownProjects.test.ts
memorySettings.test.tsx
mockPaths.test.ts
pages.test.tsx
petSettingsNavigation.test.tsx
pluginsSettings.test.tsx
skillsSettings.test.tsx
tauriCapabilities.test.ts
api/
activityStats.ts
adapters.ts
agents.test.ts
agents.ts
client.test.ts
client.ts
cliTasks.ts
computerUse.ts
desktopUiPreferences.test.ts
desktopUiPreferences.ts
diagnostics.ts
doctor.ts
filesystem.ts
h5Access.ts
hahaGrokOAuth.ts
... 1600 moreShowing a partial view of a very large repo.
FAQ
cc-haha is a Claude Code plugin with 3 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes claude-api, imagegen, verify. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.