clacky-ai/openclacky
39.6
Weak · 20 September 2026
70.8k
lines of production code
Ruby
with JavaScript
1
measurement over time
What this system is
OpenClacky is a self-hosted, extensible AI agent platform that provides a comprehensive environment for autonomous coding, media generation, and system automation. It features a modular architecture supporting multiple LLM providers, long-term memory, and a robust plugin system for custom skills and extensions. The platform integrates deeply with developer workflows through a web UI and terminal interface, offering tools for file management, browser automation, and real-time collaboration via various instant messaging channels.
Features
Add DingTalk channel support via Stream Mode WebSocket
Users can now connect their DingTalk bots to the platform. This change introduces a new adapter that establishes a persistent WebSocket connection (Stream Mode) to receive inbound messages and replies. It supports sending rich text (Markdown) and file attachments (images and documents) via DingTalk's OAPI, handling file extension validation and webhook URL caching for reliable delivery.
lib/clacky/server/channel/adapters/dingtalk · high confidence
Add Discord channel adapter with bot support
Users can now connect Clacky to Discord via a new adapter that receives messages through the Discord Gateway (WebSocket) and sends responses via the REST API. The adapter supports text messages, file uploads (images, video, audio, PDF, etc.), message editing, and reply threading. It handles authentication via a bot token, filters out bot-generated messages, respects allowed-user lists, and manages group vs. direct message contexts by requiring mentions in group channels. Configuration requires setting the IM\_DISCORD\_BOT\_TOKEN environment variable, and a test-connection feature validates the token by fetching the bot's identity.
lib/clacky/server/channel/adapters/discord · high confidence
Add Homebrew formula and installation documentation for OpenClacky
Users can now install the OpenClacky CLI tool via Homebrew using the command \brew install openclacky\ (after tapping the repository). This change introduces the \openclacky.rb\ formula, which packages the Ruby gem (version 0.6.1) and creates executable wrappers for \openclacky\ and \clacky\, alongside a \README.md\ that provides detailed instructions for maintainers on publishing updates and for users on local testing.
homebrew · high confidence
Add WeCom (Enterprise WeChat) channel adapter with image and file support
Users can now connect the system to WeCom via a new adapter that establishes a WebSocket long-connection for receiving messages and uses the bot API for sending. The adapter supports text, image, file, and mixed message types. Incoming images and files are automatically downloaded and decrypted using WeCom's AES-256-CBC protocol (with detection for unencrypted files), and outgoing files are uploaded via a chunked media protocol before being sent to chats.
lib/clacky/server/channel/adapters/wecom · high confidence
Added CodeMirror editor library to vendor directory
The CodeMirror JavaScript library (codemirror.min.js) has been added to the project's vendor directory, providing the underlying engine for syntax highlighting and code editing capabilities in the web interface.
lib/clacky/web/vendor · high confidence
Added sample project fixtures for benchmarking
The benchmark fixture suite now includes a sample Ruby project containing an API handler for routing user and order requests, an order calculator for computing totals with tax and discounts, and a user renderer for generating HTML profiles and lists. These files provide a concrete codebase for evaluating benchmark tools against realistic Ruby patterns.
_benchmark/fixtures/sample\project · high confidence
Enhanced onboarding flow with AI naming, profile collection, and skill import
The onboarding experience now guides new users through a structured first-run ceremony: naming the AI assistant, selecting a personality style, and providing a user profile (name, occupation, goals, and links). The system automatically writes personalized SOUL.md and USER.md files based on these inputs. Additionally, the onboard skill now supports importing existing skills from external tools like OpenClaw and pre-installing platform-recommended builtin skills fetched from the API, ensuring a richer initial setup.
_lib/clacky/default\skills/onboard · high confidence
Introduce Advisor extension for post-task next-step recommendations
A new Advisor extension is added to the default extensions, providing a UI card above the input box that suggests three distinct next steps (e.g., continue, verify, or wrap up) after each task round. The feature is controlled by a global on/off switch in Settings (persisted to \~/.clacky/advisor.yml) and respects per-session state so recommendations do not leak between sessions. The backend hooks record tool usage and trigger an asynchronous LLM call against a strict JSON output schema, while the frontend handles dismissing suggestions for the current round and filling the composer with selected options.
_lib/clacky/default\extensions/advisor · high confidence
Introduce Creator Center for extension and skill management
Adds a new Creator Center workspace (mounted from the sidebar) that consolidates extension and skill management into two tabs: Extensions and Skills. The Extensions tab provides a local extension picker, a debug/verify section to check for errors and warnings, and a publish workflow that supports packing, uploading to the marketplace or a brand, version validation, README editing, and screenshot uploads. The Skills tab lists cloud and local skills with options to publish, iterate, or create new ones. This change introduces the core UI for managing the full lifecycle of extensions and skills, including device authorization for publishing and handling of local vs. published states.
_lib/clacky/default\extensions/ext-studio/panels · high confidence
Introduce Extension Studio API for local extension management and publishing
This change introduces the backend API for the Extension Studio, enabling users to manage local extensions directly from the interface. The new endpoints allow listing local containers with verification status, verifying extension integrity, and packing extensions into downloadable ZIP files. It also adds a publishing workflow that supports uploading to the marketplace or a brand library, handling device binding, version conflicts, and name conflicts. Additionally, users can view their published extensions and permanently delete unpublished local extensions.
_lib/clacky/default\extensions/ext-studio/api · high confidence
Introduce Feishu IM adapter with file, image, and document support
Users can now connect the system to Feishu (Lark) for two-way messaging. The new adapter handles inbound text, images, files, and rich posts via a persistent WebSocket connection, and supports outbound text, images, and file attachments. It also extracts and processes Feishu document links (docx, docs, wiki) by fetching their plain-text content for the agent. In group chats, the bot only responds when explicitly @-mentioned, and it automatically fetches recent group history to provide context, while gracefully handling missing API scopes with clear instructions for administrators.
lib/clacky/server/channel/adapters/feishu · high confidence
Introduce MCP server integration with OAuth support and CLI management
Added a new MCP (Model Context Protocol) subsystem that allows connecting to remote MCP servers via HTTP with full OAuth 2.0 authorization (including PKCE, client registration, and credential storage) and local servers via stdio. Users can now manage these connections through new CLI commands (\clacky mcp login\, \status\, \logout\, \capabilities\) and the system automatically exposes configured servers as 'VirtualSkills' for subagents to invoke via the local HTTP API.
lib/clacky/mcp · high confidence
Introduce Meeting Assistant panel with live transcription and wake-word activation
Adds a new Meeting Assistant panel to the sidebar that records audio, provides live captions via speech-to-text, and allows users to interact with the agent using wake phrases like "Hey Clacky" or "小克小克". The panel supports muting, interrupting responses, managing a custom vocabulary for proper nouns, and automatically generating meeting minutes upon ending a session, with full localization for English and Chinese.
_lib/clacky/default\extensions/meeting/panels · high confidence
Introduce UI2 component library for terminal interface
This change introduces a new set of UI components (UI2) for the terminal interface, including base rendering utilities, command suggestions dropdown, inline input handling, message display, modal dialogs, task tracking, tool event rendering, and a branded welcome banner. These components provide the foundation for the updated user interface experience, featuring improved input handling, command navigation, and visual feedback.
lib/clacky/ui2/components · high confidence
Introduce local billing system with usage tracking and cost calculation
The application now includes a new billing subsystem that tracks API usage and calculates costs. This feature introduces a \BillingRecord\ structure to capture details such as token usage (prompt, completion, cache), model, provider, and calculated USD cost for each API call. A \BillingStore\ component provides persistent storage for these records in JSONL files, organized by month, and supports querying and summarizing usage data by time period, model, or session. Additionally, a \PlatformBilling\ module bridges local records with authoritative usage data from the OpenClacky platform, handling alias-to-real-model mapping and merging usage summaries across multiple API keys to provide a unified view of costs and usage.
lib/clacky/billing · high confidence
Introduce new WebUI architecture with design tokens, hash-based routing, and access-key authentication
The web frontend has been restructured into a modular, token-driven system. A new CSS design system (app.css) defines a unified set of design tokens for surfaces, borders, text, and brand accents, supporting light, dark, and dim themes. Client-side navigation is now handled by a hash-based Router (app.js) that manages panel visibility and sidebar state for views like sessions, tasks, skills, and settings. Authentication has been extracted into a dedicated module (auth.js) that manages access keys via cookies and localStorage, probing the server to validate credentials. A standalone design sample (design-sample.html/css) is also provided to preview the new "Cockpit" skin.
lib/clacky/web · high confidence
Introduce new agent tools and refactor core tooling infrastructure
This release adds several new tools to the agent's capabilities: \ask\_user\ for structured, option-based user feedback; \invoke\_skill\ to trigger specialized skills (including subagent execution); and a \browser\ tool that drives the user's real Chrome browser via the Chrome DevTools MCP server. It also introduces a \security\ module that enforces pre-execution safety rules for shell commands, blocking dangerous operations while allowing safe read-only and controlled write actions. Existing tools have been refactored to use a new \Base\ class with standardized path expansion (including WSL support) and improved error handling. The \edit\ tool now performs literal string replacement with CRLF line-ending preservation, and the \file\_reader\ tool delegates file processing to a new \FileProcessor\ utility, supporting images, documents, and archives with size and line limits.
lib/clacky/tools · high confidence
Introduce skill-creator default skill with automated evaluation and self-evolution capabilities
Adds the \skill-creator\ as a default skill, providing a comprehensive system for creating, testing, and iteratively improving skills. This includes an interactive mode for manual skill development and a 'Quick mode' for agent self-evolution. The skill bundles specialized agent definitions (Grader, Blind Comparator, Post-hoc Analyzer) to evaluate skill performance, along with Python scripts (\generate\_review.py\, \aggregate\_benchmark.py\, \generate\_report.py\) to generate interactive HTML review pages and aggregate benchmark statistics. It also defines the JSON schemas for evals, grading, and history tracking to standardize the evaluation workflow.
_lib/clacky/default\skills/skill-creator · high confidence
Introduces UI2 terminal interface with advanced layout, input, and rendering capabilities
The application now includes a new terminal UI layer (UI2) that provides a split-screen layout with a scrollable output area and a fixed input/todo section. This update introduces a robust output buffer system that prevents duplicate rendering during scrolling, a new line editor with proper multi-byte (CJK) character support, and a markdown renderer with theme-aware colors. It also adds a stacked progress indicator system to manage concurrent tasks cleanly, a terminal detector for automatic dark/light theme selection, and a theme manager for switching between 'hacker' and 'minimal' styles.
lib/clacky/ui2 · high confidence
New 'Changes' panel for reviewing and committing AI-generated git diffs
A new 'Changes' panel has been added to the git extension, providing a user-friendly interface to review files modified by the AI during a session. The panel displays a list of changed files with friendly labels (Added, Modified, Deleted) instead of technical git status codes, and allows users to select specific files to commit via a 'Save snapshot' action that creates a commit with a timestamped message. Users can also view inline diffs for individual files and revert specific changes back to their HEAD state using a two-step confirmation process. The layout adapts to mobile screens by focusing on the diff view and hides non-essential git jargon like branch ahead/behind status unless on a non-main branch.
_lib/clacky/default\extensions/git/panels · high confidence
New Files panel with VS Code-style file tree and inline viewer
The workspace now includes a dedicated Files tab in the session aside, featuring a resizable file tree with VS Code-style colored icons and an inline tabbed viewer. Users can browse, open, and edit text files directly in the browser (with Cmd+S save support), preview images, and toggle between edit and preview modes for Markdown files. The panel also supports opening files with system applications, downloading files, and reveals file paths, addressing previous limitations in file interaction.
lib/clacky/web/features/workspace · high confidence
New Tasks feature with human-readable cron display and full CRUD management
This change introduces the Tasks feature for the web UI, providing a complete interface to manage scheduled cron jobs. The implementation includes a store layer for handling task state and communicating with the backend API (fetching, creating, editing, deleting, and running tasks), and a view layer that renders a task list with support for pausing/resuming and running tasks on demand. A key usability improvement is the new \\_humanCron\ function, which converts raw cron expressions into readable, localized text (supporting English and Chinese), handling complex patterns like weekday ranges, comma-separated days, and hour ranges.
lib/clacky/web/features/tasks · high confidence
New Time Machine panel for session history and file restoration
A new Time Machine panel has been added to the session aside, providing a vertical timeline of past tasks. Users can click on historical entries to view a summary of changed files and switch to a two-pane detail view that mirrors the Git tab layout, showing a file list alongside a unified diff. The panel supports restoring a previous state by rewriting files on disk, which triggers an inline confirmation dialog to prevent accidental data loss. The interface is responsive, adapting to the aside width, and updates in real-time via WebSocket events when tasks complete.
_lib/clacky/default\_extensions/time\machine/panels · high confidence
New Weixin (WeChat iLink) channel adapter with reliable message delivery
Users can now connect a WeChat bot via the new Weixin adapter, which handles long-polling for incoming messages and supports sending text and files. The adapter includes a background send queue that batches messages, enforces rate-limiting throttling, and implements exponential backoff retries to handle API rate limits (ret=-2), ensuring more reliable outbound communication.
lib/clacky/server/channel/adapters/weixin · high confidence
New agent subsystems for long-term memory, autonomous goals, and billing
The agent core now includes several new capabilities: a long-term memory system that automatically persists high-value decisions and context from completed tasks into local files; a standing-goal loop that allows the agent to autonomously work toward a user-defined objective with a turn budget and a lightweight LLM judge; a billing and cost-tracking module that records token usage and calculates costs per session; a history navigation system for cursor-paginated browsing of conversation rounds and compressed chunks; and a hook manager for extensible event handling. These changes enable the agent to remember past interactions, run self-directed projects, and provide transparent cost reporting.
lib/clacky/agent · high confidence
New backup and restore interface in settings
The settings UI now includes a dedicated backup section that allows users to configure automatic backups (including an option to include session data), download manual backup archives, and restore from a local tar.gz file. The view displays the last backup status and destination path, while the underlying store manages state and communicates with the backend API endpoints for status, configuration, download, and restore operations.
lib/clacky/web/features/backup · high confidence
New billing dashboard with usage tracking and cost estimation
The billing feature now includes a dedicated dashboard that displays usage metrics such as total cost, token consumption, request counts, and cache hit rates. The interface supports filtering by time period (day, week, month, year, all) and specific models, with data fetched from the backend API. Costs are displayed in the user's preferred currency (USD or CNY) using configurable exchange rates stored locally. The view also includes a cost estimation disclaimer and a shareable scorecard button, providing users with a comprehensive overview of their API usage and spending.
lib/clacky/web/features/billing · high confidence
New channel system with IM platform adapters and configuration
The server now supports integration with external Instant Messaging platforms (Feishu, WeCom, Weixin, Discord, DingTalk, Telegram) via a new channel subsystem. Users can configure platform credentials and enable/disable specific channels in \~/.clacky/channels.yml. The system includes a ChannelManager that runs adapter threads, a ChannelUIController that formats agent responses for IM chats (suppressing noisy tool details, handling file attachments, and respecting status/process message toggles), and loaders for both built-in and user-defined adapters. This enables users to interact with the agent through their preferred IM channels.
lib/clacky/server/channel · high confidence
New channel-manager skill for automated IM platform setup
The channel-manager skill has been introduced to guide users through configuring Instant Messaging channels (Feishu, WeCom, Weixin, Discord, Telegram, and DingTalk). It provides a unified interface for setup, status checks, enabling/disabling, and sending messages. The skill includes dedicated setup scripts for each platform: Feishu and DingTalk use automated Device Flow (QR code) authentication; Weixin uses iLink QR login; Discord requires manual portal interaction with token validation; and Feishu CLI skills can be optionally imported. The skill ensures credentials are saved securely via the server API rather than direct file writes.
_lib/clacky/default\skills/channel-manager · high confidence
New default parsers for DOC, DOCX, PDF, PPTX, WPS, and XLSX files
The default parser suite now includes dedicated scripts for Microsoft Office and WPS formats. DOC files are parsed using macOS textutil or Linux antiword. DOCX and PPTX files are parsed natively in Ruby using rubyzip and REXML to extract text, headings, lists, and tables into Markdown. PDF handling is expanded: the main parser uses pdftotext and flags pages with no text layer, while fallback scripts allow on-demand OCR via Tesseract (pdf\_parser\_ocr.py), pdfplumber (pdf\_parser\_plumber.py), or a Vision Language Model via the local server (pdf\_parser\_vlm.py). WPS formats (.wps, .et, .dps) are converted using LibreOffice, and XLSX spreadsheets are streamed using openpyxl in read-only mode to produce Markdown tables.
_lib/clacky/default\parsers · high confidence
New extensible plugin architecture with API, hooks, and patches
The platform now supports a structured extension system allowing third-party and user-authored code to integrate via multiple contribution types. Extensions can expose HTTP API endpoints under /api/ext/\<id\>/ using a Ruby DSL, register runtime hooks to intercept agent events, and apply safe method patches to existing classes with fingerprint validation to prevent drift. The system manages extensions across three layers (builtin, installed, local) with a unified loader, CLI commands for scaffolding, verifying, packing, and publishing, and a packager that enforces size limits and excludes system/VCS metadata. User data is persisted outside the package directory to survive updates, and the extension studio provides a UI for managing these capabilities.
lib/clacky/extension · high confidence
New extension marketplace and management UI with filtering, sorting, and pagination
The extensions feature has been replaced with a new, full-featured marketplace and management interface. Users can now browse, search, and sort extensions (defaulting to most installed) with persistent filter and sort preferences across sessions. The UI supports pagination for the marketplace, distinct tabs for system, market, and brand extensions, and displays detailed metadata including author, install counts, verified/unlisted badges, and update availability. The underlying store manages state for loading, filtering, and installation progress, while the view handles rendering of extension cards, skeleton states, and error handling.
lib/clacky/web/features/extensions · high confidence
New extension scaffolding templates and renderer
The extension scaffolding system now includes a \TemplateRenderer\ that copies and renders ERB templates, substituting placeholders in both file contents and path segments. Two new scaffold templates are provided: a minimal 'hello' extension demonstrating a basic API and UI panel, and a comprehensive 'full' kitchen-sink reference that exercises all eight contribution types (API, panels, skills, agents, channels, patches, hooks, and tools) to serve as a complete example for extension authors.
lib/clacky/extension/scaffold · high confidence
New gem-release skill for automated openclacky gem releases
A new 'gem-release' skill has been added to automate the end-to-end release process for the openclacky Ruby gem. This skill provides a structured workflow for agents to handle version bumping, running test suites (including web search smoke tests), building the gem, publishing to RubyGems, creating GitHub Releases, and mirroring assets to Tencent Cloud OSS. It supports both stable and pre-release versions, includes logic for generating user-facing changelogs with external contributor attribution, and provides a release summary step tailored for distribution channels like WeChat.
.clacky/skills/gem-release · high confidence
New live preview panel for HTML files and local URLs
A new Preview panel has been added to the left navigation, allowing users to click HTML files or localhost URLs in the chat to open them in a sandboxed iframe. The panel supports navigation history (back/forward), a custom address bar, and handles local file paths (including absolute paths and file:// URLs) as well as proxied dev server connections, with specific sandboxing rules to isolate host-origin content from third-party URLs.
_lib/clacky/default\extensions/preview · high confidence
New media generation skill with image editing and video stitching capabilities
The media-gen skill now supports generating and editing images, as well as creating videos. Users can edit existing images by passing them as input to the generation endpoint, and the skill includes a new script (video\_seq.sh) to stitch multiple video clips into a continuous sequence using last-frame chaining. The skill also provides detailed guidance on handling aspect ratios, concurrency limits, and error states for both image and video generation.
_lib/clacky/default\skills/media-gen · high confidence
New personal website skill for generating and publishing profile cards
Users can now generate a beautiful, mobile-first personal homepage (linktree-style) and publish it online. The skill reads user and AI info from local config files, creates a self-contained HTML file with zero external dependencies, and publishes it via a new Ruby-based publishing script. The script includes resilient HTTP handling with automatic retry and fallback to a secondary host if the primary endpoint fails, ensuring reliable publishing even during network issues.
_lib/clacky/default\skills/personal-website · high confidence
New profile management store and view with memory card UI
The profile feature now uses a dedicated store (store.js) to manage user/soul identity and memory data, handling network operations like loading, updating, and deleting memories, as well as initiating curate sessions. The view (view.js) renders this data using a safe, inline Markdown renderer that escapes HTML to prevent injection, displays identity sections with status indicators, and presents memories as expandable cards with metadata (topic, description, size, date). The UI preserves the expanded state of memory cards across re-renders and includes buttons for curating profiles and individual memories.
lib/clacky/web/features/profile · high confidence
New script to scaffold Rails 7.x projects with Railway deployment support
A new shell script has been added to the default skills to automate the creation of new Rails 7.x applications. The script clones a starter template, initializes a git repository, and runs the standard project setup. It also includes specific logic to add the x86\_64-linux platform to the Gemfile.lock, ensuring compatibility for deployments on Railway.
_lib/clacky/default\skills/new/scripts · high confidence
New server-side backup, browser automation, and IM channel infrastructure
The server now includes a BackupManager for scheduled or on-demand archives of the user's configuration and session data, with WSL-aware destination handling and retention policies. A BrowserManager has been added to control the chrome-devtools-mcp daemon lifecycle, allowing users to enable, configure, and toggle browser automation tools. Additionally, a new Channel system has been introduced, featuring a base adapter interface and specific implementations for Feishu, WeCom, Weixin, Discord, Telegram, and DingTalk, enabling users to connect their AI sessions to various instant messaging platforms.
lib/clacky/server · high confidence
New session aside chrome and unified extension registry
The web UI now features a dedicated session aside component that manages its own resize, collapse, and fullscreen states, persisting user preferences via local storage and supporting dynamic width requests from panels. This is powered by a new \Clacky.ext\ extension registry that provides a controlled entry point for extensions to register data sources, subscribe to events, and mount UI into specific slots with safety guarantees like crash containment and pure-mode isolation.
lib/clacky/web/core · high confidence
New session landing page with agent selection and advanced options
The new-session feature now provides a dedicated landing page for starting sessions, allowing users to browse and select from a grid of available agents (including new, extension, and custom badges) and configure advanced options such as session name, model, working directory, and project association. The view persists the last-used agent and project in localStorage, filters out hidden agents from the picker, and supports localized titles and descriptions. It also includes starter prompts for specific agents (e.g., ext-developer) and handles session creation via the API, integrating with the existing chat pipeline for the first message.
lib/clacky/web/features/new-session · high confidence
New shell script build system and cross-platform installers
The scripts area now includes a build toolchain (scripts/build/build.sh) that compiles template files (.sh.cc) into standalone shell scripts by inlining modular libraries (lib/colors.sh, lib/os.sh, lib/network.sh, etc.). This infrastructure generates new installers: install.sh (core Linux/macOS installer), install\_full.sh (macOS/Linux with Homebrew support), install\_browser.sh (Node.js + Chrome DevTools MCP for browser automation), and install.ps1 (Windows installer with WSL1/WSL2 detection, region-aware CDN fallbacks, and brand customization). The installers feature network pre-flight checks to detect China vs. global regions, automatically configuring mirrors (Aliyun, npmmirror, RubyGems) and CDN fallbacks to ensure reliable downloads.
scripts · high confidence
New shell-based installer and uninstaller scripts
The build system now generates a suite of Bash scripts for installation and removal. The new install.sh provides a lightweight installer that checks for Ruby \>= 2.6, handles gem installation (including a workaround for Ruby 2.6 by pinning rouge 3.30.0), and supports brand configuration. A companion install\_full.sh script offers a comprehensive setup for macOS and Linux, installing system dependencies (Homebrew, build tools), Ruby 3.1+ via mise, and optional browser automation tools (chrome-devtools-mcp). Additionally, install\_rails\_deps.sh is introduced to install Ruby, Node.js, and PostgreSQL for Rails development, while uninstall.sh handles the removal of the gem, brand wrappers, and configuration files.
scripts/build/src · high confidence
New theme system with dark/light mode support
The UI now supports a pluggable theme system that automatically adapts colors based on the terminal's background brightness. A new BaseTheme class defines the interface, while HackerTheme and MinimalTheme provide distinct visual styles with separate color definitions for dark and light backgrounds, ensuring readability regardless of the user's terminal settings.
lib/clacky/ui2/themes · high confidence
New trash management feature with session filtering and project selection
This change introduces a new trash management interface for the web UI, allowing users to view and manage both file and session trash. The feature includes a store layer for handling data loading, restoration, and deletion via API calls, and a view layer that renders file and session cards with details like size, deletion time, and project association. Key user-facing capabilities include filtering session trash by source (cron vs manual) and by specific project using a custom dropdown selector, viewing orphaned files with warnings, and performing bulk actions like emptying trash by age or removing orphans. The UI also provides skeleton loading states and auto-cleanup hints for session trash.
lib/clacky/web/features/trash · high confidence
New utility modules for argument parsing, environment detection, and file handling
This change introduces a suite of new utility modules in lib/clacky/utils to support core application features. ArgumentsParser handles tool call argument validation with JSON repair and schema-aware deserialization. BrowserDetector identifies running Chrome/Edge instances via DevToolsActivePort files. Encoding provides centralized UTF-8 handling for shell output, PTY streams, and security checks. EnvironmentDetector identifies the OS (WSL/Linux/macOS) and resolves file paths across environments. FileIgnoreHelper manages .gitignore parsing and directory walking with budget limits. FileProcessor handles file uploads, type detection, and preview generation. GitignoreParser implements .gitignore pattern matching. LimitStack provides a bounded collection for managing output size. Logger offers thread-safe, daily-rotating file logging. LoginShell ensures child processes inherit the user's shell environment.
lib/clacky/utils · high confidence
New version management UI with upgrade lifecycle and changelog access
The web interface now includes a dedicated version feature that displays a badge indicating the current version and update status. Users can check for updates, initiate upgrades, and restart the server directly from the UI. The feature includes a popover for upgrade progress, logs, and restart actions, as well as a link to the changelog for non-branded installations.
lib/clacky/web/features/version · high confidence
New web UI components for chat navigation, file editing, and mentions
This release introduces several new JavaScript components in the web UI layer. A new Chat Navigator provides a lightweight, scrollable index of conversation messages with hover previews and click-to-jump functionality. A CodeEditor component wraps CodeMirror 6 to provide syntax-highlighted file viewing and editing with support for various languages and binary sniffing. The Composer component now uses a contenteditable div to support atomic mention chips for files, directories, and sessions. Additionally, new CustomSelect, DatePicker, and MentionAC components enhance dropdown interactions, date selection, and @-mention autocomplete respectively.
lib/clacky/web/components · high confidence
Server-mode authentication and encrypted skill support
The Clacky library now enforces authentication for server-mode access via a configurable access key (stored in \~/.clacky/access\_key or the CLACKY\_ACCESS\_KEY environment variable). Additionally, it introduces a pure-Ruby AES-256-GCM implementation to support encrypted brand skills, ensuring compatibility with older Ruby environments (like macOS Ruby 2.6) that lack native AES-GCM support.
lib/clacky · high confidence
Support for installing skills from local or remote zip archives
The skill-add feature now allows users to install skills by providing a path to a local zip file or a remote URL ending in .zip. The system automatically downloads, extracts, and discovers skills within the archive, supporting both flat layouts (SKILL.md at the root) and nested directory structures. It also infers the skill name from the filename and handles HTTP redirects during download.
_lib/clacky/default\skills/skill-add/scripts · high confidence
Unified media generation framework with multi-provider support
The media subsystem has been refactored into a unified provider architecture that standardizes image, video, and audio generation across multiple backends. A new base class defines a consistent interface for persistence and response handling, while a central dispatcher routes requests to specific providers based on the configured base URL. This enables native support for Alibaba DashScope (Qwen-Image, CosyVoice, HappyHorse) and Volcengine Ark (Seedance video) alongside existing OpenAI-compatible and Gemini adapters, allowing users to leverage diverse AI models through a single, consistent API surface.
lib/clacky/media · high confidence
Architecture
Major architecture overhaul and Ruby 2.6+ compatibility support
The library has been refactored to support Ruby 2.6+ (including macOS system Ruby) by adding polyfills for missing methods like \filter\_map\ and enforcing UTF-8 encoding. The core architecture has shifted from a monolithic structure to a modular system, introducing new domain objects for \MessageHistory\, \AgentProfile\, and \Skill\, alongside a new pluggable extension system (\Clacky::ExtensionLoader\) and dedicated stream aggregators for OpenAI, Anthropic, and Bedrock. This change replaces the previous \Conversation\ class and raw message arrays, fundamentally changing how the agent manages state, tools, and external integrations.
lib · high confidence
Refactored message formatting into dedicated provider modules
The monolithic message formatting logic has been split into dedicated modules for Anthropic, AWS Bedrock, OpenAI, and the OpenAI Responses API. This change ensures that each provider's specific request and response shapes (such as Bedrock's Converse API structure or the Responses API's input/output items) are handled correctly, while maintaining a consistent internal canonical format. Users benefit from improved compatibility with diverse providers, including proper handling of tool calls, caching, and reasoning effort levels across all supported APIs.
_lib/clacky/message\format · high confidence
Behavioural changes
Localized error messages for LLM, platform, and device operations
The application now displays user-facing error messages in English and Chinese, covering LLM API issues (such as quota exhaustion, rate limits, and invalid keys), platform license errors, and device authorization states. This change introduces a new i18n module in lib/clacky/locales that manages these translations and falls back to English if the user's locale is not supported, ensuring clearer guidance for users encountering service or authentication errors.
lib/clacky/locales · high confidence
Project renamed to OpenClacky with new documentation and Docker support
The project has been renamed from 'clacky' to 'openclacky', reflected in the gem name, repository structure, and all user-facing documentation (README, CHANGELOG). A new \.clackyrules\ file establishes development guidelines, including strict Ruby 2.6 compatibility requirements and a preference for Skills over new Tools. The project now includes a Dockerfile for containerized deployment, a \CONTRIBUTING.md\ guide, and a \ROADMAP.md\ outlining future focus areas. Multiple language-specific READMEs (Chinese, Japanese) have been added, and the \.gitignore\ has been updated to exclude new workspace and build artifacts.
(repo-wide) · high confidence
Rename CLI entry point to openclacky and add clarky typo redirect
The main executable has been renamed from 'clacky' to 'openclacky' to reflect the project's new name. To improve user experience, a new 'clarky' shim has been added that detects the common typo, warns the user, and automatically redirects them to the correct 'openclacky' command. The original 'clacky' binary remains available but now explicitly sets up the load path before invoking the CLI.
bin · high confidence
Skills panel now supports search, system skill filtering, and persistent toggle state
The Skills feature introduces a search input that filters both 'My Skills' and 'Brand Skills' lists in real-time, displaying an empty state when no results match. Users can now toggle the visibility of system/default skills via a switch, with the preference persisted in localStorage so it survives page reloads. The view layer also renders skill cards with localized descriptions (supporting Chinese metadata), badges for system vs. custom skills, and handles invalid/warning states with appropriate notices and tooltips.
lib/clacky/web/features/skills · high confidence
Test coverage
Added benchmark test fixture and evaluation results for system prompt alignment; Added comprehensive test coverage for Clacky utility modules; Added comprehensive test coverage for core agent tools; Added comprehensive test coverage for the UI2 terminal interface; Added server-side test coverage for API extensions, browser management, and HTTP server logic; Added smoke tests for web search providers; Added static and behavioral tests for the WebUI extension architecture and platform source branding; Added test coverage for DingTalk, Telegram, and Weixin channel adapters; Added test coverage for MCP OAuth integration and transport robustness; Added test coverage for UI2 components; Added test coverage for channel configuration, binding, commands, and adapter loading; Added test coverage for media generation providers and routing; Added test harnesses for chat navigation, session sidebar, and workspace file handling; Added tests for Feishu token retry and WeChat message batching; Added tests for UI2 markdown rendering, view rendering, and controller logic; Added tests for agent session history retrieval and code style enforcement; Added tests for media generation skill behavior; Added tests for platform billing key merging logic; Added tests for the UI2 InputArea component; Expanded test coverage for agent core behaviors; Expanded test coverage for core agent and configuration subsystems.
Dependencies
Project renamed to openclacky with expanded Ruby 2.6+ compatibility and new dependencies
The gem has been renamed from 'clacky' to 'openclacky' (with legacy 'clacky' and 'clarky' shim gems for backward compatibility), and the runtime dependency list has been significantly expanded to support Ruby 2.6 through 4.0. New dependencies include 'faraday-multipart', 'diffy', 'pastel', 'tty-markdown', 'tty-screen', 'webrick', 'websocket', 'artii', 'rouge', 'ruby\_rich', 'chunky\_png', 'base64', and 'logger', while 'faraday' is pinned to \<2.9 and 'rubyzip' to \~\>2.4.1 to ensure cross-version compatibility. Development dependencies like 'debug', 'simplecov', and version-pinned 'parallel\_tests' and 'rubocop' have also been added or adjusted for older Ruby versions.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 40.
Lenses
- Code Health 28
- Architecture 82
- Maturity 62
- Readiness 41
- Security 71
- Accessibility 48
Changes since last survey
- 300 commits — 161 feature/other, 139 fixes
By area
- lib/clacky — 267 commits
- (root) — 23 commits
- spec/clacky — 9 commits
- spec/channel — 1 commit
Notable commits
- fix: Add quote-on-selection: select text in a message, quote into composer (Fixes #519) (#526)
- fix: Fix Feishu WebSocket TLS SNI (#479)
- fix: Fix:billing tooltip ux (C-5778) (#537)
- fix: Revert "docs: fix ambiguous '3× cheaper' / '3×' phrasing in READMEs (#473)"
- fix: Revert "fix(persistence): harden session save against interruption (#462)"
- fix: fix(advisor): fill composer via Composer.setText for contenteditable input
- fix: fix(advisor): keep recommendation card state per session (C-5764) (#502)
- fix: fix(advisor): send structured options instead of raw model text (C-5763) (#503)
- fix: fix(agent): stop reporting awaiting_feedback for question-mark endings (C-5757) (#511)
- fix: fix(agent): transcribe audio attachments via STT sidecar (C-5775) (#565)
- fix: fix(agents): flag hidden agents instead of dropping them
- fix: fix(brand): normalize homepage_url scheme on read (C-5666) (#534)
- fix: fix(brand): skip extension auto-sync for administrators (C-5749) (#515)
- fix: fix(channel): detach channel_ui and keep channel_info unique on /bind and /unbind (C-5762) (#504)
- fix: fix(channel): render ask_user questions as text in IM channels (C-5761) (#509)
- fix: fix(channel): require slash prefix for help commands (C-5641) (#533)
- fix: fix(directory-picker): improve mobile folder navigation (C-5783) (#549)
- fix: fix(download): fall back to secondary CDN host for skill zip downloads
- fix: fix(ext-studio): collapse extension actions into a ⋯ menu on narrow screens (C-5781) (#538)
- fix: fix(ext-studio): focus brand owners on brand publishing (#555)
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
clacky-ai/openclacky was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 0479b059b5916b81fc9d207773e2fe062d39716d — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.