@clix-so/clix-agent-skills 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,7 +25,7 @@ configure the Clix MCP Server.
25
25
  The CLI supports two installation modes for skills:
26
26
 
27
27
  1. **Repo Root (Project-specific)** - Installs skills to the current project
28
- directory (default)
28
+ directory (default)
29
29
 
30
30
  - Skills are available only for the current project
31
31
  - Best for project-specific configurations
@@ -61,32 +61,32 @@ npx @clix-so/clix-agent-skills@latest install --all --client cursor --global
61
61
  ### Available Skills
62
62
 
63
63
  - **clix-integration**: Seamlessly integrate Clix Mobile SDK to your mobile
64
- application with Clix MCP Server
64
+ application with Clix MCP Server
65
65
  - **clix-event-tracking**: Implement `Clix.trackEvent` with naming/schema best
66
- practices and campaign-ready validation
66
+ practices and campaign-ready validation
67
67
  - **clix-user-management**: Implement `Clix.setUserId` + user properties with
68
- logout best practices, personalization (`user.*`), and audience targeting
68
+ logout best practices, personalization (`user.*`), and audience targeting
69
69
  - **clix-personalization**: Author and debug personalization templates for
70
- message content, deep links/URLs, and audience targeting rules (`user.*`,
71
- `event.*`, `trigger.*`, `device.*`)
70
+ message content, deep links/URLs, and audience targeting rules (`user.*`,
71
+ `event.*`, `trigger.*`, `device.*`)
72
72
  - **clix-api-triggered-campaigns**: Configure API-triggered campaigns in the
73
- console and trigger them from your backend with safe auth, dynamic filters
74
- (`trigger.*`), and personalization patterns
73
+ console and trigger them from your backend with safe auth, dynamic filters
74
+ (`trigger.*`), and personalization patterns
75
75
 
76
76
  **Supported Clients:**
77
77
 
78
-
79
78
  | Client | Flag | Default Path |
80
79
  | -------------- | ------------------------------------ | ------------------ |
81
80
  | Amp | `--client amp` | `.amp/skills/` |
82
81
  | Claude Code | `--client claude` (or `claude-code`) | `.claude/skills/` |
83
82
  | Codex | `--client codex` | `.codex/skills/` |
84
83
  | Cursor | `--client cursor` | `.cursor/skills/` |
84
+ | Gemini CLI | `--client gemini` | `.gemini/skills/` |
85
85
  | GitHub Copilot | `--client github` | `.github/skills/` |
86
86
  | Goose | `--client goose` | `.goose/skills/` |
87
87
  | Letta | `--client letta` | `.skills/` |
88
88
  | OpenCode | `--client opencode` | `.opencode/skill/` |
89
-
89
+ | VS Code | `--client vscode` | `.vscode/skills/` |
90
90
 
91
91
  ### Claude Code
92
92
 
@@ -117,7 +117,10 @@ Alternatively, you can install a single skill directly by running:
117
117
  /plugin install clix-api-triggered-campaigns@clix-agent-skills
