gooseworks 0.1.0 → 0.1.2
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 +66 -94
- package/dist/commands/credits.js +2 -2
- package/dist/commands/credits.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +28 -5
- package/dist/skills/master-skill.js.map +1 -1
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
#
|
|
1
|
+
# GooseWorks
|
|
2
2
|
|
|
3
|
-
Give your coding agent (Claude Code, Cursor) access to
|
|
3
|
+
Give your coding agent (Claude Code, Cursor) access to 100+ data tools — scrape Twitter/Reddit/LinkedIn, find emails, enrich companies, research competitors — with one install.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npx
|
|
8
|
+
npx gooseworks install --claude
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
This does three things:
|
|
12
|
-
1. Opens browser for Google sign-in
|
|
13
|
-
2.
|
|
14
|
-
3.
|
|
15
|
-
|
|
16
|
-
Then open Claude Code and say "find me leads" to get started.
|
|
12
|
+
1. Opens browser for Google sign-in
|
|
13
|
+
2. Installs the GooseWorks skill into Claude Code
|
|
14
|
+
3. You're ready — ask Claude to "scrape reddit", "find leads", "research competitors"
|
|
17
15
|
|
|
18
16
|
## Commands
|
|
19
17
|
|
|
20
18
|
### `install`
|
|
21
19
|
|
|
22
|
-
Full setup: login +
|
|
20
|
+
Full setup: login + install skill + configure your coding agent.
|
|
23
21
|
|
|
24
22
|
```bash
|
|
25
|
-
gooseworks install --claude
|
|
26
|
-
gooseworks install --cursor
|
|
27
|
-
gooseworks install --all
|
|
28
|
-
gooseworks install --claude --api-base http://localhost:5999 # Use local backend
|
|
23
|
+
npx gooseworks install --claude # Configure for Claude Code
|
|
24
|
+
npx gooseworks install --cursor # Configure for Cursor
|
|
25
|
+
npx gooseworks install --all # Configure all detected agents
|
|
29
26
|
```
|
|
30
27
|
|
|
31
28
|
**What it does:**
|
|
32
29
|
- Runs `login` if you don't have credentials yet
|
|
33
|
-
-
|
|
34
|
-
- Writes skills to `~/.agents/skills/gooseworks-*/`
|
|
30
|
+
- Writes the GooseWorks master skill to `~/.agents/skills/gooseworks-master/SKILL.md`
|
|
35
31
|
- Creates symlinks in `~/.claude/skills/` (Claude) or writes MCP config (Cursor)
|
|
36
32
|
|
|
37
33
|
### `login`
|
|
@@ -39,16 +35,14 @@ gooseworks install --claude --api-base http://localhost:5999 # Use local backe
|
|
|
39
35
|
Authenticate with GooseWorks via Google OAuth.
|
|
40
36
|
|
|
41
37
|
```bash
|
|
42
|
-
gooseworks login
|
|
43
|
-
gooseworks login --api-base http://localhost:5999
|
|
38
|
+
npx gooseworks login
|
|
44
39
|
```
|
|
45
40
|
|
|
46
41
|
**Flow:**
|
|
47
42
|
1. Starts a temporary HTTP server on a random local port
|
|
48
43
|
2. Opens your browser to the GooseWorks sign-in page
|
|
49
|
-
3. You sign in with Google
|
|
50
|
-
4.
|
|
51
|
-
5. Token saved to `~/.gooseworks/credentials.json`
|
|
44
|
+
3. You sign in with Google
|
|
45
|
+
4. Token saved to `~/.gooseworks/credentials.json`
|
|
52
46
|
|
|
53
47
|
Timeout: 120 seconds. If the browser doesn't complete, re-run the command.
|
|
54
48
|
|
|
@@ -57,27 +51,27 @@ Timeout: 120 seconds. If the browser doesn't complete, re-run the command.
|
|
|
57
51
|
Clear saved credentials.
|
|
58
52
|
|
|
59
53
|
```bash
|
|
60
|
-
gooseworks logout
|
|
54
|
+
npx gooseworks logout
|
|
61
55
|
```
|
|
62
56
|
|
|
63
|
-
Deletes `~/.gooseworks/credentials.json`.
|
|
57
|
+
Deletes `~/.gooseworks/credentials.json`.
|
|
64
58
|
|
|
65
|
-
### `
|
|
59
|
+
### `search`
|
|
66
60
|
|
|
67
|
-
|
|
61
|
+
Search the GooseWorks skill catalog.
|
|
68
62
|
|
|
69
63
|
```bash
|
|
70
|
-
gooseworks
|
|
64
|
+
npx gooseworks search "reddit scraping"
|
|
65
|
+
npx gooseworks search "find emails"
|
|
66
|
+
npx gooseworks search "competitor research"
|
|
71
67
|
```
|
|
72
68
|
|
|
73
|
-
Removes old skill files, downloads the latest catalog, and reconfigures agent symlinks.
|
|
74
|
-
|
|
75
69
|
### `credits`
|
|
76
70
|
|
|
77
71
|
Check your credit balance.
|
|
78
72
|
|
|
79
73
|
```bash
|
|
80
|
-
gooseworks credits
|
|
74
|
+
npx gooseworks credits
|
|
81
75
|
```
|
|
82
76
|
|
|
83
77
|
Output:
|
|
@@ -85,6 +79,37 @@ Output:
|
|
|
85
79
|
Credits: 847 available (500 subscription + 347 purchased)
|
|
86
80
|
```
|
|
87
81
|
|
|
82
|
+
### `update`
|
|
83
|
+
|
|
84
|
+
Re-fetch the latest skill without re-authenticating.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npx gooseworks update
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## How It Works
|
|
91
|
+
|
|
92
|
+
1. **Install** — authenticates you and installs a master skill file into your coding agent
|
|
93
|
+
2. **Ask your agent anything** — "scrape r/ClaudeAI", "find CTOs at AI startups", "research competitor pricing"
|
|
94
|
+
3. **Agent finds the right skill** — searches the GooseWorks catalog of 100+ skills
|
|
95
|
+
4. **Runs it** — downloads and executes the skill's Python scripts, which call GooseWorks APIs
|
|
96
|
+
5. **You get results** — structured data returned directly in your coding agent
|
|
97
|
+
|
|
98
|
+
## What's Included
|
|
99
|
+
|
|
100
|
+
- Twitter/X scraping
|
|
101
|
+
- Reddit scraping
|
|
102
|
+
- LinkedIn profile & post scraping
|
|
103
|
+
- Company research & enrichment
|
|
104
|
+
- Contact/email finding (Apollo)
|
|
105
|
+
- Lead qualification & scoring
|
|
106
|
+
- Competitor intelligence
|
|
107
|
+
- Job posting monitoring
|
|
108
|
+
- SEO analysis
|
|
109
|
+
- Google & Meta ad scraping
|
|
110
|
+
- YouTube transcript extraction
|
|
111
|
+
- And 90+ more skills
|
|
112
|
+
|
|
88
113
|
## File Layout
|
|
89
114
|
|
|
90
115
|
### Credentials
|
|
@@ -94,87 +119,34 @@ Credits: 847 available (500 subscription + 347 purchased)
|
|
|
94
119
|
└── credentials.json # API key, email, agent_id, api_base
|
|
95
120
|
```
|
|
96
121
|
|
|
97
|
-
Directory: `700` permissions. File: `600` permissions.
|
|
98
|
-
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"api_key": "cal_xxxxxxxxxxxxx",
|
|
102
|
-
"email": "user@example.com",
|
|
103
|
-
"agent_id": "uuid",
|
|
104
|
-
"api_base": "http://localhost:5999"
|
|
105
|
-
}
|
|
106
|
-
```
|
|
107
|
-
|
|
108
122
|
### Skills
|
|
109
123
|
|
|
110
124
|
```
|
|
111
125
|
~/.agents/skills/
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
│ ├── SKILL.md
|
|
115
|
-
│ └── scripts/
|
|
116
|
-
│ ├── search_twitter.py
|
|
117
|
-
│ └── lib/gooseworks.py
|
|
118
|
-
├── gooseworks-apollo-lead-finder/
|
|
119
|
-
│ ├── SKILL.md
|
|
120
|
-
│ └── scripts/
|
|
121
|
-
│ └── ...
|
|
122
|
-
└── ...
|
|
126
|
+
└── gooseworks-master/
|
|
127
|
+
└── SKILL.md # Master skill — teaches your agent to use GooseWorks
|
|
123
128
|
```
|
|
124
129
|
|
|
125
130
|
### Claude Code Symlinks
|
|
126
131
|
|
|
127
132
|
```
|
|
128
133
|
~/.claude/skills/
|
|
129
|
-
|
|
130
|
-
├── gooseworks-twitter-scraper → ~/.agents/skills/gooseworks-twitter-scraper
|
|
131
|
-
└── ...
|
|
134
|
+
└── gooseworks-master → ~/.agents/skills/gooseworks-master
|
|
132
135
|
```
|
|
133
136
|
|
|
134
|
-
##
|
|
135
|
-
|
|
136
|
-
| Variable | Default | Description |
|
|
137
|
-
|----------|---------|-------------|
|
|
138
|
-
| `GOOSEWORKS_FRONTEND_URL` | `http://localhost:3999` | Frontend URL for OAuth browser flow |
|
|
137
|
+
## Pricing
|
|
139
138
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
## Development
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
cd cli/
|
|
139
|
+
New users get **200 free credits**. Each skill run costs 1-10 credits depending on the data source. Check your balance with `npx gooseworks credits`.
|
|
146
140
|
|
|
147
|
-
|
|
148
|
-
npm install
|
|
141
|
+
Need more? Visit [gooseworks.ai/settings](https://app.gooseworks.ai/settings?tab=billing) to add credits.
|
|
149
142
|
|
|
150
|
-
|
|
151
|
-
npm run dev -- install --claude
|
|
143
|
+
## Requirements
|
|
152
144
|
|
|
153
|
-
|
|
154
|
-
|
|
145
|
+
- Node.js 18+
|
|
146
|
+
- Python 3 (for running skill scripts)
|
|
147
|
+
- Claude Code or Cursor
|
|
155
148
|
|
|
156
|
-
|
|
157
|
-
npm test
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Auth Flow (Technical)
|
|
161
|
-
|
|
162
|
-
The CLI does NOT do its own Google OAuth code exchange. It piggybacks on the existing GooseWorks passport flow:
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
CLI starts localhost:19382
|
|
166
|
-
→ opens browser to {FRONTEND}/cli/auth?callback_port=19382&state=nonce
|
|
167
|
-
→ frontend page tries POST /api/cli/auth/token (fails: no session)
|
|
168
|
-
→ shows "Sign in with Google" button
|
|
169
|
-
→ button navigates to {BACKEND}/auth/google?returnTo=/cli/auth?callback_port=...
|
|
170
|
-
→ normal passport Google OAuth flow
|
|
171
|
-
→ Google redirects to {BACKEND}/auth/google/redirect (already registered)
|
|
172
|
-
→ passport creates session cookie
|
|
173
|
-
→ redirects back to {FRONTEND}/cli/auth?callback_port=19382&state=nonce
|
|
174
|
-
→ frontend page retries POST /api/cli/auth/token (succeeds: session exists)
|
|
175
|
-
→ backend creates cal_* token, returns it
|
|
176
|
-
→ frontend redirects to localhost:19382/callback?token=cal_xxx&email=...
|
|
177
|
-
→ CLI receives token, saves credentials, exits
|
|
178
|
-
```
|
|
149
|
+
## Links
|
|
179
150
|
|
|
180
|
-
|
|
151
|
+
- [GooseWorks](https://gooseworks.ai)
|
|
152
|
+
- [Documentation](https://docs.gooseworks.ai)
|
package/dist/commands/credits.js
CHANGED
|
@@ -79,8 +79,8 @@ exports.creditsCommand = new commander_1.Command('credits')
|
|
|
79
79
|
logger.error('Failed to fetch credits');
|
|
80
80
|
process.exit(1);
|
|
81
81
|
}
|
|
82
|
-
const {
|
|
83
|
-
logger.success(`Credits: ${
|
|
82
|
+
const { available_credits, subscription_credits, purchased_credits } = response.data;
|
|
83
|
+
logger.success(`Credits: ${available_credits.toLocaleString()} available (${subscription_credits.toLocaleString()} subscription + ${purchased_credits.toLocaleString()} purchased)`);
|
|
84
84
|
}
|
|
85
85
|
catch (err) {
|
|
86
86
|
const message = err instanceof Error ? err.message : 'Failed to fetch credits';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/commands/credits.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,6CAA+B;AAC/B,2CAA6B;AAC7B,qDAAqD;AACrD,wDAA0C;AAW1C,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrC,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,QAAQ,EAAE,kBAAkB;aAC7B;SACF,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,IAAA,4BAAc,GAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/commands/credits.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,6CAA+B;AAC/B,2CAA6B;AAC7B,qDAAqD;AACrD,wDAA0C;AAW1C,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrC,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,QAAQ,EAAE,kBAAkB;aAC7B;SACF,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,IAAA,4BAAc,GAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrF,MAAM,CAAC,OAAO,CACZ,YAAY,iBAAiB,CAAC,cAAc,EAAE,eAAe,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,iBAAiB,CAAC,cAAc,EAAE,aAAa,CACrK,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.FRONTEND_URL = exports.API_BASE = void 0;
|
|
11
|
-
exports.API_BASE = process.env.GOOSEWORKS_API_BASE || 'https://
|
|
11
|
+
exports.API_BASE = process.env.GOOSEWORKS_API_BASE || 'https://api.gooseworks.ai';
|
|
12
12
|
exports.FRONTEND_URL = process.env.GOOSEWORKS_FRONTEND_URL || 'https://app.gooseworks.ai';
|
|
13
13
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"master-skill.d.ts","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAiG/D"}
|
|
@@ -11,13 +11,15 @@ function getMasterSkillContent(_apiBase) {
|
|
|
11
11
|
name: GooseWorks
|
|
12
12
|
slug: gooseworks-master
|
|
13
13
|
description: >
|
|
14
|
-
GooseWorks data toolkit. Search and scrape Twitter/X, Reddit, websites, and the web.
|
|
14
|
+
GooseWorks data toolkit. Search and scrape Twitter/X, Reddit, LinkedIn, websites, and the web.
|
|
15
15
|
Find people, emails, and company info. Enrich contacts and companies.
|
|
16
|
-
|
|
16
|
+
GTM tasks: lead generation, prospect research, ICP identification, competitor analysis, outbound list building.
|
|
17
|
+
LinkedIn scraping: extract post engagers, commenters, profile data, and job postings.
|
|
18
|
+
Use this for ANY data lookup, web scraping, people search, lead gen, GTM, or research task.
|
|
17
19
|
category: general
|
|
18
20
|
version: 1.0.0
|
|
19
21
|
author: GooseWorks
|
|
20
|
-
tags: [gooseworks, data, scraping, search, reddit, twitter, email, people, research]
|
|
22
|
+
tags: [gooseworks, data, scraping, search, reddit, twitter, linkedin, email, people, research, gtm, leads, prospecting]
|
|
21
23
|
---
|
|
22
24
|
|
|
23
25
|
# GooseWorks
|
|
@@ -29,7 +31,7 @@ You have access to GooseWorks — a toolkit with 100+ data skills for scraping,
|
|
|
29
31
|
Read your credentials from ~/.gooseworks/credentials.json:
|
|
30
32
|
\`\`\`bash
|
|
31
33
|
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
|
|
32
|
-
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://
|
|
34
|
+
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
|
|
33
35
|
\`\`\`
|
|
34
36
|
|
|
35
37
|
If ~/.gooseworks/credentials.json does not exist, tell the user to run: \`npx gooseworks login\`
|
|
@@ -58,12 +60,22 @@ curl -s $GOOSEWORKS_API_BASE/api/skills/catalog/<slug> \\
|
|
|
58
60
|
This returns:
|
|
59
61
|
- **content**: The skill's instructions (SKILL.md) — follow these step by step
|
|
60
62
|
- **scripts**: Python scripts the skill uses — save them locally and run them
|
|
63
|
+
- **requiresSkills**: Array of dependency skill slugs (for composite skills)
|
|
64
|
+
- **dependencySkills**: Full content and scripts for each dependency
|
|
61
65
|
|
|
62
|
-
### Step 3:
|
|
66
|
+
### Step 3: Set up dependency skills (if any)
|
|
67
|
+
If the response includes \`dependencySkills\` (non-empty array), set up each dependency BEFORE running the main skill:
|
|
68
|
+
1. For each dependency in \`dependencySkills\`:
|
|
69
|
+
- Save its scripts to \`/tmp/gooseworks-scripts/<dep-slug>/\`
|
|
70
|
+
- Install any pip dependencies it needs
|
|
71
|
+
2. When the main skill's instructions reference a dependency script (e.g. \`python3 skills/reddit-scraper/scripts/scrape_reddit.py\`), run it from \`/tmp/gooseworks-scripts/<dep-slug>/\` instead
|
|
72
|
+
|
|
73
|
+
### Step 4: Run the skill
|
|
63
74
|
Follow the instructions in the skill's \`content\` field. If the skill includes \`scripts\`:
|
|
64
75
|
1. Save each script to \`/tmp/gooseworks-scripts/<slug>/\` — **NEVER save scripts into the user's project directory**
|
|
65
76
|
2. Install any required pip dependencies mentioned in the instructions
|
|
66
77
|
3. Run the script with the parameters described in the instructions
|
|
78
|
+
4. When instructions reference dependency scripts, use paths from Step 3: \`/tmp/gooseworks-scripts/<dep-slug>/<script>\`
|
|
67
79
|
|
|
68
80
|
### Check credit balance
|
|
69
81
|
\`\`\`bash
|
|
@@ -71,6 +83,16 @@ curl -s $GOOSEWORKS_API_BASE/v1/credits \\
|
|
|
71
83
|
-H "Authorization: Bearer $GOOSEWORKS_API_KEY"
|
|
72
84
|
\`\`\`
|
|
73
85
|
|
|
86
|
+
## Working Directory & Output Files
|
|
87
|
+
|
|
88
|
+
- **Scripts** always go to \`/tmp/gooseworks-scripts/<slug>/\` — NEVER the user's project directory
|
|
89
|
+
- **Output files** (CSVs, reports, data exports) go to a **GooseWorks working directory**:
|
|
90
|
+
1. If the user specifies where to save results, use that location
|
|
91
|
+
2. Otherwise, default to \`~/Gooseworks/\` — create it if it doesn't exist
|
|
92
|
+
3. **Before saving output**, confirm with the user: *"I'll save the results to ~/Gooseworks/<filename>. Would you like a different location?"*
|
|
93
|
+
4. Organize outputs in subfolders by task type when it makes sense (e.g. \`~/Gooseworks/reddit-scrapes/\`, \`~/Gooseworks/research/\`)
|
|
94
|
+
- **Never overwrite existing files** without asking. If a file already exists, append a timestamp or ask the user
|
|
95
|
+
|
|
74
96
|
## Rules
|
|
75
97
|
|
|
76
98
|
1. **ALWAYS search GooseWorks skills first** for any data task — scraping, research, lead gen, enrichment, anything
|
|
@@ -79,6 +101,7 @@ curl -s $GOOSEWORKS_API_BASE/v1/credits \\
|
|
|
79
101
|
4. **If GOOSEWORKS_API_KEY is not set**: tell the user to run \`npx gooseworks login\`
|
|
80
102
|
5. **Parse JSON responses** and present data in a readable format to the user
|
|
81
103
|
6. **When running scripts**: save to \`/tmp/gooseworks-scripts/\`, install pip deps, then execute. NEVER pollute the user's project directory
|
|
104
|
+
7. **Output files default to \`~/Gooseworks/\`** — always confirm with the user before saving
|
|
82
105
|
`;
|
|
83
106
|
}
|
|
84
107
|
//# sourceMappingURL=master-skill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"master-skill.js","sourceRoot":"","sources":["../../src/skills/master-skill.ts"],"names":[],"mappings":";;AAKA,sDAiGC;AAtGD;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,QAAiB;IACrD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FR,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gooseworks",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "GooseWorks CLI — give your coding agent real data tools",
|
|
5
5
|
"bin": {
|
|
6
6
|
"gooseworks": "./dist/index.js"
|
|
@@ -39,5 +39,11 @@
|
|
|
39
39
|
"ai-agents",
|
|
40
40
|
"data-tools"
|
|
41
41
|
],
|
|
42
|
-
"license": "
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/gooseworks-ai/gooseworks-app"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://gooseworks.ai",
|
|
48
|
+
"author": "GooseWorks <hello@gooseworks.ai>"
|
|
43
49
|
}
|