@voidagency/skills 1.0.2 → 1.0.4

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/dist/cli.mjs CHANGED
@@ -740,123 +740,7 @@ function filterSkills(skills, inputNames) {
740
740
  //#region src/agents.ts
741
741
  const home = homedir();
742
742
  const configHome = xdgConfig ?? join(home, ".config");
743
- const codexHome = process.env.CODEX_HOME?.trim() || join(home, ".codex");
744
- const claudeHome = process.env.CLAUDE_CONFIG_DIR?.trim() || join(home, ".claude");
745
- function getOpenClawGlobalSkillsDir(homeDir = home, pathExists = existsSync) {
746
- if (pathExists(join(homeDir, ".openclaw"))) return join(homeDir, ".openclaw/skills");
747
- if (pathExists(join(homeDir, ".clawdbot"))) return join(homeDir, ".clawdbot/skills");
748
- if (pathExists(join(homeDir, ".moltbot"))) return join(homeDir, ".moltbot/skills");
749
- return join(homeDir, ".openclaw/skills");
750
- }
751
743
  const agents = {
752
- amp: {
753
- name: "amp",
754
- displayName: "Amp",
755
- skillsDir: ".agents/skills",
756
- globalSkillsDir: join(configHome, "agents/skills"),
757
- detectInstalled: async () => {
758
- return existsSync(join(configHome, "amp"));
759
- }
760
- },
761
- antigravity: {
762
- name: "antigravity",
763
- displayName: "Antigravity",
764
- skillsDir: ".agent/skills",
765
- globalSkillsDir: join(home, ".gemini/antigravity/skills"),
766
- detectInstalled: async () => {
767
- return existsSync(join(home, ".gemini/antigravity"));
768
- }
769
- },
770
- augment: {
771
- name: "augment",
772
- displayName: "Augment",
773
- skillsDir: ".augment/skills",
774
- globalSkillsDir: join(home, ".augment/skills"),
775
- detectInstalled: async () => {
776
- return existsSync(join(home, ".augment"));
777
- }
778
- },
779
- "claude-code": {
780
- name: "claude-code",
781
- displayName: "Claude Code",
782
- skillsDir: ".claude/skills",
783
- globalSkillsDir: join(claudeHome, "skills"),
784
- detectInstalled: async () => {
785
- return existsSync(claudeHome);
786
- }
787
- },
788
- openclaw: {
789
- name: "openclaw",
790
- displayName: "OpenClaw",
791
- skillsDir: "skills",
792
- globalSkillsDir: getOpenClawGlobalSkillsDir(),
793
- detectInstalled: async () => {
794
- return existsSync(join(home, ".openclaw")) || existsSync(join(home, ".clawdbot")) || existsSync(join(home, ".moltbot"));
795
- }
796
- },
797
- cline: {
798
- name: "cline",
799
- displayName: "Cline",
800
- skillsDir: ".agents/skills",
801
- globalSkillsDir: join(home, ".agents", "skills"),
802
- detectInstalled: async () => {
803
- return existsSync(join(home, ".cline"));
804
- }
805
- },
806
- codebuddy: {
807
- name: "codebuddy",
808
- displayName: "CodeBuddy",
809
- skillsDir: ".codebuddy/skills",
810
- globalSkillsDir: join(home, ".codebuddy/skills"),
811
- detectInstalled: async () => {
812
- return existsSync(join(process.cwd(), ".codebuddy")) || existsSync(join(home, ".codebuddy"));
813
- }
814
- },
815
- codex: {
816
- name: "codex",
817
- displayName: "Codex",
818
- skillsDir: ".agents/skills",
819
- globalSkillsDir: join(codexHome, "skills"),
820
- detectInstalled: async () => {
821
- return existsSync(codexHome) || existsSync("/etc/codex");
822
- }
823
- },
824
- "command-code": {
825
- name: "command-code",
826
- displayName: "Command Code",
827
- skillsDir: ".commandcode/skills",
828
- globalSkillsDir: join(home, ".commandcode/skills"),
829
- detectInstalled: async () => {
830
- return existsSync(join(home, ".commandcode"));
831
- }
832
- },
833
- continue: {
834
- name: "continue",
835
- displayName: "Continue",
836
- skillsDir: ".continue/skills",
837
- globalSkillsDir: join(home, ".continue/skills"),
838
- detectInstalled: async () => {
839
- return existsSync(join(process.cwd(), ".continue")) || existsSync(join(home, ".continue"));
840
- }
841
- },
842
- cortex: {
843
- name: "cortex",
844
- displayName: "Cortex Code",
845
- skillsDir: ".cortex/skills",
846
- globalSkillsDir: join(home, ".snowflake/cortex/skills"),
847
- detectInstalled: async () => {
848
- return existsSync(join(home, ".snowflake/cortex"));
849
- }
850
- },
851
- crush: {
852
- name: "crush",
853
- displayName: "Crush",
854
- skillsDir: ".crush/skills",
855
- globalSkillsDir: join(home, ".config/crush/skills"),
856
- detectInstalled: async () => {
857
- return existsSync(join(home, ".config/crush"));
858
- }
859
- },
860
744
  cursor: {
861
745
  name: "cursor",
862
746
  displayName: "Cursor",
@@ -866,123 +750,6 @@ const agents = {
866
750
  return existsSync(join(home, ".cursor"));
867
751
  }
868
752
  },
869
- droid: {
870
- name: "droid",
871
- displayName: "Droid",
872
- skillsDir: ".factory/skills",
873
- globalSkillsDir: join(home, ".factory/skills"),
874
- detectInstalled: async () => {
875
- return existsSync(join(home, ".factory"));
876
- }
877
- },
878
- "gemini-cli": {
879
- name: "gemini-cli",
880
- displayName: "Gemini CLI",
881
- skillsDir: ".agents/skills",
882
- globalSkillsDir: join(home, ".gemini/skills"),
883
- detectInstalled: async () => {
884
- return existsSync(join(home, ".gemini"));
885
- }
886
- },
887
- "github-copilot": {
888
- name: "github-copilot",
889
- displayName: "GitHub Copilot",
890
- skillsDir: ".agents/skills",
891
- globalSkillsDir: join(home, ".copilot/skills"),
892
- detectInstalled: async () => {
893
- return existsSync(join(home, ".copilot"));
894
- }
895
- },
896
- goose: {
897
- name: "goose",
898
- displayName: "Goose",
899
- skillsDir: ".goose/skills",
900
- globalSkillsDir: join(configHome, "goose/skills"),
901
- detectInstalled: async () => {
902
- return existsSync(join(configHome, "goose"));
903
- }
904
- },
905
- junie: {
906
- name: "junie",
907
- displayName: "Junie",
908
- skillsDir: ".junie/skills",
909
- globalSkillsDir: join(home, ".junie/skills"),
910
- detectInstalled: async () => {
911
- return existsSync(join(home, ".junie"));
912
- }
913
- },
914
- "iflow-cli": {
915
- name: "iflow-cli",
916
- displayName: "iFlow CLI",
917
- skillsDir: ".iflow/skills",
918
- globalSkillsDir: join(home, ".iflow/skills"),
919
- detectInstalled: async () => {
920
- return existsSync(join(home, ".iflow"));
921
- }
922
- },
923
- kilo: {
924
- name: "kilo",
925
- displayName: "Kilo Code",
926
- skillsDir: ".kilocode/skills",
927
- globalSkillsDir: join(home, ".kilocode/skills"),
928
- detectInstalled: async () => {
929
- return existsSync(join(home, ".kilocode"));
930
- }
931
- },
932
- "kimi-cli": {
933
- name: "kimi-cli",
934
- displayName: "Kimi Code CLI",
935
- skillsDir: ".agents/skills",
936
- globalSkillsDir: join(home, ".config/agents/skills"),
937
- detectInstalled: async () => {
938
- return existsSync(join(home, ".kimi"));
939
- }
940
- },
941
- "kiro-cli": {
942
- name: "kiro-cli",
943
- displayName: "Kiro CLI",
944
- skillsDir: ".kiro/skills",
945
- globalSkillsDir: join(home, ".kiro/skills"),
946
- detectInstalled: async () => {
947
- return existsSync(join(home, ".kiro"));
948
- }
949
- },
950
- kode: {
951
- name: "kode",
952
- displayName: "Kode",
953
- skillsDir: ".kode/skills",
954
- globalSkillsDir: join(home, ".kode/skills"),
955
- detectInstalled: async () => {
956
- return existsSync(join(home, ".kode"));
957
- }
958
- },
959
- mcpjam: {
960
- name: "mcpjam",
961
- displayName: "MCPJam",
962
- skillsDir: ".mcpjam/skills",
963
- globalSkillsDir: join(home, ".mcpjam/skills"),
964
- detectInstalled: async () => {
965
- return existsSync(join(home, ".mcpjam"));
966
- }
967
- },
968
- "mistral-vibe": {
969
- name: "mistral-vibe",
970
- displayName: "Mistral Vibe",
971
- skillsDir: ".vibe/skills",
972
- globalSkillsDir: join(home, ".vibe/skills"),
973
- detectInstalled: async () => {
974
- return existsSync(join(home, ".vibe"));
975
- }
976
- },
977
- mux: {
978
- name: "mux",
979
- displayName: "Mux",
980
- skillsDir: ".mux/skills",
981
- globalSkillsDir: join(home, ".mux/skills"),
982
- detectInstalled: async () => {
983
- return existsSync(join(home, ".mux"));
984
- }
985
- },
986
753
  opencode: {
987
754
  name: "opencode",
988
755
  displayName: "OpenCode",
@@ -991,132 +758,6 @@ const agents = {
991
758
  detectInstalled: async () => {
992
759
  return existsSync(join(configHome, "opencode"));
993
760
  }
994
- },
995
- openhands: {
996
- name: "openhands",
997
- displayName: "OpenHands",
998
- skillsDir: ".openhands/skills",
999
- globalSkillsDir: join(home, ".openhands/skills"),
1000
- detectInstalled: async () => {
1001
- return existsSync(join(home, ".openhands"));
1002
- }
1003
- },
1004
- pi: {
1005
- name: "pi",
1006
- displayName: "Pi",
1007
- skillsDir: ".pi/skills",
1008
- globalSkillsDir: join(home, ".pi/agent/skills"),
1009
- detectInstalled: async () => {
1010
- return existsSync(join(home, ".pi/agent"));
1011
- }
1012
- },
1013
- qoder: {
1014
- name: "qoder",
1015
- displayName: "Qoder",
1016
- skillsDir: ".qoder/skills",
1017
- globalSkillsDir: join(home, ".qoder/skills"),
1018
- detectInstalled: async () => {
1019
- return existsSync(join(home, ".qoder"));
1020
- }
1021
- },
1022
- "qwen-code": {
1023
- name: "qwen-code",
1024
- displayName: "Qwen Code",
1025
- skillsDir: ".qwen/skills",
1026
- globalSkillsDir: join(home, ".qwen/skills"),
1027
- detectInstalled: async () => {
1028
- return existsSync(join(home, ".qwen"));
1029
- }
1030
- },
1031
- replit: {
1032
- name: "replit",
1033
- displayName: "Replit",
1034
- skillsDir: ".agents/skills",
1035
- globalSkillsDir: join(configHome, "agents/skills"),
1036
- showInUniversalList: false,
1037
- detectInstalled: async () => {
1038
- return existsSync(join(process.cwd(), ".replit"));
1039
- }
1040
- },
1041
- roo: {
1042
- name: "roo",
1043
- displayName: "Roo Code",
1044
- skillsDir: ".roo/skills",
1045
- globalSkillsDir: join(home, ".roo/skills"),
1046
- detectInstalled: async () => {
1047
- return existsSync(join(home, ".roo"));
1048
- }
1049
- },
1050
- trae: {
1051
- name: "trae",
1052
- displayName: "Trae",
1053
- skillsDir: ".trae/skills",
1054
- globalSkillsDir: join(home, ".trae/skills"),
1055
- detectInstalled: async () => {
1056
- return existsSync(join(home, ".trae"));
1057
- }
1058
- },
1059
- "trae-cn": {
1060
- name: "trae-cn",
1061
- displayName: "Trae CN",
1062
- skillsDir: ".trae/skills",
1063
- globalSkillsDir: join(home, ".trae-cn/skills"),
1064
- detectInstalled: async () => {
1065
- return existsSync(join(home, ".trae-cn"));
1066
- }
1067
- },
1068
- windsurf: {
1069
- name: "windsurf",
1070
- displayName: "Windsurf",
1071
- skillsDir: ".windsurf/skills",
1072
- globalSkillsDir: join(home, ".codeium/windsurf/skills"),
1073
- detectInstalled: async () => {
1074
- return existsSync(join(home, ".codeium/windsurf"));
1075
- }
1076
- },
1077
- zencoder: {
1078
- name: "zencoder",
1079
- displayName: "Zencoder",
1080
- skillsDir: ".zencoder/skills",
1081
- globalSkillsDir: join(home, ".zencoder/skills"),
1082
- detectInstalled: async () => {
1083
- return existsSync(join(home, ".zencoder"));
1084
- }
1085
- },
1086
- neovate: {
1087
- name: "neovate",
1088
- displayName: "Neovate",
1089
- skillsDir: ".neovate/skills",
1090
- globalSkillsDir: join(home, ".neovate/skills"),
1091
- detectInstalled: async () => {
1092
- return existsSync(join(home, ".neovate"));
1093
- }
1094
- },
1095
- pochi: {
1096
- name: "pochi",
1097
- displayName: "Pochi",
1098
- skillsDir: ".pochi/skills",
1099
- globalSkillsDir: join(home, ".pochi/skills"),
1100
- detectInstalled: async () => {
1101
- return existsSync(join(home, ".pochi"));
1102
- }
1103
- },
1104
- adal: {
1105
- name: "adal",
1106
- displayName: "AdaL",
1107
- skillsDir: ".adal/skills",
1108
- globalSkillsDir: join(home, ".adal/skills"),
1109
- detectInstalled: async () => {
1110
- return existsSync(join(home, ".adal"));
1111
- }
1112
- },
1113
- universal: {
1114
- name: "universal",
1115
- displayName: "Universal",
1116
- skillsDir: ".agents/skills",
1117
- globalSkillsDir: join(configHome, "agents/skills"),
1118
- showInUniversalList: false,
1119
- detectInstalled: async () => false
1120
761
  }
1121
762
  };
1122
763
  async function detectInstalledAgents() {
@@ -1127,22 +768,18 @@ async function detectInstalledAgents() {
1127
768
  }
1128
769
  /**
1129
770
  * Returns agents that use the universal .agents/skills directory.
1130
- * These agents share a common skill location and don't need symlinks.
1131
- * Agents with showInUniversalList: false are excluded.
771
+ * Cursor and OpenCode both use this; they are always shown in the universal list.
1132
772
  */
1133
773
  function getUniversalAgents() {
1134
774
  return Object.entries(agents).filter(([_, config]) => config.skillsDir === ".agents/skills" && config.showInUniversalList !== false).map(([type]) => type);
1135
775
  }
1136
776
  /**
1137
777
  * Returns agents that use agent-specific skill directories (not universal).
1138
- * These agents need symlinks from the canonical .agents/skills location.
778
+ * Empty for this fork we only support Cursor and OpenCode (both use .agents/skills).
1139
779
  */
1140
780
  function getNonUniversalAgents() {
1141
781
  return Object.entries(agents).filter(([_, config]) => config.skillsDir !== ".agents/skills").map(([type]) => type);
1142
782
  }
1143
- /**
1144
- * Check if an agent uses the universal .agents/skills directory.
1145
- */
1146
783
  function isUniversalAgent(type) {
1147
784
  return agents[type].skillsDir === ".agents/skills";
1148
785
  }
@@ -2133,7 +1770,7 @@ function createEmptyLocalLock() {
2133
1770
  }
2134
1771
  //#endregion
2135
1772
  //#region package.json
2136
- var version$1 = "1.0.2";
1773
+ var version$1 = "1.0.4";
2137
1774
  //#endregion
2138
1775
  //#region src/add.ts
2139
1776
  const isCancelled$1 = (value) => typeof value === "symbol";
@@ -2289,11 +1926,7 @@ async function promptForAgents(message, choices) {
2289
1926
  lastSelected = await getLastSelectedAgents();
2290
1927
  } catch {}
2291
1928
  const validAgents = choices.map((c) => c.value);
2292
- const defaultValues = [
2293
- "claude-code",
2294
- "opencode",
2295
- "codex"
2296
- ].filter((a) => validAgents.includes(a));
1929
+ const defaultValues = ["cursor"].filter((a) => validAgents.includes(a));
2297
1930
  let initialValues = [];
2298
1931
  if (lastSelected && lastSelected.length > 0) initialValues = lastSelected.filter((a) => validAgents.includes(a));
2299
1932
  if (initialValues.length === 0) initialValues = defaultValues;
@@ -2462,6 +2095,7 @@ async function handleWellKnownSkills(source, url, options, spinner) {
2462
2095
  if (options.global === void 0 && !options.yes && supportsGlobal) {
2463
2096
  const scope = await ve({
2464
2097
  message: "Installation scope",
2098
+ initialValue: false,
2465
2099
  options: [{
2466
2100
  value: false,
2467
2101
  label: "Project",
@@ -2853,6 +2487,7 @@ async function runAdd(args, options = {}) {
2853
2487
  if (options.global === void 0 && !options.yes && supportsGlobal) {
2854
2488
  const scope = await ve({
2855
2489
  message: "Installation scope",
2490
+ initialValue: false,
2856
2491
  options: [{
2857
2492
  value: false,
2858
2493
  label: "Project",
@@ -3130,7 +2765,7 @@ async function promptForFindSkills(options, targetAgents) {
3130
2765
  if (options?.yes) return;
3131
2766
  try {
3132
2767
  if (await isPromptDismissed("findSkillsPrompt")) return;
3133
- if (await isSkillInstalled("find-skills", "claude-code", { global: true })) {
2768
+ if (await isSkillInstalled("find-skills", "cursor", { global: true })) {
3134
2769
  await dismissPrompt("findSkillsPrompt");
3135
2770
  return;
3136
2771
  }
@@ -3156,11 +2791,11 @@ async function promptForFindSkills(options, targetAgents) {
3156
2791
  });
3157
2792
  } catch {
3158
2793
  M.warn("Failed to install find-skills. You can try again with:");
3159
- M.message(import_picocolors.default.dim(" npx @voidagency/skills add vercel-labs/skills@find-skills -g -y --all"));
2794
+ M.message(import_picocolors.default.dim(" npx @voidagency/skills add bitbucket:adminvoid/skills@find-skills -g -y"));
3160
2795
  }
3161
2796
  } else {
3162
2797
  await dismissPrompt("findSkillsPrompt");
3163
- M.message(import_picocolors.default.dim("You can install it later with: npx @voidagency/skills add vercel-labs/skills@find-skills"));
2798
+ M.message(import_picocolors.default.dim("You can install it later with: npx @voidagency/skills add bitbucket:adminvoid/skills@find-skills"));
3164
2799
  }
3165
2800
  } catch {}
3166
2801
  }
@@ -3209,8 +2844,9 @@ function parseAddOptions(args) {
3209
2844
  * Agent repos should contain agent.json: { "skills": ["owner/repo", "owner/repo@skill", ...] }
3210
2845
  */
3211
2846
  const AGENT_DEFINITIONS_DIR = "agent-definitions";
3212
- function getAgentDefinitionsBase() {
3213
- return join(homedir(), AGENTS_DIR$2, AGENT_DEFINITIONS_DIR);
2847
+ function getAgentDefinitionsBase(global) {
2848
+ if (global) return join(homedir(), AGENTS_DIR$2, AGENT_DEFINITIONS_DIR);
2849
+ return join(process.cwd(), AGENTS_DIR$2, AGENT_DEFINITIONS_DIR);
3214
2850
  }
3215
2851
  /**
3216
2852
  * Sanitize a source string into a safe directory name (e.g. "owner/repo" -> "owner-repo").
@@ -3286,6 +2922,32 @@ async function runAddAgent(agentSource, options = {}) {
3286
2922
  const baseSlug = parsed.type === "local" ? slugFromSource(repoDir) : getOwnerRepo(parsed) || slugFromSource(source);
3287
2923
  const slug = agentName ? `${baseSlug}-${slugFromSource(agentName)}` : baseSlug;
3288
2924
  const skillsList = Array.isArray(manifest.skills) ? manifest.skills : [];
2925
+ let installAgentGlobally = options.global ?? false;
2926
+ if (options.global === void 0 && !options.yes) {
2927
+ const scope = await ve({
2928
+ message: "Installation scope",
2929
+ initialValue: false,
2930
+ options: [{
2931
+ value: false,
2932
+ label: "Project",
2933
+ hint: "Current directory (committed with your project)"
2934
+ }, {
2935
+ value: true,
2936
+ label: "Global",
2937
+ hint: "Home directory (available across all projects)"
2938
+ }]
2939
+ });
2940
+ if (pD(scope)) {
2941
+ xe("Installation cancelled");
2942
+ process.exit(0);
2943
+ }
2944
+ installAgentGlobally = scope;
2945
+ }
2946
+ const addOptions = {
2947
+ ...options,
2948
+ global: installAgentGlobally,
2949
+ yes: true
2950
+ };
3289
2951
  if (skillsList.length > 0) M.info(`Installing ${skillsList.length} skill(s) from agent manifest...`);
3290
2952
  const hasExplicitProvider = (s) => /^(bitbucket:|github:|gitlab:|https?:\/\/)/i.test(String(s).trim());
3291
2953
  const resolveSkillSource = (s) => {
@@ -3299,18 +2961,26 @@ async function runAddAgent(agentSource, options = {}) {
3299
2961
  const resolved = resolveSkillSource(trimmed);
3300
2962
  spinner.start(`Installing skill: ${trimmed}`);
3301
2963
  try {
3302
- await runAdd([resolved], options);
2964
+ await runAdd([resolved], addOptions);
3303
2965
  spinner.stop(`Installed: ${trimmed}`);
3304
2966
  } catch (err) {
3305
2967
  spinner.stop(`Failed: ${trimmed}`);
3306
2968
  M.warn(`Could not install skill ${trimmed}: ${err instanceof Error ? err.message : err}`);
3307
2969
  }
3308
2970
  }
3309
- const destDir = join(getAgentDefinitionsBase(), slug);
2971
+ const destDir = join(getAgentDefinitionsBase(installAgentGlobally), slug);
3310
2972
  await mkdir(destDir, { recursive: true });
3311
2973
  const entries = await readdir(agentDirInRepo, { withFileTypes: true });
3312
2974
  for (const ent of entries) await cp(join(agentDirInRepo, ent.name), join(destDir, ent.name), { recursive: ent.isDirectory() });
3313
2975
  M.success(`Agent definition saved to ${destDir}`);
2976
+ if (!installAgentGlobally) {
2977
+ const agentsMdInDef = join(destDir, "AGENTS.md");
2978
+ const rootAgentsMd = join(process.cwd(), "AGENTS.md");
2979
+ if (existsSync(agentsMdInDef) && !existsSync(rootAgentsMd)) {
2980
+ await cp(agentsMdInDef, rootAgentsMd);
2981
+ M.success(`AGENTS.md copied to project root (for Cursor/IDE)`);
2982
+ } else if (existsSync(agentsMdInDef) && existsSync(rootAgentsMd)) M.message(import_picocolors.default.dim(`AGENTS.md already at root; agent context also in ${destDir}`));
2983
+ }
3314
2984
  } finally {
3315
2985
  if (tempDir) await cleanupTempDir(tempDir).catch(() => {});
3316
2986
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voidagency/skills",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Void Agency skills and agents CLI — install from GitHub or Bitbucket",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,8 +10,7 @@
10
10
  "files": [
11
11
  "dist",
12
12
  "bin",
13
- "README.md",
14
- "ThirdPartyNoticeText.txt"
13
+ "README.md"
15
14
  ],
16
15
  "scripts": {
17
16
  "build": "node --experimental-strip-types scripts/generate-licenses.ts && obuild",
@@ -33,50 +32,11 @@
33
32
  },
34
33
  "keywords": [
35
34
  "cli",
36
- "agent-skills",
37
35
  "skills",
38
- "ai-agents",
39
- "amp",
40
- "antigravity",
41
- "augment",
42
- "claude-code",
43
- "openclaw",
44
- "cline",
45
- "codebuddy",
46
- "codex",
47
- "command-code",
48
- "continue",
49
- "cortex",
50
- "crush",
51
36
  "cursor",
52
- "droid",
53
- "gemini-cli",
54
- "github-copilot",
55
- "goose",
56
- "junie",
57
- "iflow-cli",
58
- "kilo",
59
- "kimi-cli",
60
- "kiro-cli",
61
- "kode",
62
- "mcpjam",
63
- "mistral-vibe",
64
- "mux",
65
37
  "opencode",
66
- "openhands",
67
- "pi",
68
- "qoder",
69
- "qwen-code",
70
- "replit",
71
- "roo",
72
- "trae",
73
- "trae-cn",
74
- "windsurf",
75
- "zencoder",
76
- "neovate",
77
- "pochi",
78
- "adal",
79
- "universal"
38
+ "ai-agents",
39
+ "agent-skills"
80
40
  ],
81
41
  "repository": {
82
42
  "type": "git",
@@ -1,12 +0,0 @@
1
- /*!----------------- Skills CLI ThirdPartyNotices -------------------------------------------------------
2
-
3
- The Skills CLI incorporates third party material from the projects listed below.
4
- The original copyright notice and the license under which this material was received
5
- are set forth below. These licenses and notices are provided for informational purposes only.
6
-
7
- ---------------------------------------------
8
- Third Party Code Components
9
- --------------------------------------------
10
-
11
- ================================================================================
12
- */