@learnrudi/cli 1.9.8 → 1.9.10
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 +145 -53
- package/dist/index.cjs +1645 -536
- package/dist/packages-manifest.json +1 -1
- package/package.json +10 -10
- package/scripts/postinstall.js +14 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# RUDI CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Universal tool manager for MCP stacks, CLI tools, runtimes, and AI agents.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -8,91 +8,163 @@ Install and manage MCP stacks, runtimes, and AI agents.
|
|
|
8
8
|
npm i -g @learnrudi/cli
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Requires Node.js
|
|
12
|
-
downloads the default runtimes.
|
|
11
|
+
Requires Node.js 18+. The postinstall step bootstraps `~/.rudi` and creates shims.
|
|
13
12
|
|
|
14
|
-
##
|
|
13
|
+
## Quick Start
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
```bash
|
|
16
|
+
# Install any npm CLI tool
|
|
17
|
+
rudi install npm:typescript
|
|
18
|
+
rudi install npm:@stripe/cli
|
|
19
|
+
rudi install npm:vercel
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
ensure essential binaries and shims are present.
|
|
21
|
+
# Install curated stacks and tools
|
|
22
|
+
rudi install slack
|
|
23
|
+
rudi install binary:ffmpeg
|
|
24
|
+
rudi install binary:supabase
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
# All tools available via ~/.rudi/bins/
|
|
27
|
+
tsc --version
|
|
28
|
+
ffmpeg -version
|
|
29
|
+
supabase --version
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
initialized.
|
|
29
|
-
3. CLI and Studio share the same `~/.rudi` home, so stacks, runtimes, secrets,
|
|
30
|
-
and the database stay in sync.
|
|
31
|
+
# Configure secrets for stacks
|
|
32
|
+
rudi secrets set SLACK_BOT_TOKEN "xoxb-your-token"
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
# Wire up your AI agents
|
|
35
|
+
rudi integrate all
|
|
36
|
+
```
|
|
35
37
|
|
|
36
|
-
##
|
|
38
|
+
## Features
|
|
39
|
+
|
|
40
|
+
### Universal Tool Installation
|
|
41
|
+
|
|
42
|
+
RUDI supports multiple installation paths:
|
|
37
43
|
|
|
38
44
|
```bash
|
|
39
|
-
#
|
|
40
|
-
rudi
|
|
45
|
+
# Dynamic npm packages (any npm CLI)
|
|
46
|
+
rudi install npm:cowsay
|
|
47
|
+
rudi install npm:typescript
|
|
48
|
+
rudi install npm:@railway/cli
|
|
41
49
|
|
|
42
|
-
#
|
|
43
|
-
rudi install slack
|
|
50
|
+
# Curated registry (stacks and binaries with docs)
|
|
51
|
+
rudi install slack # MCP stack
|
|
52
|
+
rudi install binary:ffmpeg # Upstream binary
|
|
53
|
+
rudi install binary:supabase # npm-based CLI
|
|
44
54
|
|
|
45
|
-
#
|
|
46
|
-
|
|
55
|
+
# All tools resolve through ~/.rudi/bins/
|
|
56
|
+
```
|
|
47
57
|
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
### Shim-First Architecture
|
|
59
|
+
|
|
60
|
+
Every installed tool gets a shim in `~/.rudi/bins/`:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Add to your shell profile (.bashrc, .zshrc)
|
|
64
|
+
export PATH="$HOME/.rudi/bins:$PATH"
|
|
65
|
+
|
|
66
|
+
# Then use tools directly
|
|
67
|
+
tsc --version # → ~/.rudi/bins/tsc
|
|
68
|
+
ffmpeg -version # → ~/.rudi/bins/ffmpeg
|
|
69
|
+
supabase --help # → ~/.rudi/bins/supabase
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Security by Default
|
|
73
|
+
|
|
74
|
+
npm packages run with `--ignore-scripts` by default:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Safe install (scripts skipped)
|
|
78
|
+
rudi install npm:some-package
|
|
50
79
|
|
|
51
|
-
#
|
|
80
|
+
# If CLI fails, opt-in to scripts
|
|
81
|
+
rudi install npm:some-package --allow-scripts
|
|
52
82
|
```
|
|
53
83
|
|
|
54
84
|
## Commands
|
|
55
85
|
|
|
56
86
|
```bash
|
|
57
|
-
|
|
58
|
-
rudi search
|
|
59
|
-
rudi
|
|
60
|
-
rudi
|
|
61
|
-
rudi
|
|
62
|
-
rudi
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
rudi
|
|
66
|
-
rudi
|
|
87
|
+
# Search and install
|
|
88
|
+
rudi search <query> # Search for packages
|
|
89
|
+
rudi search --all # List all packages
|
|
90
|
+
rudi install <pkg> # Install a package
|
|
91
|
+
rudi install npm:<pkg> # Install any npm CLI
|
|
92
|
+
rudi remove <pkg> # Remove a package
|
|
93
|
+
|
|
94
|
+
# List and inspect
|
|
95
|
+
rudi list [kind] # List installed (stacks, binaries, agents)
|
|
96
|
+
rudi pkg <id> # Show package details and shim status
|
|
97
|
+
rudi shims list # List all shims
|
|
98
|
+
rudi shims check # Validate shim targets
|
|
99
|
+
|
|
100
|
+
# Secrets and integration
|
|
101
|
+
rudi secrets list # Show configured secrets
|
|
102
|
+
rudi secrets set <key> # Set a secret
|
|
103
|
+
rudi integrate <agent> # Wire stack to agent config
|
|
104
|
+
|
|
105
|
+
# Maintenance
|
|
106
|
+
rudi update [pkg] # Update packages
|
|
107
|
+
rudi doctor # Check system health
|
|
67
108
|
```
|
|
68
109
|
|
|
69
110
|
## How It Works
|
|
70
111
|
|
|
71
|
-
|
|
112
|
+
### Installing a Package
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
rudi install npm:typescript
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
1. Resolves package from npm registry
|
|
119
|
+
2. Creates install directory at `~/.rudi/binaries/npm/typescript/`
|
|
120
|
+
3. Runs `npm install typescript --ignore-scripts`
|
|
121
|
+
4. Discovers binaries from package.json (`tsc`, `tsserver`)
|
|
122
|
+
5. Creates wrapper shims in `~/.rudi/bins/`
|
|
123
|
+
6. Records ownership in shim registry
|
|
124
|
+
|
|
125
|
+
### Installing an MCP Stack
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
rudi install slack
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
1. Downloads stack tarball from registry
|
|
72
132
|
2. Extracts to `~/.rudi/stacks/slack/`
|
|
73
|
-
3. Runs `npm install`
|
|
74
|
-
4. Shows which secrets need
|
|
133
|
+
3. Runs `npm install` for dependencies
|
|
134
|
+
4. Shows which secrets need configuration
|
|
135
|
+
5. Ready for `rudi integrate` to wire to agents
|
|
75
136
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
137
|
+
### Running MCP Stacks
|
|
138
|
+
|
|
139
|
+
When an AI agent runs a stack:
|
|
140
|
+
|
|
141
|
+
1. Agent config points to `~/.rudi/bins/rudi-mcp`
|
|
142
|
+
2. RUDI loads secrets from `~/.rudi/secrets.json`
|
|
143
|
+
3. Injects secrets as environment variables
|
|
144
|
+
4. Runs the MCP server with bundled runtime
|
|
82
145
|
|
|
83
146
|
## Directory Structure
|
|
84
147
|
|
|
85
148
|
```
|
|
86
149
|
~/.rudi/
|
|
150
|
+
├── bins/ # Shims for all tools (add to PATH)
|
|
87
151
|
├── stacks/ # Installed MCP stacks
|
|
152
|
+
├── binaries/ # Installed CLI tools
|
|
153
|
+
│ ├── ffmpeg/ # Upstream binary
|
|
154
|
+
│ ├── supabase/ # npm-based CLI
|
|
155
|
+
│ └── npm/ # Dynamic npm packages
|
|
156
|
+
│ ├── typescript/
|
|
157
|
+
│ └── cowsay/
|
|
88
158
|
├── runtimes/ # Bundled Node.js, Python
|
|
89
|
-
├──
|
|
90
|
-
├──
|
|
91
|
-
├──
|
|
159
|
+
├── agents/ # AI agent CLIs
|
|
160
|
+
├── secrets.json # Encrypted secrets
|
|
161
|
+
├── shim-registry.json # Shim ownership tracking
|
|
92
162
|
└── rudi.db # Local database
|
|
93
163
|
```
|
|
94
164
|
|
|
95
|
-
## Available
|
|
165
|
+
## Available Packages
|
|
166
|
+
|
|
167
|
+
### MCP Stacks
|
|
96
168
|
|
|
97
169
|
| Stack | Description |
|
|
98
170
|
|-------|-------------|
|
|
@@ -103,10 +175,30 @@ When an agent runs the stack:
|
|
|
103
175
|
| openai | DALL-E, Whisper, TTS, Sora |
|
|
104
176
|
| postgres | PostgreSQL database queries |
|
|
105
177
|
| video-editor | ffmpeg-based video editing |
|
|
106
|
-
| content-extractor | YouTube, Reddit, TikTok, articles |
|
|
107
178
|
| github | Issues, PRs, repos, actions |
|
|
108
179
|
| stripe | Payments, subscriptions, invoices |
|
|
109
180
|
|
|
181
|
+
### Binaries
|
|
182
|
+
|
|
183
|
+
| Binary | Description |
|
|
184
|
+
|--------|-------------|
|
|
185
|
+
| ffmpeg | Video/audio processing |
|
|
186
|
+
| ripgrep | Fast search |
|
|
187
|
+
| supabase | Supabase CLI |
|
|
188
|
+
| vercel | Vercel CLI |
|
|
189
|
+
| uv | Fast Python package manager |
|
|
190
|
+
|
|
191
|
+
### Dynamic npm
|
|
192
|
+
|
|
193
|
+
Any npm package with a `bin` field works:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
rudi install npm:typescript # tsc, tsserver
|
|
197
|
+
rudi install npm:cowsay # cowsay, cowthink
|
|
198
|
+
rudi install npm:@stripe/cli # stripe
|
|
199
|
+
rudi install npm:netlify-cli # netlify
|
|
200
|
+
```
|
|
201
|
+
|
|
110
202
|
## Links
|
|
111
203
|
|
|
112
204
|
- Website: https://learnrudi.com
|