@anysiteio/agent-skills 1.0.1 → 1.3.0
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/.claude-plugin/marketplace.json +25 -1
- package/.claude-plugin/plugin.json +3 -1
- package/README.md +28 -8
- package/bin/install.js +174 -43
- package/package.json +5 -3
- package/skills/anysite-cli/README.md +419 -0
- package/skills/anysite-cli/SKILL.md +548 -0
- package/skills/anysite-cli/references/api-reference.md +225 -0
- package/skills/anysite-cli/references/dataset-guide.md +870 -0
- package/skills/anysite-cli/references/llm-reference.md +274 -0
- package/skills/skill-audit/README.md +287 -0
- package/skills/skill-audit/SKILL.md +274 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "anysite-skills",
|
|
13
|
-
"description": "Complete suite of
|
|
13
|
+
"description": "Complete suite of 13 professional skills for social media analysis, lead generation, market research, competitive intelligence, person intelligence, VC analysis, competitor research, security auditing, and CLI automation using anysite MCP server. Supports LinkedIn, Instagram, Twitter/X, Reddit, YouTube, Y Combinator, SEC, GitHub, and web scraping. Zero configuration required - no API tokens or external tools needed.",
|
|
14
14
|
"version": "1.1.0",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "Anysite Skills Contributors",
|
|
@@ -108,6 +108,30 @@
|
|
|
108
108
|
"source": "./",
|
|
109
109
|
"category": "productivity",
|
|
110
110
|
"skills": ["./skills/anysite-competitor-analyzer"]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "skill-audit",
|
|
114
|
+
"description": "Static security auditor for Claude Code skills, commands, and plugins. Detects dangerous patterns — excessive permissions, hooks, prompt injection, credential access, privilege escalation — before you enable a skill. Performs read-only analysis with no system modifications.",
|
|
115
|
+
"version": "1.0.0",
|
|
116
|
+
"author": {
|
|
117
|
+
"name": "Anysite Skills Contributors",
|
|
118
|
+
"email": "support@anysite.io"
|
|
119
|
+
},
|
|
120
|
+
"source": "./",
|
|
121
|
+
"category": "productivity",
|
|
122
|
+
"skills": ["./skills/skill-audit"]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "anysite-cli",
|
|
126
|
+
"description": "Command-line tool operator for anysite CLI. Handles web data extraction, batch API processing, multi-source dataset pipelines with scheduling/transforms/exports, and database operations. Execute anysite commands for LinkedIn, Instagram, Twitter data collection, dataset creation, SQL queries, and PostgreSQL/SQLite loading.",
|
|
127
|
+
"version": "1.3.0",
|
|
128
|
+
"author": {
|
|
129
|
+
"name": "Anysite Skills Contributors",
|
|
130
|
+
"email": "support@anysite.io"
|
|
131
|
+
},
|
|
132
|
+
"source": "./",
|
|
133
|
+
"category": "productivity",
|
|
134
|
+
"skills": ["./skills/anysite-cli"]
|
|
111
135
|
}
|
|
112
136
|
]
|
|
113
137
|
}
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
"./skills/anysite-brand-reputation",
|
|
41
41
|
"./skills/anysite-person-analyzer",
|
|
42
42
|
"./skills/anysite-vc-analyst",
|
|
43
|
-
"./skills/anysite-competitor-analyzer"
|
|
43
|
+
"./skills/anysite-competitor-analyzer",
|
|
44
|
+
"./skills/skill-audit",
|
|
45
|
+
"./skills/anysite-cli"
|
|
44
46
|
]
|
|
45
47
|
}
|
package/README.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Official anysite agent skills for LinkedIn intelligence, social media analysis, and data extraction. Works with Claude Code, Cursor, and other AI coding assistants that support MCP.
|
|
4
4
|
|
|
5
|
+
## 💎 MCP Unlimited Plan
|
|
6
|
+
|
|
7
|
+
Unlimited access to all 65+ Anysite MCP tools for just $30/month - perfect for AI agents and automation.
|
|
8
|
+
|
|
9
|
+
Get unlimited requests through Remote MCP Server with no request limits. Ideal for Claude Desktop, Cursor, n8n, and any MCP-compatible client.
|
|
10
|
+
|
|
11
|
+
📖 Learn more about MCP Unlimited https://docs.anysite.io/mcp-server/unlimited-plan
|
|
12
|
+
|
|
5
13
|
## Available Skills
|
|
6
14
|
|
|
7
15
|
<!-- BEGIN_SKILLS_TABLE -->
|
|
@@ -18,34 +26,46 @@ Official anysite agent skills for LinkedIn intelligence, social media analysis,
|
|
|
18
26
|
| `anysite-person-analyzer` | Deep multi-platform intelligence analysis for people combining LinkedIn (profile, posts, activity), Twitter/X, Reddit, GitHub, and web presence. Perfect for networking, sales, partnerships, recruitment, and investor relations. | [SKILL.md](skills/anysite-person-analyzer/SKILL.md) |
|
|
19
27
|
| `anysite-vc-analyst` | Universal startup investor research and outreach agent. Verify investor roles, score based on stage fit and thesis alignment, detect portfolio conflicts, and generate personalized outreach messages. | [SKILL.md](skills/anysite-vc-analyst/SKILL.md) |
|
|
20
28
|
| `anysite-competitor-analyzer` | Comprehensive competitive intelligence combining web scraping, LinkedIn analysis, social media monitoring, leadership profiling, GitHub review, and community sentiment tracking. | [SKILL.md](skills/anysite-competitor-analyzer/SKILL.md) |
|
|
29
|
+
| `skill-audit` | Static security auditor for Claude Code skills. Detects hooks, prompt injection, and dangerous permissions. | [SKILL.md](skills/skill-audit/SKILL.md) |
|
|
30
|
+
| `anysite-cli` | Command-line tool operator for anysite CLI. Execute data extraction, batch processing, dataset pipelines, scheduling, and database operations. | [SKILL.md](skills/anysite-cli/SKILL.md) |
|
|
21
31
|
<!-- END_SKILLS_TABLE -->
|
|
22
32
|
|
|
23
33
|
## Installation
|
|
24
34
|
|
|
35
|
+
### Quick Start
|
|
36
|
+
|
|
25
37
|
```bash
|
|
26
38
|
npx @anysiteio/agent-skills
|
|
27
39
|
```
|
|
28
40
|
|
|
41
|
+
This will display installation instructions and list all available skills.
|
|
42
|
+
|
|
29
43
|
### Step 1: Install anysite MCP Server
|
|
30
44
|
|
|
31
45
|
First, install the anysite MCP server following the instructions at [docs.anysite.io/mcp-server](https://docs.anysite.io/mcp-server).
|
|
32
46
|
|
|
33
|
-
### Step 2:
|
|
47
|
+
### Step 2: Add Skills Marketplace
|
|
34
48
|
|
|
35
|
-
####
|
|
49
|
+
#### Option 1: Using npx (Recommended)
|
|
36
50
|
|
|
37
51
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
npx @anysiteio/agent-skills
|
|
53
|
+
```
|
|
40
54
|
|
|
41
|
-
|
|
42
|
-
|
|
55
|
+
Then in Claude Code, run:
|
|
56
|
+
```bash
|
|
57
|
+
/plugin marketplace add https://github.com/anysiteio/agent-skills
|
|
43
58
|
```
|
|
44
59
|
|
|
45
|
-
|
|
60
|
+
#### Option 2: Manual Installation
|
|
46
61
|
|
|
62
|
+
In Claude Code:
|
|
47
63
|
```bash
|
|
48
|
-
|
|
64
|
+
# Add the marketplace
|
|
65
|
+
/plugin marketplace add https://github.com/anysiteio/agent-skills
|
|
66
|
+
|
|
67
|
+
# Install a skill
|
|
68
|
+
/plugin install anysite-lead-generation@anysite-skills
|
|
49
69
|
```
|
|
50
70
|
|
|
51
71
|
#### Cursor / Windsurf
|
package/bin/install.js
CHANGED
|
@@ -2,54 +2,185 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Anysite Agent Skills installer for Claude Code
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx @anysiteio/agent-skills # Install all skills
|
|
8
|
+
* npx @anysiteio/agent-skills --list # List available skills
|
|
9
|
+
* npx @anysiteio/agent-skills --skill lead-generation --skill person-analyzer
|
|
10
|
+
* npx @anysiteio/agent-skills --uninstall # Remove all installed skills
|
|
6
11
|
*/
|
|
7
12
|
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
13
|
+
import { existsSync, mkdirSync, cpSync, rmSync, readdirSync, readFileSync } from "fs";
|
|
14
|
+
import { join, resolve } from "path";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
import { homedir } from "os";
|
|
11
17
|
|
|
12
18
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
-
const __dirname =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
const __dirname = resolve(fileURLToPath(import.meta.url), "..");
|
|
20
|
+
const SKILLS_SRC = resolve(__dirname, "..", "skills");
|
|
21
|
+
const CLAUDE_SKILLS_DIR = join(homedir(), ".claude", "skills");
|
|
22
|
+
|
|
23
|
+
// ── Parse args ──────────────────────────────────────────────────────────────
|
|
24
|
+
|
|
25
|
+
const args = process.argv.slice(2);
|
|
26
|
+
const flags = { list: false, uninstall: false, skills: [], help: false };
|
|
27
|
+
|
|
28
|
+
for (let i = 0; i < args.length; i++) {
|
|
29
|
+
if (args[i] === "--list" || args[i] === "-l") flags.list = true;
|
|
30
|
+
else if (args[i] === "--uninstall" || args[i] === "--remove") flags.uninstall = true;
|
|
31
|
+
else if (args[i] === "--help" || args[i] === "-h") flags.help = true;
|
|
32
|
+
else if (args[i] === "--skill" || args[i] === "-s") {
|
|
33
|
+
i++;
|
|
34
|
+
if (i < args.length) flags.skills.push(args[i]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// ── Helpers ─────────────────────────────────────────────────────────────────
|
|
39
|
+
|
|
40
|
+
function getAvailableSkills() {
|
|
41
|
+
if (!existsSync(SKILLS_SRC)) return [];
|
|
42
|
+
return readdirSync(SKILLS_SRC, { withFileTypes: true })
|
|
43
|
+
.filter((d) => d.isDirectory() && existsSync(join(SKILLS_SRC, d.name, "SKILL.md")))
|
|
44
|
+
.map((d) => d.name)
|
|
45
|
+
.sort();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function getSkillDescription(name) {
|
|
49
|
+
const skillPath = join(SKILLS_SRC, name, "SKILL.md");
|
|
50
|
+
if (!existsSync(skillPath)) return "";
|
|
51
|
+
const content = readFileSync(skillPath, "utf-8");
|
|
52
|
+
const match = content.match(/^---\s*\n[\s\S]*?description:\s*(.+)\n[\s\S]*?^---/m);
|
|
53
|
+
return match ? match[1].trim().slice(0, 80) : "";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function getInstalledSkills() {
|
|
57
|
+
if (!existsSync(CLAUDE_SKILLS_DIR)) return [];
|
|
58
|
+
return readdirSync(CLAUDE_SKILLS_DIR, { withFileTypes: true })
|
|
59
|
+
.filter(
|
|
60
|
+
(d) =>
|
|
61
|
+
d.isDirectory() &&
|
|
62
|
+
d.name.startsWith("anysite-") &&
|
|
63
|
+
existsSync(join(CLAUDE_SKILLS_DIR, d.name, "SKILL.md"))
|
|
64
|
+
)
|
|
65
|
+
.map((d) => d.name)
|
|
66
|
+
.sort();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ── Commands ────────────────────────────────────────────────────────────────
|
|
70
|
+
|
|
71
|
+
if (flags.help) {
|
|
72
|
+
console.log(`
|
|
73
|
+
Anysite Agent Skills — install skills for Claude Code
|
|
74
|
+
|
|
75
|
+
Usage:
|
|
76
|
+
npx @anysiteio/agent-skills Install all skills
|
|
77
|
+
npx @anysiteio/agent-skills --list List available skills
|
|
78
|
+
npx @anysiteio/agent-skills --skill NAME Install specific skill(s)
|
|
79
|
+
npx @anysiteio/agent-skills --uninstall Remove all anysite skills
|
|
80
|
+
|
|
81
|
+
Options:
|
|
82
|
+
--skill, -s NAME Install specific skill (repeatable)
|
|
83
|
+
--list, -l List available skills
|
|
84
|
+
--uninstall Remove installed anysite skills
|
|
85
|
+
--help, -h Show this help
|
|
86
|
+
`);
|
|
87
|
+
process.exit(0);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (flags.list) {
|
|
91
|
+
const skills = getAvailableSkills();
|
|
92
|
+
const installed = new Set(getInstalledSkills());
|
|
93
|
+
console.log(`\nAvailable skills (${skills.length}):\n`);
|
|
94
|
+
for (const name of skills) {
|
|
95
|
+
const status = installed.has(name) ? " ✓" : " ";
|
|
96
|
+
const desc = getSkillDescription(name);
|
|
97
|
+
console.log(`${status} ${name}`);
|
|
98
|
+
if (desc) console.log(` ${desc}`);
|
|
99
|
+
}
|
|
100
|
+
console.log();
|
|
101
|
+
process.exit(0);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (flags.uninstall) {
|
|
105
|
+
const installed = getInstalledSkills();
|
|
106
|
+
// Also check for non-prefixed skills like skill-audit
|
|
107
|
+
const allInstalled = existsSync(CLAUDE_SKILLS_DIR)
|
|
108
|
+
? readdirSync(CLAUDE_SKILLS_DIR, { withFileTypes: true })
|
|
109
|
+
.filter((d) => d.isDirectory())
|
|
110
|
+
.map((d) => d.name)
|
|
111
|
+
.filter((n) => getAvailableSkills().includes(n))
|
|
112
|
+
: [];
|
|
113
|
+
|
|
114
|
+
if (allInstalled.length === 0) {
|
|
115
|
+
console.log("\nNo anysite skills installed.\n");
|
|
116
|
+
process.exit(0);
|
|
31
117
|
}
|
|
32
118
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
console.log(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
console.
|
|
48
|
-
|
|
49
|
-
console.log('📖 Documentation: https://github.com/anysiteio/agent-skills\n');
|
|
50
|
-
console.log('🔧 MCP Server: https://docs.anysite.io/mcp-server\n');
|
|
51
|
-
|
|
52
|
-
} catch (error) {
|
|
53
|
-
console.error('Error during installation:', error.message);
|
|
119
|
+
for (const name of allInstalled) {
|
|
120
|
+
const target = join(CLAUDE_SKILLS_DIR, name);
|
|
121
|
+
rmSync(target, { recursive: true, force: true });
|
|
122
|
+
console.log(` Removed ${name}`);
|
|
123
|
+
}
|
|
124
|
+
console.log(`\nUninstalled ${allInstalled.length} skill(s).\n`);
|
|
125
|
+
process.exit(0);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// ── Install ─────────────────────────────────────────────────────────────────
|
|
129
|
+
|
|
130
|
+
const available = getAvailableSkills();
|
|
131
|
+
|
|
132
|
+
if (available.length === 0) {
|
|
133
|
+
console.error("Error: no skills found in package. Please reinstall.");
|
|
54
134
|
process.exit(1);
|
|
55
135
|
}
|
|
136
|
+
|
|
137
|
+
// Resolve which skills to install
|
|
138
|
+
let toInstall = available;
|
|
139
|
+
|
|
140
|
+
if (flags.skills.length > 0) {
|
|
141
|
+
toInstall = [];
|
|
142
|
+
for (const input of flags.skills) {
|
|
143
|
+
// Allow short names: "lead-generation" -> "anysite-lead-generation"
|
|
144
|
+
const candidates = [input, `anysite-${input}`];
|
|
145
|
+
const match = candidates.find((c) => available.includes(c));
|
|
146
|
+
if (match) {
|
|
147
|
+
toInstall.push(match);
|
|
148
|
+
} else {
|
|
149
|
+
console.error(`Unknown skill: ${input}`);
|
|
150
|
+
console.error(`Available: ${available.join(", ")}`);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
console.log(`\nInstalling ${toInstall.length} skill(s) to ${CLAUDE_SKILLS_DIR}\n`);
|
|
157
|
+
|
|
158
|
+
// Ensure target dir exists
|
|
159
|
+
mkdirSync(CLAUDE_SKILLS_DIR, { recursive: true });
|
|
160
|
+
|
|
161
|
+
let installed = 0;
|
|
162
|
+
let updated = 0;
|
|
163
|
+
|
|
164
|
+
for (const name of toInstall) {
|
|
165
|
+
const src = join(SKILLS_SRC, name);
|
|
166
|
+
const dest = join(CLAUDE_SKILLS_DIR, name);
|
|
167
|
+
const exists = existsSync(dest);
|
|
168
|
+
|
|
169
|
+
if (exists) {
|
|
170
|
+
rmSync(dest, { recursive: true, force: true });
|
|
171
|
+
updated++;
|
|
172
|
+
} else {
|
|
173
|
+
installed++;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
cpSync(src, dest, { recursive: true });
|
|
177
|
+
console.log(` ${exists ? "↻" : "+"} ${name}`);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
console.log();
|
|
181
|
+
if (installed > 0) console.log(` Installed: ${installed}`);
|
|
182
|
+
if (updated > 0) console.log(` Updated: ${updated}`);
|
|
183
|
+
console.log(` Location: ${CLAUDE_SKILLS_DIR}`);
|
|
184
|
+
console.log();
|
|
185
|
+
console.log("Skills are now available in Claude Code.");
|
|
186
|
+
console.log("Use /skill-name to invoke, or Claude will use them automatically.\n");
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anysiteio/agent-skills",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "Official anysite agent skills for LinkedIn intelligence, social media analysis, and
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Official anysite agent skills for LinkedIn intelligence, social media analysis, data extraction, and security auditing",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"claude-code",
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
"agent-skills",
|
|
11
11
|
"anysite",
|
|
12
12
|
"skills",
|
|
13
|
-
"ai-agents"
|
|
13
|
+
"ai-agents",
|
|
14
|
+
"security",
|
|
15
|
+
"audit"
|
|
14
16
|
],
|
|
15
17
|
"homepage": "https://github.com/anysiteio/agent-skills#readme",
|
|
16
18
|
"bugs": {
|