@vike-io/cli 0.8.0 → 0.8.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 +30 -8
- package/package.json +2 -2
- package/{SKILL.md → skills/vike/SKILL.md} +1 -1
- package/skills/vike-core/SKILL.md +1 -1
- package/skills/vike-wallet-trace/SKILL.md +10 -0
- package/skills.sh.json +101 -0
- package/src/auth.js +1 -1
- package/src/commands/auth.js +1 -1
- package/src/commands/init.js +1 -1
- package/src/commands/install.js +9 -6
package/README.md
CHANGED
|
@@ -5,13 +5,26 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@vike-io/cli)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://nodejs.org)
|
|
8
|
+
[](https://skills.sh/vike-io/vike-cli)
|
|
8
9
|
|
|
9
10
|
> **Command-line interface for the [vike.io](https://vike.io) API.** On-chain analytics, perpetuals, options flow, and prediction-market data across 11 chains — designed to be driven by AI agents (Claude Code, OpenClaw) as well as humans.
|
|
10
11
|
|
|
11
12
|
## Install
|
|
12
13
|
|
|
13
14
|
```bash
|
|
15
|
+
# Standard install — gives you the `vike` binary
|
|
14
16
|
npm install -g @vike-io/cli
|
|
17
|
+
|
|
18
|
+
# OR install just the skill playbooks into your AI agent (Claude Code, Cursor,
|
|
19
|
+
# Codex, Copilot, OpenCode and 50+ more — auto-detected):
|
|
20
|
+
npx skills add vike-io/vike-cli
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
After `npm install`, you can also drop the skill into AI agents from the CLI itself:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
vike install --all # writes to ~/.claude/skills/vike/, .cursorrules,
|
|
27
|
+
# .github/copilot-instructions.md, AGENTS.md
|
|
15
28
|
```
|
|
16
29
|
|
|
17
30
|
## Quick start
|
|
@@ -22,7 +35,7 @@ vike doctor # confirm everything works
|
|
|
22
35
|
vike token search BTC # your first query
|
|
23
36
|
```
|
|
24
37
|
|
|
25
|
-
Get an API key at [vike.io/api
|
|
38
|
+
Get an API key at [vike.io/account?tab=api-keys](https://vike.io/account?tab=api-keys).
|
|
26
39
|
|
|
27
40
|
## Commands at a glance
|
|
28
41
|
|
|
@@ -50,15 +63,24 @@ Run `vike schema --pretty` for the full command + flag reference.
|
|
|
50
63
|
|
|
51
64
|
## For AI agents
|
|
52
65
|
|
|
53
|
-
This package ships **skill playbooks** under [`skills/`](skills/) — markdown files designed to be loaded by AI coding agents (Claude Code,
|
|
66
|
+
This package ships **41 skill playbooks** under [`skills/`](skills/) — markdown files designed to be loaded by AI coding agents (Claude Code, Cursor, Codex, Copilot, OpenCode, …) so they know when and how to invoke each command. They are grouped in [`skills.sh.json`](skills.sh.json) by domain (Tokens / Wallets / CEX perps / Hyperliquid / Options / Polymarket / Alerts / Web research).
|
|
54
67
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
68
|
+
Three install paths, pick whichever fits your stack:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# 1. Install just the skill files for your agent (no Node binary needed):
|
|
72
|
+
npx skills add vike-io/vike-cli # auto-detects the agent
|
|
73
|
+
npx skills add vike-io/vike-cli -a claude-code # explicit target
|
|
74
|
+
npx skills add vike-io/vike-cli --list # list all 41 first
|
|
75
|
+
|
|
76
|
+
# 2. Use the CLI itself to install the umbrella skill into multiple agents:
|
|
77
|
+
vike install --claude --cursor --copilot --agents
|
|
78
|
+
|
|
79
|
+
# 3. Manual: point your agent at the skills/ folder of this npm package
|
|
80
|
+
# (lives at node_modules/@vike-io/cli/skills/ after install).
|
|
81
|
+
```
|
|
60
82
|
|
|
61
|
-
|
|
83
|
+
Entry-point skill: `vike` (the umbrella) — auto-routes the user's question to the right specialized skill below. Bypass it and pick a specialized one if you know exactly which you need (e.g. `vike-hl-position-match` for reverse-lookup of an HL share card).
|
|
62
84
|
|
|
63
85
|
## Auth
|
|
64
86
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.8.
|
|
6
|
+
"version": "0.8.1",
|
|
7
7
|
"description": "AI-agent CLI for vike.io on-chain analytics, perps, options, and prediction markets across 11 chains",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "src/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"src/**/*.js",
|
|
15
15
|
"scripts/postinstall.js",
|
|
16
16
|
"skills/**",
|
|
17
|
-
"
|
|
17
|
+
"skills.sh.json",
|
|
18
18
|
"CHANGELOG.md"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
@@ -47,7 +47,7 @@ If the user has no API key yet, tell them:
|
|
|
47
47
|
|
|
48
48
|
> **To use vike, you'll need a free API key:**
|
|
49
49
|
>
|
|
50
|
-
> 1. Visit https://vike.io/api
|
|
50
|
+
> 1. Visit https://vike.io/account?tab=api-keys&utm_source=skill&utm_medium=ai&utm_campaign=cli_skill, sign in, and copy a key (starts with `vk_`).
|
|
51
51
|
> 2. Save it: `vike login --api-key vk_...` (or `export VIKE_API_KEY=vk_...`).
|
|
52
52
|
> 3. Verify: `vike doctor`.
|
|
53
53
|
>
|
|
@@ -68,6 +68,16 @@ Tool credits = 4 per call (heavier than other graph-less tools). Graph explodes
|
|
|
68
68
|
- Don't depth-5 by default. Graph blows up; results become noise.
|
|
69
69
|
- Don't ignore `min_usd` — without it, dust transfers create false-positive edges.
|
|
70
70
|
|
|
71
|
+
## Visual graph (web UI)
|
|
72
|
+
|
|
73
|
+
When the user wants to *see* the network rather than read JSON, surface the URL:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
https://vike.io/spot/wallet/<address>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Tell them to click the **Graph** tab. It renders the same trace data as a force-directed graph (nodes coloured by hop depth, sized by USD volume, animated directional particles on edges). Clicking any non-root node navigates to that wallet's graph. Use this in chat replies when the user says "show me", "visualize", or pastes a wallet address asking for an exploration view — JSON is for downstream pipelines, the URL is for humans.
|
|
80
|
+
|
|
71
81
|
## Pairs well with
|
|
72
82
|
|
|
73
83
|
- `vike labels <addr>` — identify any interesting node
|
package/skills.sh.json
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://skills.sh/schemas/skills.sh.schema.json",
|
|
3
|
+
"notGrouped": "bottom",
|
|
4
|
+
"groupings": [
|
|
5
|
+
{
|
|
6
|
+
"title": "Quick start",
|
|
7
|
+
"description": "Start here. The umbrella skill auto-routes user questions to the right specialized skill below.",
|
|
8
|
+
"skills": [
|
|
9
|
+
"vike",
|
|
10
|
+
"vike-router",
|
|
11
|
+
"vike-core"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"title": "Tokens",
|
|
16
|
+
"description": "Resolve, screen, and research tokens across 11 chains. Smart-money inflow, holders, recent transfers, OHLCV.",
|
|
17
|
+
"skills": [
|
|
18
|
+
"vike-token-search",
|
|
19
|
+
"vike-token-research",
|
|
20
|
+
"vike-token-transfers",
|
|
21
|
+
"vike-token-holders",
|
|
22
|
+
"vike-token-screener",
|
|
23
|
+
"vike-smart-money-discovery"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"title": "Wallets",
|
|
28
|
+
"description": "Per-wallet profile, PnL, counterparty graphs, ENS, batch labelling, fund affiliation, DeFi positions.",
|
|
29
|
+
"skills": [
|
|
30
|
+
"vike-wallet-summary",
|
|
31
|
+
"vike-wallet-portfolio",
|
|
32
|
+
"vike-wallet-discover",
|
|
33
|
+
"vike-wallet-transactions",
|
|
34
|
+
"vike-wallet-counterparties",
|
|
35
|
+
"vike-wallet-trace",
|
|
36
|
+
"vike-wallet-compare",
|
|
37
|
+
"vike-wallet-batch",
|
|
38
|
+
"vike-wallet-pnl-history",
|
|
39
|
+
"vike-wallet-balances",
|
|
40
|
+
"vike-wallet-ens",
|
|
41
|
+
"vike-wallet-label-provenance",
|
|
42
|
+
"vike-fund-holdings",
|
|
43
|
+
"vike-defi-positions"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"title": "CEX perps",
|
|
48
|
+
"description": "Funding-rate arb + cross-venue mark-price spreads across Binance, Bybit, OKX, Aster, Hyperliquid.",
|
|
49
|
+
"skills": [
|
|
50
|
+
"vike-perp-funding-arb",
|
|
51
|
+
"vike-perp-spread-arb",
|
|
52
|
+
"vike-perp-screener",
|
|
53
|
+
"vike-cross-venue-perps"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"title": "Hyperliquid perps",
|
|
58
|
+
"description": "Deep on-chain HL coverage: top traders, full trader profiles, and share-card reverse-lookup.",
|
|
59
|
+
"skills": [
|
|
60
|
+
"vike-hl-top-traders",
|
|
61
|
+
"vike-hl-trader-profile",
|
|
62
|
+
"vike-hl-position-match"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"title": "Options",
|
|
67
|
+
"description": "Deribit BTC/ETH options flow + put-call ratios.",
|
|
68
|
+
"skills": [
|
|
69
|
+
"vike-options-flow"
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"title": "Polymarket",
|
|
74
|
+
"description": "Prediction-market discovery, single-market deep-dives, trader profiles, and smart-money leaderboards.",
|
|
75
|
+
"skills": [
|
|
76
|
+
"vike-polymarket-markets",
|
|
77
|
+
"vike-polymarket-market-detail",
|
|
78
|
+
"vike-polymarket-trader",
|
|
79
|
+
"vike-polymarket-smart-money",
|
|
80
|
+
"vike-polymarket-screener"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"title": "Alerts",
|
|
85
|
+
"description": "Create, list, edit, delete price + flow alerts; register HTTPS webhooks with HMAC delivery.",
|
|
86
|
+
"skills": [
|
|
87
|
+
"vike-alerts-setup",
|
|
88
|
+
"vike-alerts-webhook"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"title": "Web research",
|
|
93
|
+
"description": "Off-chain context: general web search and AI-summarized URL fetch for news, docs, and social.",
|
|
94
|
+
"skills": [
|
|
95
|
+
"vike-web-search",
|
|
96
|
+
"vike-web-fetch",
|
|
97
|
+
"vike-web-research"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
package/src/auth.js
CHANGED
|
@@ -48,7 +48,7 @@ export function requireApiKey() {
|
|
|
48
48
|
if (!key) {
|
|
49
49
|
throw new Error(
|
|
50
50
|
'No API key. Run `vike login --api-key <key>` or set VIKE_API_KEY. ' +
|
|
51
|
-
'Get a key at https://vike.io/api
|
|
51
|
+
'Get a key at https://vike.io/account?tab=api-keys',
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
return key;
|
package/src/commands/auth.js
CHANGED
|
@@ -8,7 +8,7 @@ export function registerLogin(program) {
|
|
|
8
8
|
.option('--api-key <key>', 'API key (vk_...)')
|
|
9
9
|
.action(async (opts) => {
|
|
10
10
|
if (!opts.apiKey) {
|
|
11
|
-
console.error('Pass --api-key <vk_...>. Get a key at https://vike.io/api
|
|
11
|
+
console.error('Pass --api-key <vk_...>. Get a key at https://vike.io/account?tab=api-keys');
|
|
12
12
|
process.exitCode = 1;
|
|
13
13
|
return;
|
|
14
14
|
}
|
package/src/commands/init.js
CHANGED
|
@@ -15,7 +15,7 @@ export function registerInit(program) {
|
|
|
15
15
|
if (!key) {
|
|
16
16
|
const rl = createInterface({ input: stdin, output: stdout });
|
|
17
17
|
try {
|
|
18
|
-
console.log('Get your API key at https://vike.io/api
|
|
18
|
+
console.log('Get your API key at https://vike.io/account?tab=api-keys');
|
|
19
19
|
key = (await rl.question('Paste your API key (vk_...): ')).trim();
|
|
20
20
|
} finally {
|
|
21
21
|
rl.close();
|
package/src/commands/install.js
CHANGED
|
@@ -22,14 +22,17 @@ const BEGIN = '<!-- vike-skill:begin -->';
|
|
|
22
22
|
const END = '<!-- vike-skill:end -->';
|
|
23
23
|
|
|
24
24
|
function readSkillSource() {
|
|
25
|
-
// SKILL.md
|
|
26
|
-
//
|
|
25
|
+
// Umbrella SKILL.md lives at skills/vike/SKILL.md (moved from the repo
|
|
26
|
+
// root so the skills-CLI auto-discovers all 40 nested skills instead of
|
|
27
|
+
// stopping at the root one). Fallback to the old root path keeps older
|
|
28
|
+
// installs working until they upgrade.
|
|
27
29
|
const here = fileURLToPath(import.meta.url);
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const root = resolve(dirname(here), '..', '..');
|
|
31
|
+
for (const rel of ['skills/vike/SKILL.md', 'SKILL.md']) {
|
|
32
|
+
const candidate = resolve(root, rel);
|
|
33
|
+
if (existsSync(candidate)) return readFileSync(candidate, 'utf8');
|
|
31
34
|
}
|
|
32
|
-
|
|
35
|
+
throw new Error(`SKILL.md not found under ${root}. Reinstall @vike-io/cli.`);
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
function writeStandalone(path, skill) {
|