Skip to content
XiamiYoungPublic

About

An AI destkop application for coding, generic AI use, knowledge collecting etc.

Resources

Contributing

Security policy

Stars

206 stars

Watchers

18 watching

Forks

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.


Demo

Watch the ClanKit demo on YouTube

Prefer Bilibili? See the Chinese README.


Features

Meet your agents. Shape every detail.

Agent roster

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.

Configure every part — visually.

Agent body view

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.

Understand the person, not just the words.

Persona analysis

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.

Role-play.

Role-play

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.

Pick up the phone and talk to your agent.

Voice call

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.

One Markdown, two homes that stay in sync.

Obsidian sync

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.

Focus mode — just you, the page, and an agent on call.

Focus mode

Hide the navigation, the chat, every panel — the writing surface takes over the screen, and any agent stays one keystroke away.


Highlights

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 @mention routing
  • 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)

Installation

Pre-built installers

Download the latest release from the Releases page:

  • Windows: .exe installer (NSIS)
  • macOS: .dmg (Intel + Apple Silicon)

From source

git clone https://github.com/XiamiYoung/ClanKit.git
cd ClanKit
npm install
npm run dev

This 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, leave electron/build-config.dev.json empty or absent (see electron/build-config.example.json for the schema).


Quick Start

  1. Launch the app.
  2. Open Config → Providers and add at least one provider (Anthropic, OpenRouter, OpenAI, etc.) with its API key.
  3. Pick a default model.
  4. 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.


Scripts

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

Building Installers

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    # Both

On Windows without a code-signing certificate, skip signing to avoid symlink errors:

set CSC_IDENTITY_AUTO_DISCOVERY=false && npm run dist:win

Each dist command runs: (1) vite build — build the Vue renderer, (2) electron-builder — package the app (asar with JS source).


Releases

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 --tags

Data Location

Default 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 defaults
  • agents.json — agent definitions
  • tools.json — HTTP tool definitions
  • mcp-servers.json — MCP server config
  • knowledge.json — knowledge-base index
  • chats/index.json, chats/<id>.json — chat metadata and transcripts

Other runtime path settings (skillsPath, DoCPath, artifactPath) live in config.json.


Routes

The app uses hash-based routing for Electron compatibility:

/chats, /agents, /skills, /knowledge, /mcp, /tools, /notes, /tasks, /ai-tasks, /news, /auth, /config


Project Layout

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).


Tech Stack

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.


Development Notes

  • 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.

Contributing

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.


Acknowledgements

  • Speech DNA / persona-extraction pipeline — the design under electron/agent/chatImport/ (Speech DNA extractor, persona builder, claim/evidence flow) is inspired by Nuwa-Skill.

License

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.

About

An AI destkop application for coding, generic AI use, knowledge collecting etc.

Resources

Contributing

Security policy

Stars

206 stars

Watchers

18 watching

Forks

Releases

Packages

Used by

Contributors

Languages