@1claw/cli 0.34.0 → 0.34.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.
Files changed (44) hide show
  1. package/README.md +122 -1
  2. package/dist/src/ai-clients.d.ts +19 -0
  3. package/dist/src/ai-clients.d.ts.map +1 -0
  4. package/dist/src/ai-clients.js +218 -0
  5. package/dist/src/ai-clients.js.map +1 -0
  6. package/dist/src/commands/daemon.d.ts +3 -0
  7. package/dist/src/commands/daemon.d.ts.map +1 -0
  8. package/dist/src/commands/daemon.js +347 -0
  9. package/dist/src/commands/daemon.js.map +1 -0
  10. package/dist/src/commands/env.d.ts.map +1 -1
  11. package/dist/src/commands/env.js +122 -19
  12. package/dist/src/commands/env.js.map +1 -1
  13. package/dist/src/commands/import.d.ts +3 -0
  14. package/dist/src/commands/import.d.ts.map +1 -0
  15. package/dist/src/commands/import.js +175 -0
  16. package/dist/src/commands/import.js.map +1 -0
  17. package/dist/src/commands/local.d.ts +3 -0
  18. package/dist/src/commands/local.d.ts.map +1 -0
  19. package/dist/src/commands/local.js +505 -0
  20. package/dist/src/commands/local.js.map +1 -0
  21. package/dist/src/commands/setup.d.ts +3 -0
  22. package/dist/src/commands/setup.d.ts.map +1 -0
  23. package/dist/src/commands/setup.js +304 -0
  24. package/dist/src/commands/setup.js.map +1 -0
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/index.js +9 -0
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/local-cache.d.ts +19 -0
  29. package/dist/src/local-cache.d.ts.map +1 -0
  30. package/dist/src/local-cache.js +131 -0
  31. package/dist/src/local-cache.js.map +1 -0
  32. package/dist/src/local-policy.d.ts +39 -0
  33. package/dist/src/local-policy.d.ts.map +1 -0
  34. package/dist/src/local-policy.js +123 -0
  35. package/dist/src/local-policy.js.map +1 -0
  36. package/dist/src/local-vault.d.ts +39 -0
  37. package/dist/src/local-vault.d.ts.map +1 -0
  38. package/dist/src/local-vault.js +166 -0
  39. package/dist/src/local-vault.js.map +1 -0
  40. package/dist/src/secret-proxy.d.ts +27 -0
  41. package/dist/src/secret-proxy.d.ts.map +1 -0
  42. package/dist/src/secret-proxy.js +73 -0
  43. package/dist/src/secret-proxy.js.map +1 -0
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @1claw/cli (v0.34.0)
1
+ # @1claw/cli (v0.34.2)
2
2
 
