mirror of
https://github.com/tiennm99/ccs.git
synced 2026-09-03 18:16:29 +00:00
feat: add plugin support to shared directories (v4.3.6) (#15)
* feat(shared): add plugin support to shared directories Add Claude Code plugins to the .ccs/shared/ symlink architecture, enabling plugin sharing across all CCS profiles (GLM, GLMT, Kimi, etc). Changes: - SharedManager: Add 'plugins' to sharedDirs array - Help text: Update all three implementations (Node.js, bash, PowerShell) - Postinstall: Create ~/.ccs/shared/plugins/ directory on install Architecture: ~/.claude/plugins/ <- ~/.ccs/shared/plugins/ <- instance/plugins/ This follows the existing pattern for commands/skills/agents and maintains cross-platform compatibility with Windows fallback support. * chore: bump version to 4.3.6 * docs: update CHANGELOG for v4.3.6
This commit is contained in:
@@ -2,6 +2,14 @@
|
||||
|
||||
Format: [Keep a Changelog](https://keepachangelog.com/)
|
||||
|
||||
## [4.3.6] - 2025-11-23
|
||||
|
||||
### Added
|
||||
- **Plugin Support**: Claude Code plugins now shared across all CCS profiles via `~/.ccs/shared/plugins/`
|
||||
- Symlink architecture: `~/.claude/plugins/` ← `~/.ccs/shared/plugins/` ← `instance/plugins/`
|
||||
- Install plugins once, use across GLM, GLMT, Kimi, and all Claude accounts
|
||||
- Cross-platform support with Windows fallback (copy mode)
|
||||
|
||||
## [4.3.5] - 2025-11-22
|
||||
|
||||
### Changed
|
||||
|
||||
+2
-1
@@ -207,7 +207,8 @@ function handleHelpCommand() {
|
||||
console.log(' Commands: ~/.ccs/shared/commands/');
|
||||
console.log(' Skills: ~/.ccs/shared/skills/');
|
||||
console.log(' Agents: ~/.ccs/shared/agents/');
|
||||
console.log(' Note: Commands, skills, and agents are symlinked across all profiles');
|
||||
console.log(' Plugins: ~/.ccs/shared/plugins/');
|
||||
console.log(' Note: Commands, skills, agents, and plugins are symlinked across all profiles');
|
||||
console.log('');
|
||||
|
||||
// Examples
|
||||
|
||||
@@ -17,7 +17,7 @@ class SharedManager {
|
||||
this.sharedDir = path.join(this.homeDir, '.ccs', 'shared');
|
||||
this.claudeDir = path.join(this.homeDir, '.claude');
|
||||
this.instancesDir = path.join(this.homeDir, '.ccs', 'instances');
|
||||
this.sharedDirs = ['commands', 'skills', 'agents'];
|
||||
this.sharedDirs = ['commands', 'skills', 'agents', 'plugins'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,7 +31,7 @@ $InstallMethod = if ($ScriptDir -and ((Test-Path "$ScriptDir\lib\ccs.ps1") -or (
|
||||
# IMPORTANT: Update this version when releasing new versions!
|
||||
# This hardcoded version is used for standalone installations (irm | iex)
|
||||
# For git installations, VERSION file is read if available
|
||||
$CcsVersion = "4.3.5"
|
||||
$CcsVersion = "4.3.6"
|
||||
|
||||
# Try to read VERSION file for git installations
|
||||
if ($ScriptDir) {
|
||||
|
||||
@@ -32,7 +32,7 @@ fi
|
||||
# IMPORTANT: Update this version when releasing new versions!
|
||||
# This hardcoded version is used for standalone installations (curl | bash)
|
||||
# For git installations, VERSION file is read if available
|
||||
CCS_VERSION="4.3.5"
|
||||
CCS_VERSION="4.3.6"
|
||||
|
||||
# Try to read VERSION file for git installations
|
||||
if [[ -f "$SCRIPT_DIR/VERSION" ]]; then
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
# Version (updated by scripts/bump-version.sh)
|
||||
CCS_VERSION="4.3.5"
|
||||
CCS_VERSION="4.3.6"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly CONFIG_FILE="${CCS_CONFIG:-$HOME/.ccs/config.json}"
|
||||
readonly PROFILES_JSON="$HOME/.ccs/profiles.json"
|
||||
@@ -222,7 +222,8 @@ show_help() {
|
||||
echo -e " Commands: ~/.ccs/shared/commands/"
|
||||
echo -e " Skills: ~/.ccs/shared/skills/"
|
||||
echo -e " Agents: ~/.ccs/shared/agents/"
|
||||
echo -e " Note: Commands, skills, and agents are symlinked across all profiles"
|
||||
echo -e " Plugins: ~/.ccs/shared/plugins/"
|
||||
echo -e " Note: Commands, skills, agents, and plugins are symlinked across all profiles"
|
||||
echo ""
|
||||
|
||||
echo -e "${CYAN}Examples:${RESET}"
|
||||
|
||||
+3
-2
@@ -12,7 +12,7 @@ param(
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Version (updated by scripts/bump-version.sh)
|
||||
$CcsVersion = "4.3.5"
|
||||
$CcsVersion = "4.3.6"
|
||||
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$ConfigFile = if ($env:CCS_CONFIG) { $env:CCS_CONFIG } else { "$env:USERPROFILE\.ccs\config.json" }
|
||||
$ProfilesJson = "$env:USERPROFILE\.ccs\profiles.json"
|
||||
@@ -269,7 +269,8 @@ function Show-Help {
|
||||
Write-Host " Commands: ~/.ccs/shared/commands/"
|
||||
Write-Host " Skills: ~/.ccs/shared/skills/"
|
||||
Write-Host " Agents: ~/.ccs/shared/agents/"
|
||||
Write-Host " Note: Commands, skills, and agents are symlinked across all profiles"
|
||||
Write-Host " Plugins: ~/.ccs/shared/plugins/"
|
||||
Write-Host " Note: Commands, skills, agents, and plugins are symlinked across all profiles"
|
||||
Write-Host ""
|
||||
|
||||
Write-ColorLine "Examples:" "Cyan"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@kaitranntt/ccs",
|
||||
"version": "4.3.5",
|
||||
"version": "4.3.6",
|
||||
"description": "Claude Code Switch - Instant profile switching between Claude Sonnet 4.5 and GLM 4.6",
|
||||
"keywords": [
|
||||
"cli",
|
||||
|
||||
@@ -81,7 +81,7 @@ function createConfigFiles() {
|
||||
}
|
||||
|
||||
// Create shared subdirectories
|
||||
const sharedSubdirs = ['commands', 'skills', 'agents'];
|
||||
const sharedSubdirs = ['commands', 'skills', 'agents', 'plugins'];
|
||||
for (const subdir of sharedSubdirs) {
|
||||
const subdirPath = path.join(sharedDir, subdir);
|
||||
if (!fs.existsSync(subdirPath)) {
|
||||
|
||||
Reference in New Issue
Block a user