ClanKit · Official Website: clankit.app
English | 简体中文
A local-first, multi-LLM desktop workspace for chat, agent collaboration, and tool orchestration.
Built with Electron and Vue 3. Runs Anthropic, OpenRouter, OpenAI-compatible, DeepSeek, Google, and any custom provider you wire up — side by side, in the same app.
Prefer Bilibili? See the Chinese README.
A roster on one side, full anatomy on the other — every part configurable. Browse every persona at a glance: pinned favourites, recents, and the full library. Switch in one tap.
Brain · model · voice · memory · skills · tools · MCP · RAG. Click any body part on the anatomy view to jump straight to its config — no buried menus.
Once you import a digital twin, persona analysis surfaces values, decision style, emotional tells, recurring concerns, even relationship dynamics. Every claim links back to evidence in the original messages.
Drop fictional personas into your own life — and watch the chaos. Mix invented characters with your own user profile, then let them gossip across timelines. Pure absurd-comedy fuel: script ideas, role-play sessions, party games at 2am.
Real-time voice for hands-free work. Brainstorm on a walk, dictate a report, run a code review while cooking. Local STT, LLM streaming, on-device synthesis. Push-to-talk or continuous live call mode, group voice with multiple agents on one call, and a searchable transcript that stays after the call.
Author drafts inside ClanKit, or open your existing Obsidian vault — same files, same folders, two-way sync. Edit on either side and the other catches up.
Hide the navigation, the chat, every panel — the writing surface takes over the screen, and any agent stays one keystroke away.
Chat & agents
- Multi-provider, multi-model — per-chat and per-agent model override
- Multi-agent system with distinct personas, skills, and tools per agent
- Group chat with multi-agent collaboration and
@mentionrouting - Full per-agent isolation: prompts, skills, MCP servers, HTTP tools, RAG context
Tool use & automation
- Agentic tool-use loop (filesystem, shell, git, web, data processing, planning)
- MCP server integration
- HTTP tools (bring your own REST endpoints as first-class tools)
- Voice pipeline (STT / TTS with usage accounting)
Knowledge & content
- RAG workflows with local vector storage and hybrid search
- Skills system (local filesystem + remote skill hub)
- AI docs workspace (markdown + office/drawing helpers)
- AI news view with configurable feed aggregation
Platform
- Windows and macOS installers
- Local-first — your chats, agents, knowledge base, and API keys live on disk. The only network calls are the ones you configure (provider APIs, MCP servers) plus a single anonymous install ping you can opt out of in the setup wizard or in Config → Security
- Built-in i18n (English / Chinese)
Download the latest release from the Releases page:
- Windows:
.exeinstaller (NSIS) - macOS:
.dmg(Intel + Apple Silicon)
git clone https://github.com/XiamiYoung/ClanKit.git
cd ClanKit
npm install
npm run devThis starts Vite and launches Electron. Renderer changes hot-reload; changes under electron/ require restarting the app.
Requirements: Node.js 18+, npm.
Optional backend services. ClanKit ships with an optional cloud account / telemetry backend hosted at
api.clankit.app. When building from source, you don't need it — the app runs in guest mode with all core features (chat, agents, MCP, knowledge base, voice) available locally. To opt out completely, leaveelectron/build-config.dev.jsonempty or absent (seeelectron/build-config.example.jsonfor the schema).
- Launch the app.
- Open Config → Providers and add at least one provider (Anthropic, OpenRouter, OpenAI, etc.) with its API key.
- Pick a default model.
- Go to Chats and start a conversation.
All credentials are stored locally in config.json (see Data location below). They never leave your machine unless you explicitly call a provider.
| Command | What it does |
|---|---|
npm run dev |
Start Vite dev server and launch Electron |
npm test |
Run the Vitest suite |
npm run build |
Build the renderer into dist/ |
npm run preview |
Preview the built renderer in a browser |
npm run electron |
Launch Electron against the current build / dev setup |
npm run dist:win |
Package a Windows NSIS installer into dist-release/ |
npm run dist:mac |
Package a macOS DMG into dist-release/ |
npm run dist:all |
Package both Windows and macOS |
The dist scripts compile Electron main-process JS to V8 bytecode before packaging, then restore the source files:
npm run dist:win # Windows NSIS installer
npm run dist:mac # macOS DMG
npm run dist:all # BothOn Windows without a code-signing certificate, skip signing to avoid symlink errors:
set CSC_IDENTITY_AUTO_DISCOVERY=false && npm run dist:winEach dist command runs: (1) vite build — build the Vue renderer, (2) electron-builder — package the app (asar with JS source).
Pushing a version tag triggers GitHub Actions to build installers for Windows and macOS and publish them as a GitHub Release:
npm version patch
git push && git push --tagsDefault user data directory:
- Windows:
%APPDATA%\clankit\data - macOS:
~/Library/Application Support/clankit/data - Linux:
~/.config/clankit/data
Override via the CLANKIT_DATA_PATH environment variable (set it in your shell before launching the app, e.g. set CLANKIT_DATA_PATH=... && npm run dev on Windows or CLANKIT_DATA_PATH=... npm run dev on macOS/Linux).
Typical files inside the data directory:
config.json— app settings, providers, model defaultsagents.json— agent definitionstools.json— HTTP tool definitionsmcp-servers.json— MCP server configknowledge.json— knowledge-base indexchats/index.json,chats/<id>.json— chat metadata and transcripts
Other runtime path settings (skillsPath, DoCPath, artifactPath) live in config.json.
The app uses hash-based routing for Electron compatibility:
/chats, /agents, /skills, /knowledge, /mcp, /tools, /notes, /tasks, /ai-tasks, /news, /auth, /config
ClanKit/
├── electron/ # Main process (Node.js, CommonJS)
│ ├── main.js # App bootstrap
│ ├── preload.js # contextBridge API surface
│ ├── ipc/ # IPC handlers (18 modules)
│ ├── agent/ # Agent loop, model clients, tools, MCP
│ ├── im-bridge/ # External IM bridges
│ └── ...
├── src/ # Vue renderer (ES modules)
│ ├── views/ # Pages
│ ├── components/ # Chat UI, layout, common controls
│ ├── composables/ # useSendMessage, useChunkHandler, etc.
│ ├── stores/ # Pinia stores
│ ├── services/ # storage.js — IPC abstraction
│ └── i18n/ # Locale dictionaries
├── build/icons/ # App icons for packaging
└── scripts/ # Build and runtime scripts
Deeper architecture, IPC protocol, agent execution pipeline, and collaboration loop invariants live in source comments next to the code (electron/agent/agentLoop.js, electron/ipc/agent.js, src/composables/useChunkHandler.js).
Electron 31 · Vue 3.4 (Composition API) · Pinia 2 · Vue Router 4 · Vite 5 · Tailwind CSS 3.4 · Marked + highlight.js + DOMPurify · TipTap · Babylon.js.
- Renderer changes support Vite HMR.
- Changes under
electron/require restarting the app process (no Electron hot-reload). - All new UI strings must go through the i18n dictionary (
src/i18n/index.js); code and comments are English-only. - Hash-based routes only — do not use history-mode routing.
Bug reports and pull requests are welcome. See CONTRIBUTING.md for how to propose changes, the license terms attached to contributions, and the project's coding conventions.
For security vulnerabilities, please do not open a public issue — see SECURITY.md for the private disclosure channel.
- Speech DNA / persona-extraction pipeline — the design under
electron/agent/chatImport/(Speech DNA extractor, persona builder, claim/evidence flow) is inspired by Nuwa-Skill.
ClanKit is open source under the Apache License 2.0.
You are free to use, modify, and redistribute this software, including for commercial purposes, under the terms of the license. The "ClanKit" name and logo are trademarks and are not covered by the license — see Section 6 of the LICENSE file and the NOTICE file.