3
3
  Command-line interface for [1Claw](https://1claw.xyz) — HSM-backed secret management for AI agents and humans.
4
4
 
@@ -8,6 +8,14 @@ Designed for CI/CD pipelines, DevOps workflows, and server environments.
8
8
 
9
9
  ## Installation
10
10
 
11
+ ### Homebrew (macOS / Linux)
12
+
13
+ ```bash
14
+ brew install 1clawAI/tap/1claw
15
+ ```
16
+
17
+ ### npm
18
+
11
19
  ```bash
12
20
  npm install -g @1claw/cli
13
21
  ```
@@ -46,8 +54,45 @@ export ONECLAW_TOKEN="your-jwt"
46
54
  export ONECLAW_API_KEY="1ck_..."
47
55
  ```
48
56
 
57
+ ## Quick Start
58
+
59
+ ```bash
60
+ 1claw login # Authenticate via browser
61
+ 1claw setup # Auto-configure Claude, Cursor, VS Code, etc.
62
+ 1claw import .env # Import secrets from a .env file into your vault
63
+ ```
64
+
49
65
  ## Commands
50
66
 
67
+ ### Setup (AI Client Auto-Configuration)
68
+
69
+ Auto-detect and configure AI clients (Claude Desktop, Cursor, VS Code, Zed, Windsurf, Claude Code) to use the 1Claw MCP server for runtime secret access.
70
+
71
+ ```bash
72
+ 1claw setup # Interactive: detect clients, select, configure
73
+ 1claw setup --client cursor # Configure only Cursor
74
+ 1claw setup --agent-key ocv_... # Use a specific agent API key
75
+ 1claw setup --project # Write MCP config to current project instead of global
76
+ 1claw setup --skip-auth # Skip authentication check
77
+ ```
78
+
79
+ The command detects installed AI clients, prompts you to select which ones to configure, and writes the appropriate MCP server entry to each client's config file. It uses `npx @1claw/mcp` by default, or a globally installed `1claw-mcp` binary if available.
80
+
81
+ ### Import (.env File)
82
+
83
+ Import secrets from a local `.env` file into a 1Claw vault.
84
+
85
+ ```bash
86
+ 1claw import .env # Import all keys from .env
87
+ 1claw import .env.production \
88
+ --prefix prod/ # Add a path prefix to all keys
89
+ 1claw import .env --dry-run # Preview what would be imported
90
+ 1claw import .env --force # Overwrite existing secrets
91
+ 1claw import .env --vault <id> # Import to a specific vault
92
+ ```
93
+
94
+ Handles standard `.env` syntax: `KEY=value`, single/double-quoted values, `export` prefix, comments, and multiline values.
95
+
51
96
  ### Auth
52
97
 
53
98
  ```bash
@@ -117,8 +162,22 @@ echo "sk_live_..." | 1claw secret set <path> --stdin # From stdin
117
162
  1claw env push .env # Push .env file to vault
118
163
  1claw env run -- npm start # Run with secrets injected
119
164
  1claw env run --prefix config/ -- ./deploy.sh # Only inject matching secrets
165
+ 1claw env run --no-cache -- npm start # Skip local cache, always fetch from API
166
+ ```
167
+
168
+ ### Environment Cache (Offline Mode)
169
+
170
+ Cache secrets locally in an AES-256-GCM encrypted file for offline `env run`. The encryption key is derived from your authentication token.
171
+
172
+ ```bash
173
+ 1claw env cache # Download and cache secrets locally
174
+ 1claw env cache --ttl 3600 # Cache with 1-hour TTL (default: 300s)
175
+ 1claw env cache-status # Show cache age, vault ID, secret count
176
+ 1claw env cache-clear # Delete the local cache
120
177
  ```
121
178
 
179
+ When a valid cache exists, `env run` uses it automatically instead of calling the API. Use `--no-cache` on `env run` to bypass. Cache is stored at `~/.config/1claw/env-cache.enc` (mode `0600`).
180
+
122
181
  ### Agents
123
182
 
124
183
  ```bash
@@ -447,6 +506,68 @@ Manage registered mobile companion app devices.
447
506
  1claw config set output-format json # Set default output
448
507
  ```
449
508
 
509
+ ## Local Vault (Offline, Encrypted)
510
+
511
+ Store secrets locally in an encrypted vault — no cloud required. Secrets are encrypted at rest with AES-256-GCM using a passphrase-derived key (PBKDF2, 100k iterations).
512
+
513
+ ```bash
514
+ 1claw local init # Create local vault with passphrase
515
+ 1claw local add STRIPE_KEY # Add secret (prompted, masked)
516
+ 1claw local list # List secret names (never values)
517
+ 1claw local get STRIPE_KEY # Retrieve a value
518
+ 1claw local rm STRIPE_KEY # Remove a secret
519
+ 1claw local import .env # Import .env file into local vault
520
+ 1claw local export -o .env # Export as .env format
521
+ 1claw local sync -v <vault-id> # Push local secrets to cloud vault
522
+ 1claw local sync --pull -v <id> # Pull cloud secrets into local vault
523
+ 1claw local status # Show vault info (count, sync status)
524
+ 1claw local destroy # Permanently delete local vault
525
+ ```
526
+
527
+ Vault file: `~/.config/1claw/local-vault.enc` (0600 permissions, safe to back up).
528
+
529
+ ## Local Daemon (Secret Proxy)
530
+
531
+ The daemon serves secrets over a Unix socket and injects them into HTTP requests without exposing values to the AI model. This provides a trust boundary: the model knows *which* secret to use and *where* to send it, but never sees the raw value.
532
+
533
+ ```bash
534
+ # Start the daemon (unlocks vault, listens on socket)
535
+ 1claw daemon start
536
+
537
+ # Manage per-secret policies (which hosts can receive each secret)
538
+ 1claw daemon policy add STRIPE_KEY --hosts api.stripe.com
539
+ 1claw daemon policy add OPENAI_KEY --hosts api.openai.com,*.openai.com
540
+ 1claw daemon policy list
541
+ 1claw daemon policy remove STRIPE_KEY
542
+
543
+ # Check daemon status
544
+ 1claw daemon status
545
+
546
+ # Stop the daemon
547
+ 1claw daemon stop
548
+ ```
549
+
550
+ ### Setup for Local Mode
551
+
552
+ Configure AI clients to use the daemon instead of the cloud API:
553
+
554
+ ```bash
555
+ 1claw setup --local
556
+ ```
557
+
558
+ This sets `ONECLAW_LOCAL_VAULT=true` and `ONECLAW_DAEMON_SOCKET` in the MCP config, so the MCP server connects to the local daemon instead of `api.1claw.xyz`. The model uses `proxy_request` to make API calls with secrets injected — the secret value never enters the model's context.
559
+
560
+ ### Architecture
561
+
562
+ ```
563
+ AI Client (Claude, Cursor, etc.)
564
+ └─ MCP Server (@1claw/mcp, local mode)
565
+ └─ Unix Socket (/~/.config/1claw/daemon.sock)
566
+ └─ 1claw Daemon (holds decrypted vault in memory)
567
+ ├─ Policy Engine (per-secret host allowlist)
568
+ └─ Secret Proxy (injects credentials into HTTP requests)
569
+ ```
570
+
450
571
  ## Global options
451
572
 
452
573
  ```bash
@@ -0,0 +1,19 @@
1
+ export interface AiClient {
2
+ name: string;
3
+ slug: string;
4
+ configPath: string;
5
+ configFormat: "mcpServers" | "servers" | "zed" | "claude-code";
6
+ detected: boolean;
7
+ }
8
+ export declare function detectAiClients(): AiClient[];
9
+ export interface McpServerEntry {
10
+ command: string;
11
+ args: string[];
12
+ env: Record<string, string>;
13
+ }
14
+ export declare function buildMcpEntry(envVars: Record<string, string>): McpServerEntry;
15
+ export declare function configureClient(client: AiClient, entry: McpServerEntry): {
16
+ success: boolean;
17
+ message: string;
18
+ };
19
+ //# sourceMappingURL=ai-clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-clients.d.ts","sourceRoot":"","sources":["../../src/ai-clients.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/D,QAAQ,EAAE,OAAO,CAAC;CACrB;AAkBD,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAqF5C;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAgB7E;AAED,wBAAgB,eAAe,CAC3B,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,cAAc,GACtB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA4EvC"}
@@ -0,0 +1,218 @@
1
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
2
+ import { homedir, platform } from "node:os";
3
+ import { dirname } from "node:path";
4
+ import { execSync } from "node:child_process";
5
+ function expandHome(p) {
6
+ return p.replace(/^~/, homedir());
7
+ }
8
+ function resolveGlobalMcpBinary() {
9
+ try {
10
+ const resolved = execSync("which 1claw-mcp 2>/dev/null", {
11
+ encoding: "utf-8",
12
+ }).trim();
13
+ if (resolved)
14
+ return resolved;
15
+ }
16
+ catch {
17
+ // not found globally
18
+ }
19
+ return "";
20
+ }
21
+ export function detectAiClients() {
22
+ const isMac = platform() === "darwin";
23
+ const clients = [
24
+ {
25
+ name: "Claude Desktop",
26
+ slug: "claude-desktop",
27
+ configPath: isMac
28
+ ? "~/Library/Application Support/Claude/claude_desktop_config.json"
29
+ : "~/.config/claude/claude_desktop_config.json",
30
+ configFormat: "mcpServers",
31
+ detected: false,
32
+ },
33
+ {
34
+ name: "Claude Code",
35
+ slug: "claude-code",
36
+ configPath: "",
37
+ configFormat: "claude-code",
38
+ detected: false,
39
+ },
40
+ {
41
+ name: "Cursor",
42
+ slug: "cursor",
43
+ configPath: "~/.cursor/mcp.json",
44
+ configFormat: "mcpServers",
45
+ detected: false,
46
+ },
47
+ {
48
+ name: "Windsurf",
49
+ slug: "windsurf",
50
+ configPath: "~/.codeium/windsurf/mcp_config.json",
51
+ configFormat: "mcpServers",
52
+ detected: false,
53
+ },
54
+ {
55
+ name: "VS Code",
56
+ slug: "vscode",
57
+ configPath: "~/.vscode/mcp.json",
58
+ configFormat: "servers",
59
+ detected: false,
60
+ },
61
+ {
62
+ name: "Zed",
63
+ slug: "zed",
64
+ configPath: "~/.config/zed/settings.json",
65
+ configFormat: "zed",
66
+ detected: false,
67
+ },
68
+ {
69
+ name: "Continue.dev",
70
+ slug: "continue",
71
+ configPath: "~/.continue/config.json",
72
+ configFormat: "mcpServers",
73
+ detected: false,
74
+ },
75
+ ];
76
+ for (const client of clients) {
77
+ if (client.slug === "claude-code") {
78
+ try {
79
+ execSync("which claude 2>/dev/null", { encoding: "utf-8" });
80
+ client.detected = true;
81
+ }
82
+ catch {
83
+ client.detected = false;
84
+ }
85
+ continue;
86
+ }
87
+ const expanded = expandHome(client.configPath);
88
+ if (client.slug === "cursor") {
89
+ client.detected =
90
+ existsSync(expandHome("~/.cursor")) ||
91
+ existsSync(expanded);
92
+ }
93
+ else if (client.slug === "vscode") {
94
+ client.detected =
95
+ existsSync(expandHome("~/.vscode")) ||
96
+ existsSync(expanded);
97
+ }
98
+ else {
99
+ client.detected =
100
+ existsSync(expanded) ||
101
+ existsSync(dirname(expanded));
102
+ }
103
+ }
104
+ return clients;
105
+ }
106
+ export function buildMcpEntry(envVars) {
107
+ const globalBin = resolveGlobalMcpBinary();
108
+ if (globalBin) {
109
+ return {
110
+ command: globalBin,
111
+ args: [],
112
+ env: envVars,
113
+ };
114
+ }
115
+ return {
116
+ command: "npx",
117
+ args: ["-y", "@1claw/mcp"],
118
+ env: envVars,
119
+ };
120
+ }
121
+ export function configureClient(client, entry) {
122
+ if (client.configFormat === "claude-code") {
123
+ return configureClaudeCode(entry);
124
+ }
125
+ const configPath = expandHome(client.configPath);
126
+ const dir = dirname(configPath);
127
+ if (!existsSync(dir)) {
128
+ mkdirSync(dir, { recursive: true });
129
+ }
130
+ let config = {};
131
+ if (existsSync(configPath)) {
132
+ try {
133
+ config = JSON.parse(readFileSync(configPath, "utf-8"));
134
+ }
135
+ catch {
136
+ return {
137
+ success: false,
138
+ message: `Failed to parse ${configPath}`,
139
+ };
140
+ }
141
+ }
142
+ const serverStanza = {
143
+ command: entry.command,
144
+ args: entry.args,
145
+ env: entry.env,
146
+ };
147
+ switch (client.configFormat) {
148
+ case "mcpServers": {
149
+ if (!config.mcpServers || typeof config.mcpServers !== "object") {
150
+ config.mcpServers = {};
151
+ }
152
+ config.mcpServers["1claw"] =
153
+ serverStanza;
154
+ break;
155
+ }
156
+ case "servers": {
157
+ if (!config.servers || typeof config.servers !== "object") {
158
+ config.servers = {};
159
+ }
160
+ config.servers["1claw"] =
161
+ serverStanza;
162
+ break;
163
+ }
164
+ case "zed": {
165
+ if (!config.context_servers ||
166
+ typeof config.context_servers !== "object") {
167
+ config.context_servers = {};
168
+ }
169
+ config.context_servers["1claw"] = {
170
+ command: {
171
+ path: entry.command,
172
+ args: entry.args,
173
+ env: entry.env,
174
+ },
175
+ settings: {},
176
+ };
177
+ break;
178
+ }
179
+ }
180
+ const tmpPath = configPath + ".1claw-tmp";
181
+ writeFileSync(tmpPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
182
+ const { renameSync } = require("node:fs");
183
+ renameSync(tmpPath, configPath);
184
+ return {
185
+ success: true,
186
+ message: `Configured ${client.name} at ${configPath}`,
187
+ };
188
+ }
189
+ function configureClaudeCode(entry) {
190
+ const envArgs = Object.entries(entry.env)
191
+ .flatMap(([k, v]) => ["-e", `${k}=${v}`]);
192
+ const cmdParts = [
193
+ "claude", "mcp", "add",
194
+ "-s", "user",
195
+ ...envArgs,
196
+ "1claw",
197
+ "--",
198
+ entry.command,
199
+ ...entry.args,
200
+ ];
201
+ try {
202
+ execSync(cmdParts.join(" "), {
203
+ encoding: "utf-8",
204
+ stdio: "pipe",
205
+ });
206
+ return {
207
+ success: true,
208
+ message: "Configured Claude Code via `claude mcp add`",
209
+ };
210
+ }
211
+ catch (err) {
212
+ return {
213
+ success: false,
214
+ message: `Failed to configure Claude Code: ${err.message}`,
215
+ };
216
+ }
217
+ }
218
+ //# sourceMappingURL=ai-clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-clients.js","sourceRoot":"","sources":["../../src/ai-clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const daemonCommand: Command;
3
+ //# sourceMappingURL=daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,eAAO,MAAM,aAAa,SAEzB,CAAC"}