[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75008":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":13,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},75008,"clui-cc","lcoutodemos\u002Fclui-cc","lcoutodemos","Clui CC — Command Line User Interface for Claude Code",null,"TypeScript",1200,167,11,9,0,5,28,15,72.98,"MIT License",false,"main",true,[],"2026-06-12 04:01:16","# Clui CC — Command Line User Interface for Claude Code\n\nA lightweight, transparent desktop overlay for [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) on macOS. Clui CC wraps the Claude Code CLI in a floating pill interface with multi-tab sessions, a permission approval UI, voice input, and a skills marketplace.\n\n## Demo\n\n[![Watch the demo](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FNqRBIpaA4Fk\u002Fmaxresdefault.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NqRBIpaA4Fk)\n\n\u003Cp align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NqRBIpaA4Fk\">▶ Watch the full demo on YouTube\u003C\u002Fa>\u003C\u002Fp>\n\n## Features\n\n- **Floating overlay** — transparent, click-through window that stays on top. Toggle with `⌥ + Space` (fallback: `Cmd+Shift+K`).\n- **Multi-tab sessions** — each tab spawns its own `claude -p` process with independent session state.\n- **Permission approval UI** — intercepts tool calls via PreToolUse HTTP hooks so you can review and approve\u002Fdeny from the UI.\n- **Conversation history** — browse and resume past Claude Code sessions.\n- **Skills marketplace** — install plugins from Anthropic's GitHub repos without leaving Clui CC.\n- **Voice input** — local speech-to-text via Whisper (required, installed automatically).\n- **File & screenshot attachments** — paste images or attach files directly.\n- **Dual theme** — dark\u002Flight mode with system-follow option.\n\n## Why Clui CC\n\n- **Claude Code, but visual** — keep CLI power while getting a fast desktop UX for approvals, history, and multitasking.\n- **Human-in-the-loop safety** — tool calls are reviewed and approved in-app before execution.\n- **Session-native workflow** — each tab runs an independent Claude session you can resume later.\n- **Local-first** — everything runs through your local Claude CLI. No telemetry, no cloud dependency.\n\n## How It Works\n\n```\nUI prompt → Main process spawns claude -p → NDJSON stream → live render\n                                         → tool call? → permission UI → approve\u002Fdeny\n```\n\nSee [`docs\u002FARCHITECTURE.md`](docs\u002FARCHITECTURE.md) for the full deep-dive.\n\n## Install App (Recommended)\n\nThe fastest way to get Clui CC running as a regular Mac app. This installs dependencies, voice support (Whisper), builds the app, copies it to `\u002FApplications`, and launches it.\n\n**1) Clone the repo**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flcoutodemos\u002Fclui-cc.git\n```\n\n**2) Double-click `install-app.command`**\n\nOpen the `clui-cc` folder in Finder and double-click `install-app.command`.\n\n> **First launch:** macOS may block the app because it's unsigned. Go to **System Settings → Privacy & Security → Open Anyway**. You only need to do this once.\n> **Folder cleanup:** the installer removes temporary `dist\u002F` and `release\u002F` folders after a successful install to keep the repo tidy.\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fshortcut.png\" width=\"520\" alt=\"Press Option + Space to show or hide Clui CC\" \u002F>\u003C\u002Fp>\n\nAfter the initial install, just open **Clui CC** from your Applications folder or Spotlight.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Terminal \u002F Developer Commands\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nOnly `install-app.command` is kept at root intentionally for non-technical users. Developer scripts live in `commands\u002F`.\n\n### Quick Start (Terminal)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flcoutodemos\u002Fclui-cc.git\n```\n\n```bash\ncd clui-cc\n```\n\n```bash\n.\u002Fcommands\u002Fsetup.command\n```\n\n```bash\n.\u002Fcommands\u002Fstart.command\n```\n\n> Press **⌥ + Space** to show\u002Fhide the overlay. If your macOS input source claims that combo, use **Cmd+Shift+K**.\n\nTo stop:\n\n```bash\n.\u002Fcommands\u002Fstop.command\n```\n\n### Developer Workflow\n\n```bash\nnpm install\n```\n\n```bash\nnpm run dev\n```\n\nRenderer changes update instantly. Main-process changes require restarting `npm run dev`.\n\n### Other Commands\n\n| Command | Purpose |\n|---------|---------|\n| `.\u002Fcommands\u002Fsetup.command` | Environment check + install dependencies |\n| `.\u002Fcommands\u002Fstart.command` | Build and launch from source |\n| `.\u002Fcommands\u002Fstop.command` | Stop all Clui CC processes |\n| `npm run build` | Production build (no packaging) |\n| `npm run dist` | Package as macOS `.app` into `release\u002F` |\n| `npm run doctor` | Run environment diagnostic |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Setup Prerequisites (Detailed)\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nYou need **macOS 13+**. Then install these one at a time — copy each command and paste it into Terminal.\n\n**Step 1.** Install Xcode Command Line Tools (needed to compile native modules):\n\n```bash\nxcode-select --install\n```\n\n**Step 2.** Install Node.js (recommended: current LTS such as 20 or 22; minimum supported: 18). Download from [nodejs.org](https:\u002F\u002Fnodejs.org), or use Homebrew:\n\n```bash\nbrew install node\n```\n\nVerify it's on your PATH:\n\n```bash\nnode --version\n```\n\n**Step 3.** Make sure Python has `setuptools` (needed by the native module compiler). On Python 3.12+ this is missing by default:\n\n```bash\npython3 -m pip install --upgrade pip setuptools\n```\n\n**Step 4.** Install Claude Code CLI:\n\n```bash\nnpm install -g @anthropic-ai\u002Fclaude-code\n```\n\n**Step 5.** Authenticate Claude Code (follow the prompts that appear):\n\n```bash\nclaude\n```\n\n**Step 6.** Install Whisper for voice input:\n\n```bash\n# Apple Silicon (M1\u002FM2\u002FM3\u002FM4) — preferred:\nbrew install whisperkit-cli\n# Apple Silicon fallback, or Intel Mac:\nbrew install whisper-cpp\n```\n\n> **No API keys or `.env` file required.** Clui CC uses your existing Claude Code CLI authentication (Pro\u002FTeam\u002FEnterprise subscription).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Architecture and Internals\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### Project Structure\n\n```\nsrc\u002F\n├── main\u002F                   # Electron main process\n│   ├── claude\u002F             # ControlPlane, RunManager, EventNormalizer\n│   ├── hooks\u002F              # PermissionServer (PreToolUse HTTP hooks)\n│   ├── marketplace\u002F        # Plugin catalog fetching + install\n│   ├── skills\u002F             # Skill auto-installer\n│   └── index.ts            # Window creation, IPC handlers, tray\n├── renderer\u002F               # React frontend\n│   ├── components\u002F         # TabStrip, ConversationView, InputBar, etc.\n│   ├── stores\u002F             # Zustand session store\n│   ├── hooks\u002F              # Event listeners, health reconciliation\n│   └── theme.ts            # Dual palette + CSS custom properties\n├── preload\u002F                # Secure IPC bridge (window.clui API)\n└── shared\u002F                 # Canonical types, IPC channel definitions\n```\n\n### How It Works\n\n1. Each tab creates a `claude -p --output-format stream-json` subprocess.\n2. NDJSON events are parsed by `RunManager` and normalized by `EventNormalizer`.\n3. `ControlPlane` manages tab lifecycle (connecting → idle → running → completed\u002Ffailed\u002Fdead).\n4. Tool permission requests arrive via HTTP hooks to `PermissionServer` (localhost only).\n5. The renderer polls backend health every 1.5s and reconciles tab state.\n6. Sessions are resumed with `--resume \u003Csession-id>` for continuity.\n\n### Network Behavior\n\nClui CC operates almost entirely offline. The only outbound network calls are:\n\n| Endpoint | Purpose | Required |\n|----------|---------|----------|\n| `raw.githubusercontent.com\u002Fanthropics\u002F*` | Marketplace catalog (cached 5 min) | No — graceful fallback |\n| `api.github.com\u002Frepos\u002Fanthropics\u002F*\u002Ftarball\u002F*` | Skill auto-install on startup | No — skipped on failure |\n\nNo telemetry, analytics, or auto-update mechanisms. All core Claude Code interaction goes through the local CLI.\n\n\u003C\u002Fdetails>\n\n## Troubleshooting\n\nFor setup issues and recovery commands, see [`docs\u002FTROUBLESHOOTING.md`](docs\u002FTROUBLESHOOTING.md).\n\nQuick self-check:\n\n```bash\nnpm run doctor\n```\n\n## Tested On\n\n| Component | Version |\n|-----------|---------|\n| macOS | 15.x (Sequoia) |\n| Node.js | 20.x LTS, 22.x |\n| Python | 3.12 (with setuptools installed) |\n| Electron | 33.x |\n| Claude Code CLI | 2.1.71 |\n\n## Known Limitations\n\n- **macOS only** — transparent overlay, tray icon, and node-pty are macOS-specific. Windows\u002FLinux support is not currently implemented.\n- **Requires Claude Code CLI** — Clui CC is a UI layer, not a standalone AI client. You need an authenticated `claude` CLI.\n- **Permission mode** — uses `--permission-mode default`. The PTY interactive transport is legacy and disabled by default.\n\n## License\n\n[MIT](LICENSE)\n","Clui CC 是一个为 macOS 设计的轻量级透明桌面覆盖工具，用于增强 Claude Code 的命令行用户界面。其核心功能包括浮动窗口、多标签会话管理、权限审批界面、语音输入以及技能市场等。技术上，Clui CC 采用 TypeScript 编写，并通过拦截工具调用提供了一种安全的人机交互模式，所有操作都在本地执行，无需依赖云服务。适合需要在保持命令行强大功能的同时，希望通过图形界面快速进行会话管理和工具审批的开发者使用。",2,"2026-06-11 03:51:54","high_star"]