118
118
  ```
119
119
 
120
- **Note for Claude Code users**: Skills now support automatic hot-reload! Skills created or modified in `~/.claude/skills` or `.claude/skills` are immediately available without restarting the session. Skills also show real-time progress while executing, displaying tool uses as they happen.
120
+ **Note for Claude Code users**: Skills now support automatic hot-reload! Skills
121
+ created or modified in `~/.claude/skills` or `.claude/skills` are immediately
122
+ available without restarting the session. Skills also show real-time progress
123
+ while executing, displaying tool uses as they happen.
121
124
 
122
125
  ### Codex
123
126
 
@@ -135,7 +138,6 @@ $skill-installer install https://github.com/clix-so/skills/tree/main/skills/inte
135
138
 
136
139
  Ensure you restart Codex after installation to detect the new skills.
137
140
 
138
-
139
141
  ## Disclaimer
140
142
 
141
143
  Please be aware that these skills may occasionally fail or execute incorrectly
@@ -148,4 +150,4 @@ Please use them with caution and supervision.
148
150
 
149
151
  Each skill in this repository is governed by its own license. For specific terms
150
152
  and conditions, please consult the `LICENSE.txt` file located within each
151
- skill's individual directory.
153
+ skill's individual directory.
package/dist/bin/cli.js CHANGED
@@ -25,7 +25,7 @@ program
25
25
  program
26
26
  .command("install [skill]")
27
27
  .description("Install agent skill(s)")
28
- .option("-c, --client <client>", "Target AI client (cursor, claude|claude-code, vscode, amp, kiro, amazonq, codex, opencode, manual)")
28
+ .option("-c, --client <client>", "Target AI client (amazonq, amp, claude|claude-code, codex, copilot|github, cursor, gemini, goose, kiro, letta, opencode, vscode, manual)")
29
29
  .option("-p, --path <path>", "Custom installation path (default: .clix/skills)")
30
30
  .option("-a, --all", "Install all available skills")
31
31
  .option("-g, --global", "Install globally to system root (default: installs to repo root)")
@@ -63,22 +63,30 @@ async function installSkill(skillName, options) {
63
63
  }
64
64
  else if (options.client) {
65
65
  switch (options.client.toLowerCase()) {
66
+ case "amazonq":
67
+ relativeDest = ".amazonq/skills";
68
+ break;
69
+ case "amp":
70
+ relativeDest = ".amp/skills";
71
+ break;
66
72
  case "claude":
67
73
  case "claude-code":
68
74
  // Claude Code uses the .claude/ folder convention, but MCP is configured via `claude mcp ...`
69
75
  relativeDest = ".claude/skills";
70
76
  break;
71
- case "cursor":
72
- relativeDest = ".cursor/skills";
73
- break;
74
- case "vscode":
75
- relativeDest = ".vscode/skills";
76
- break;
77
77
  case "codex":
78
78
  relativeDest = ".codex/skills";
79
79
  break;
80
- case "opencode":
81
- relativeDest = ".opencode/skill";
80
+ case "copilot":
81
+ case "github":
82
+ relativeDest = ".github/skills";
83
+ break;
84
+ case "cursor":
85
+ relativeDest = ".cursor/skills";
86
+ break;
87
+ case "gemini":
88
+ // Gemini CLI discovers project skills in `.gemini/skills/` and user skills in `~/.gemini/skills/`
89
+ relativeDest = ".gemini/skills";
82
90
  break;
83
91
  case "letta":
84
92
  relativeDest = ".skills";
@@ -86,18 +94,14 @@ async function installSkill(skillName, options) {
86
94
  case "goose":
87
95
  relativeDest = ".goose/skills";
88
96
  break;
89
- case "github":
90
- case "copilot":
91
- relativeDest = ".github/skills";
92
- break;
93
- case "amp":
94
- relativeDest = ".amp/skills";
95
- break;
96
97
  case "kiro":
97
98
  relativeDest = ".kiro/skills";
98
99
  break;
99
- case "amazonq":
100
- relativeDest = ".amazonq/skills";
100
+ case "opencode":
101
+ relativeDest = ".opencode/skill";
102
+ break;
103
+ case "vscode":
104
+ relativeDest = ".vscode/skills";
101
105
  break;
102
106
  default:
103
107
  relativeDest = options.client.startsWith(".") ? `${options.client}/skills` : `.clix/skills`;
@@ -151,6 +151,13 @@ function createEmptyConfig(configKey) {
151
151
  function getClientConfig(client) {
152
152
  const home = os_1.default.homedir();
153
153
  switch (client.toLowerCase()) {
154
+ case "gemini":
155
+ // Gemini CLI stores MCP server configuration in `~/.gemini/settings.json` (user scope)
156
+ return {
157
+ path: path_1.default.join(home, ".gemini", "settings.json"),
158
+ configKey: "mcpServers",
159
+ format: "json",
160
+ };
154
161
  case "cursor": {
155
162
  // MCP is always configured globally
156
163
  return {
@@ -351,17 +358,18 @@ async function configureMCP(client) {
351
358
  name: "client",
352
359
  message: "Which AI client are you using?",
353
360
  choices: [
354
- { name: "Cursor", value: "cursor" },
355
- { name: "Claude Code", value: "claude" },
356
- { name: "VS Code", value: "vscode" },
357
- { name: "Amp", value: "amp" },
358
- { name: "Kiro", value: "kiro" },
359
361
  { name: "Amazon Q", value: "amazonq" },
362
+ { name: "Amp", value: "amp" },
363
+ { name: "Claude Code", value: "claude" },
360
364
  { name: "Codex", value: "codex" },
361
- { name: "OpenCode", value: "opencode" },
362
- { name: "Letta", value: "letta" },
363
- { name: "Goose", value: "goose" },
365
+ { name: "Cursor", value: "cursor" },
366
+ { name: "Gemini CLI", value: "gemini" },
364
367
  { name: "GitHub", value: "github" },
368
+ { name: "Goose", value: "goose" },
369
+ { name: "Kiro", value: "kiro" },
370
+ { name: "Letta", value: "letta" },
371
+ { name: "OpenCode", value: "opencode" },
372
+ { name: "VS Code", value: "vscode" },
365
373
  { name: "None / Manual", value: "manual" },
366
374
  ],
367
375
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clix-so/clix-agent-skills",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "An open collection of agent skills for Clix.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -23,7 +23,7 @@
23
23
  "generate-llms": "ts-node scripts/generate-llms.ts",
24
24
  "preversion": "npm run sync-version",
25
25
  "postversion": "npm run sync-version",
26
- "prepublishOnly": "npm run sync-version && npm run build && npm test && npm run generate-llms"
26
+ "prepublishOnly": "npm run sync-version && npm run build && npm test && npm run generate-llms && npm run lint:fix"
27
27
  },
28
28
  "keywords": [
29
29
  "clix",