AtomUICommunity / TKCode
git clone https://github.com/AtomUICommunity/TKCode.git
v0.1.4 · 1d ago
A native desktop client for AI coding agents, built with Avalonia and AtomUI. Multi-provider, MCP, integrated terminal, local resumable sessions, NativeAOT.
—
stars, 24h
+39
stars, 7 days · #1,100
+39
stars, 30 days · #7,403
39
★ total · +39% this week
4
forks · 1 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC#
LicenseApache-2.0
Created2026-10-16 (4d ago)
Last pushtoday
Watchers0
OwnerOrganization
Links
README excerpt
# TKCode **A desktop AI agent client built with Avalonia and AtomUI.** 简体中文 · English TKCode is a native desktop client for working with AI coding agents. It runs its agent loop in a separate Agent Host process, talks to models through three wire protocols, and keeps every session as a local, append-only JSONL file. The whole client is designed to publish as a NativeAOT binary. > **Status:** early development. The core pieces (protocol adapters, agent loop, session store, Host process, desktop UI) exist, but the app is not yet a finished product, and APIs and file formats may change. ## Features - **Project- and session-centric UI.** Dark-first design with light and system-following themes, Chinese and English UI, and a command palette (⌘K) with nested pages and keyboard navigation. - **Multiple providers and models.** Built-in provider catalog with one API key per provider, custom OpenAI-compatible and local endpoints, and hot-reloaded settings. - **Three protocol adapters:** OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages, with thinking / reasoning replay and fast mode where the provider supports it. - **Coding tools for the built-in agent:** `read`, `write`, `edit`, `ls`, `glob`, `grep`, `bash` (with background tasks), task lists, `web_fetch`, `web_search`, and sub-agents. - **External agent runtimes.** Claude Code, Codex, and ACP agents found on the machine run inside TKCode and share its approval flow. - **Approvals and permission modes.** Read-only actions inside the workspace pass; everything else can ask the UI first, once or for the whole session. - **Composer.** `@` file mentions, `/` commands and skills, Agent / Plan roles, and image attachments. Global assets live in `~/.tkcode`, project assets in `.agents/`. - **MCP.** stdio and HTTP servers from `settings.json` or `.mcp.json`, with tools, resources, prompts, elicitation, and import / export. - **Workbench.** File tree, code and Markdown previews, and an integrated terminal (libghostty-vt, separate pty host that keeps sessions alive, search). - **Resumable sessions.** Sessions are stored as JSONL trees under `~/.tkcode/sessions/` and can be listed, renamed, pinned, reopened, and continued. - **Streaming Markdown** via StreamMark (code highlighting, Mermaid, LaTeX). - **In-app updates** from GitHub Releases, plus a system tray icon. ## Screenshots New chat. Pick a device, project, model, and role. Workbench. Conversation, code preview, and file tree side by side. Command palette (⌘K). Commands, projects, and chats. Light theme. Follows the system or set explicitly. The screenshots are rendered headlessly from a sample project. Regenerate them with `tools/readme-screenshots.sh`. ## Architecture [code] | Project | Responsibility | |---|---| | `src/TKCode.Ai` | Unified message model, streaming events, OpenAI / Anthropic adapters | | `src/TKCode.Agent` | Agent loop, tool abstraction, approval hook, steer / follow-up queues | | `src/TKCode.Agent.Coding` | Coding