@lllanyard/cli 0.1.1 → 0.1.4
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 +88 -16
- package/dist/index.js +323 -26
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -43,21 +43,22 @@ Compatibility notes:
|
|
|
43
43
|
| Command | What it does |
|
|
44
44
|
|---|---|
|
|
45
45
|
| `add <provider> [--label N] [--rotate-days N] [--env-name VAR]` | Store a key (hidden prompt or `--stdin`). `--label` doubles as a *client* name for agency/freelancer use. |
|
|
46
|
-
| `env <provider>[:label] VAR` | The environment variable a key is given to scripts as, e.g. `lllanyard env
|
|
47
|
-
| `exec <command> [args…]` | Run a script with the keys it uses: `lllanyard exec pwsh -File ./
|
|
46
|
+
| `env <provider>[:label] VAR` | The environment variable a key is given to scripts as, e.g. `lllanyard env github GITHUB_TOKEN`. |
|
|
47
|
+
| `exec <command> [args…]` | Run a script with the keys it uses: `lllanyard exec pwsh -File ./Deploy-App.ps1 -DryRun`. LLLanyard reads the script, and the helper files it loads (quoted paths, `source`/`.` lines, Python imports), for your keys' variable names and passes only those, for that run only. Keys in the output are redacted; each run is logged and shown by `usage`. `exec --keys github,sendgrid -- <command>` names the keys yourself (needed for programs that aren't scripts). Run from a terminal, the script gets a real terminal of its own (prompts like `Read-Host`, colours and window size work) on macOS, Linux and Windows, and its output is still redacted. |
|
|
48
48
|
| `list`, `remove`, `rotate`, `status` | Manage keys; `status` shows rotation due dates and exits 1 if anything is overdue (cron/CI friendly). |
|
|
49
49
|
| `agent create <name> [--client N] [--providers a,b]` / `list` / `revoke` | Placeholder tokens. `--client acme` pins an agent to the `acme` key; `--providers` limits which APIs it may reach (least privilege). |
|
|
50
50
|
| `provider add <id> --upstream https://… [--auth bearer\|header --header NAME --prefix TXT]` / `list` / `remove` | Teach the proxy a new API host (GitHub, Slack, your own service). Built-ins: openai, anthropic, gemini, openrouter, github, slack, stripe, notion. |
|
|
51
51
|
| `tool add <name> --env VAR=provider[:label] [--allow-host H] [--kill-on-leak] [--pass-env V] [--inherit-env] [--no-scrub] -- <command> [args…]` / `list` / `remove` | Approve a command (e.g. an MCP server) to receive keys as environment variables, with the safeguards below. |
|
|
52
52
|
| `run <name> [-- args…]` | Run an approved tool with its keys injected and scrubbed from its output. Extra args are appended only if the tool was approved with `--allow-args`. For script tools (python, node, sh, pwsh…) the script file is pinned by hash at approval and `run` refuses if it has changed since; `--allow-args` is refused for bare interpreters (`python3 -c`, `-m`) and launchers (`env`, `xargs`, `sudo`, `npx`). `run --env … -- <cmd>` is a one-off that needs a human to confirm at a terminal. |
|
|
53
53
|
| `scan [paths] [--import --apply [--redact]]` | Find plaintext keys in `.env` files, MCP/IDE configs and shell profiles, then move them into the keychain. Dry run unless `--apply`. |
|
|
54
|
-
| `backup [--out FILE] [--passphrase-file F]` | Write one encrypted file (AES-256-GCM, scrypt passphrase) holding your keys and their metadata, custom providers, approved tools, agents and
|
|
54
|
+
| `backup [--out FILE] [--passphrase-file F]` | Write one encrypted file (AES-256-GCM, scrypt passphrase) holding your keys and their metadata, custom providers, approved tools, agents, license and team server link. Agents are saved as token hashes, so existing agent tokens keep working after a restore. |
|
|
55
55
|
| `restore <file> [--overwrite] [--dry-run] [--passphrase-file F]` | Merge a backup into this machine's keychain or vault. Every item is validated and the key limit checked before anything is written; existing items are kept unless `--overwrite`, and nothing is ever deleted. |
|
|
56
56
|
| `start [--port N]` | Run the proxy (loopback only). Logs JSON lines to stdout. |
|
|
57
|
+
| `team join <https://server:port> [--ca FILE] [--stdin]` / `status` / `leave` | Team: link this LLLanyard to your team's shared proxy. Your keys here stay personal; requests you have no key for go to the team server with your own team token. |
|
|
57
58
|
|
|
58
59
|
## Using it with tools (APIs and MCP servers)
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
Three routes, depending on how the tool talks:
|
|
61
62
|
|
|
62
63
|
**1. HTTP APIs go through the proxy** (the tool only holds the placeholder token):
|
|
63
64
|
|
|
@@ -128,7 +129,7 @@ A tool started with `run` holds its key, so LLLanyard puts guard rails around it
|
|
|
128
129
|
| Output scrubbing | Removes the key from the tool's stdout/stderr, including base64, base64url, hex and URL-encoded copies. Streams, so MCP's newline-delimited stdio never stalls. | on |
|
|
129
130
|
| Leak alert / kill | The first time the tool prints its key you get a warning on stderr; with `--kill-on-leak` the tool is stopped at once (exit code 70). A tool echoing its own token is a strong sign it is buggy or compromised. | warn |
|
|
130
131
|
| Egress allowlist | `--allow-host api.github.com` (repeatable, `*.example.com` wildcards) starts a loopback proxy protected by a per-run password; the tool's proxy variables point at it, so it can only open HTTPS tunnels to listed hosts on public IPs. Denied attempts are logged. | off |
|
|
131
|
-
| Clean shutdown | Signals are forwarded and the tool is killed if
|
|
132
|
+
| Clean shutdown | Signals are forwarded and the tool is killed if LLLanyard exits. Keys go only into the child's environment, never the parent's. | on |
|
|
132
133
|
| Pinned command | The command is stored as an absolute path in the keychain, so a PATH swap or config edit can't change what receives the key. | on |
|
|
133
134
|
|
|
134
135
|
### Enforced isolation: `--sandbox`
|
|
@@ -148,7 +149,7 @@ lllanyard doctor # reports whether a sandbox works on this machine
|
|
|
148
149
|
| Home directory | Replaced by an empty tmpfs: no `~/.ssh`, `~/.aws`, browser profiles, shell history | Reads under `$HOME` denied except the project and shares |
|
|
149
150
|
| Writes | Only the current folder (and `--share-rw`); `/tmp` is private | Only the current folder, `--share-rw` and temp |
|
|
150
151
|
| Your keychain | No D-Bus/Secret Service socket, no `/run`; fresh `/proc` shows no other processes, so the parent's environment can't be read | Keychain services blocked (`SecurityServer`, `securityd`) |
|
|
151
|
-
| Other | `--unshare-all`, all capabilities dropped, dies with
|
|
152
|
+
| Other | `--unshare-all`, all capabilities dropped, dies with LLLanyard, `--new-session` when non-interactive | |
|
|
152
153
|
|
|
153
154
|
- **Fails closed.** Before each run a throwaway sandbox is started; if it can't start, the tool is **not** run (no silent
|
|
154
155
|
fallback). A tool with `--sandbox` and no `--allow-host` gets no network.
|
|
@@ -168,7 +169,7 @@ Honest limits:
|
|
|
168
169
|
- **The key is still in the tool's memory and environment**; unsandboxed, it is readable by your OS user (`/proc/<pid>/environ`, Task Manager).
|
|
169
170
|
- **Scrubbing covers UTF-8 text.** Binary output, or a tool that splits or otherwise encodes the key (encryption, custom
|
|
170
171
|
alphabets), gets through. `--no-scrub` exists for binary tools.
|
|
171
|
-
- If
|
|
172
|
+
- If LLLanyard itself is force-killed (SIGKILL), the tool can be orphaned; a normal exit or Ctrl+C stops it.
|
|
172
173
|
|
|
173
174
|
Use `run` for tools you trust, and give each tool the narrowest key you can (a read-only GitHub token, not your admin one).
|
|
174
175
|
|
|
@@ -211,8 +212,20 @@ Keys that sat in plaintext should be treated as exposed: after `scan --import`,
|
|
|
211
212
|
|
|
212
213
|
## Tiers
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
An *agent* is one AI tool or app you link in (Claude Code, Cursor, an SDK script). Each gets its own agent token.
|
|
216
|
+
|
|
217
|
+
| | Keys | Agent tokens | Where it runs |
|
|
218
|
+
|---|---|---|---|
|
|
219
|
+
| **Free** | 10 | 5 | This computer only |
|
|
220
|
+
| **Pro** | 250 | 10 per user | Shared with up to 3 of one person's own devices (laptop, desktop, home server) |
|
|
221
|
+
| **Team** | 500 | Unlimited | Shared on your network with the other members of your team |
|
|
222
|
+
|
|
223
|
+
Pro and Team also add the usage dashboard. See [pricing](https://lllanyard.app/pricing). Lowering a limit never stops
|
|
224
|
+
tokens you already have.
|
|
225
|
+
|
|
226
|
+
Everything runs on your own computers. Keys never go to us or to any cloud service, and there's no account or telemetry.
|
|
227
|
+
When the proxy is shared, one of your machines holds the keys and the other devices' tools connect to it over your
|
|
228
|
+
network or VPN.
|
|
216
229
|
|
|
217
230
|
### Desktop app and rotation assistant
|
|
218
231
|
|
|
@@ -244,17 +257,53 @@ OpenAI key due for rotation?" or "what is the base URL for GitHub?" and cannot r
|
|
|
244
257
|
passphrase must come from `LLLANYARD_VAULT_PASSPHRASE_FILE` (no prompt is possible on stdio). Note that anything an agent can
|
|
245
258
|
run as your user can also run `lllanyard` directly; the MCP server is a safe *information* channel, not an access boundary.
|
|
246
259
|
|
|
247
|
-
### Sharing with
|
|
260
|
+
### Sharing across your devices (Pro) or with your team (Team)
|
|
248
261
|
|
|
249
|
-
One computer (a small server, or an always-on workstation) holds the real keys
|
|
262
|
+
One computer (a small server, or an always-on workstation) holds the real keys and shares its proxy:
|
|
250
263
|
|
|
251
264
|
```
|
|
252
265
|
lllanyard serve --host 0.0.0.0 --port 3443 --tls-cert cert.pem --tls-key key.pem --allow-host keys.example.com
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Pro: your own devices, up to 3.** Pair each device once. Install LLLanyard on it (it stores no keys there), then:
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
lllanyard device add work-laptop # on the main computer: a one-time code, valid 10 minutes
|
|
272
|
+
lllanyard device join https://keys.example.com:3443 # on the laptop: asks for the code (--ca ca.pem for a private CA)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
On the paired device:
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
lllanyard exec --remote pwsh -File ./Deploy-App.ps1 # run a script or tool with your keys from the main computer
|
|
279
|
+
lllanyard relay # a fixed local address for apps such as an editor or Claude Desktop
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
`exec --remote` works like `exec`: it reads the script for the variable names of your keys (or takes `--keys github`),
|
|
283
|
+
then asks the main computer for just those keys. They go into that one command's environment, in memory, with any that
|
|
284
|
+
appear in its output redacted, and are gone when it ends: nothing is saved or cached on the device, so the next run asks
|
|
285
|
+
again. The main computer logs each one (`device-keys`: which device, which keys, which command). As with `exec`, a
|
|
286
|
+
script that copies a key somewhere itself can't be stopped.
|
|
287
|
+
|
|
288
|
+
A device paired with `lllanyard device add tablet --no-keys` never receives a key. Its tools go through the main
|
|
289
|
+
computer's proxy instead, using SDK base URLs (`ANTHROPIC_BASE_URL`, `OPENAI_BASE_URL`) and `LLLANYARD_<PROVIDER>_URL`
|
|
290
|
+
(for example `LLLANYARD_GITHUB_URL`). `lllanyard relay` always works this way, for long-running apps.
|
|
291
|
+
|
|
292
|
+
Each device's token works only on the computer it was paired on: LLLanyard on the device sends a hash of its machine ID
|
|
293
|
+
(the hardware UUID on a Mac, the MachineGuid on Windows, `/etc/machine-id` on Linux) with each request, and a copied token
|
|
294
|
+
is refused on any other computer. `lllanyard device list` shows them; `lllanyard device remove work-laptop` frees a place.
|
|
295
|
+
On Pro, agent tokens work on the main computer only. The machine ID is reported by the device, so this stops a token
|
|
296
|
+
being passed around, not someone determined to fake it.
|
|
297
|
+
|
|
298
|
+
**Team: your team, no device limit.** Each teammate's tool gets its own agent token, and points at
|
|
299
|
+
`https://keys.example.com:3443/openai/v1` with that token as the API key:
|
|
300
|
+
|
|
301
|
+
```
|
|
253
302
|
lllanyard agent create alice-laptop --client acme --providers openai --expires 90d
|
|
254
303
|
```
|
|
255
304
|
|
|
256
|
-
|
|
257
|
-
|
|
305
|
+
Devices and teammates can *use* a key but never read it. Revoking a token or removing a device cuts it off within ~10
|
|
306
|
+
seconds.
|
|
258
307
|
|
|
259
308
|
| Safeguard | |
|
|
260
309
|
|---|---|
|
|
@@ -264,11 +313,34 @@ Teammates point their tools at `https://keys.example.com:3443/openai/v1` and use
|
|
|
264
313
|
| Per-person scope | Each token is limited to a client (`--client`), optionally to providers, and can expire (`--expires`) |
|
|
265
314
|
| Audit trail | Every request is logged with agent name and caller address; `lllanyard usage` breaks it down by agent and client |
|
|
266
315
|
| Rate limits + kill switch | Per token, as before |
|
|
267
|
-
|
|
|
316
|
+
| Limits | Agent tokens: Free 5, Pro 10 per user, Team unlimited. Paired devices: Pro 3, Team unlimited |
|
|
268
317
|
|
|
269
318
|
Put it behind a VPN (Tailscale, WireGuard) or a firewall if you can; the lockout and TLS are a second layer, not a reason to
|
|
270
319
|
expose it to the whole internet. `X-Forwarded-For` is deliberately ignored, so a reverse proxy in front shows as one address.
|
|
271
320
|
|
|
321
|
+
### Personal keys alongside the team's (Team)
|
|
322
|
+
|
|
323
|
+
Team members can keep their own keys as well as using the team's. Each member runs their own LLLanyard, which holds
|
|
324
|
+
their personal keys, and links it to the team server with their own token from the team admin:
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
lllanyard team join https://keys.example.com:3443 # prompts for your team token (or --stdin); --ca ca.pem for a private CA
|
|
328
|
+
lllanyard team status # checks the link and lists which keys are personal
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
your laptop ─┐
|
|
333
|
+
your desktop ┼─► your LLLanyard (your keys) ──► team server (the team's keys)
|
|
334
|
+
your server ─┘ on one of your machines on your network
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Your tools point at your own LLLanyard as usual. A request for a key you hold uses yours, and never reaches the team
|
|
338
|
+
server. A request for anything else goes on to the team server, which adds the team's key. The team server sees your
|
|
339
|
+
team token, not your devices' tokens, so its usage log and revocation work per member. Your devices' own token limits
|
|
340
|
+
(`--providers`) apply first. Your personal keys never leave your machine, and the team's keys never come to it. Sharing
|
|
341
|
+
your LLLanyard between your own devices works as on Pro (`lllanyard serve` and `lllanyard device add`). `lllanyard team leave` removes the link.
|
|
342
|
+
The link is only used while a Team license is active, and the team server must be LLLanyard 0.1.4 or later.
|
|
343
|
+
|
|
272
344
|
**Headless servers and containers: the encrypted file vault.** The OS keychain needs a desktop login, so on a server use
|
|
273
345
|
`LLLANYARD_BACKEND=file`. Everything (keys, agents, tools, license) then lives in one encrypted file,
|
|
274
346
|
`~/.lllanyard/vault.enc` (override with `LLLANYARD_VAULT_PATH`): AES-256-GCM, key from your passphrase via scrypt, atomic
|
|
@@ -318,11 +390,11 @@ unlicensed.
|
|
|
318
390
|
|
|
319
391
|
## License
|
|
320
392
|
|
|
321
|
-
|
|
393
|
+
LLLanyard is source-available under the **Business Source License 1.1** (`LICENSE.md`), licensor **Ethan Askew T/A LLLanyard**.
|
|
322
394
|
In plain words (the license text is what counts):
|
|
323
395
|
|
|
324
396
|
- You can read, copy, modify and **evaluate or develop** with it freely.
|
|
325
|
-
- **Production use** is free within the free tier (10 keys
|
|
397
|
+
- **Production use** is free within the free tier (10 keys and 5 agent tokens, on one computer). Beyond that you need a paid license key
|
|
326
398
|
from Ethan Askew T/A LLLanyard.
|
|
327
399
|
- You **may not remove, bypass or tamper with the license-key checks or usage limits**, or help others do so. Doing it makes
|
|
328
400
|
your use unlicensed, and the license terminates.
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import https from 'node:https';
|
|
3
4
|
import os from 'node:os';
|
|
4
5
|
import path from 'node:path';
|
|
5
6
|
import { Writable } from 'node:stream';
|
|
6
7
|
import { fileURLToPath } from 'node:url';
|
|
7
|
-
import { AgentStore, APP_NAME, createMcpHandler, serveMcpStdio, allProviders, FileBackend, LicenseStore, refreshDue, refreshLicense, MIN_PASSPHRASE, backendKind, defaultBackend, setVaultPassphrase, vaultPassphrase, createUsageLog, parseSince, readUsage, renderDashboard, summarize, usageLogPath, BUILTIN_PROVIDERS, DEFAULT_PORT, KeyringBackend, KeyringStore, ProviderStore, ToolStore, defaultRoots, parseKeyRef, redactFile, rotationStatus, runTool, sandboxSelfTest, scan, createBackup, describeItem, readBackup, restoreBackup, pinScript, findCommand, pinFiles, bindingsForKeys, bindingsForAllKeys, scriptOf, neededEnv, resolveScriptDirs, planScriptRun, describePlan, confirmDialog, stableNodePath, withClaudeDesktopClosed, claudeDesktopRunning, canRestartClaudeDesktop, claudeDesktopStatus, connectClaudeDesktop, disconnectClaudeDesktop, claudeCodeStatus, connectClaudeCode, disconnectClaudeCode, } from '@lllanyard/core';
|
|
8
|
-
import { startEgressProxy, startProxy } from '@lllanyard/proxy';
|
|
8
|
+
import { AgentStore, APP_NAME, TeamStore, DeviceStore, RemoteStore, DEVICE_LIMITS, machineId, normaliseTeamUrl, createMcpHandler, serveMcpStdio, allProviders, FileBackend, LicenseStore, refreshDue, refreshLicense, MIN_PASSPHRASE, backendKind, defaultBackend, setVaultPassphrase, vaultPassphrase, createUsageLog, parseSince, readUsage, renderDashboard, summarize, usageLogPath, BUILTIN_PROVIDERS, DEFAULT_PORT, KeyringBackend, KeyringStore, ProviderStore, ToolStore, defaultRoots, parseKeyRef, redactFile, rotationStatus, runTool, sandboxSelfTest, scan, createBackup, describeItem, readBackup, restoreBackup, pinScript, findCommand, pinFiles, bindingsForKeys, bindingsForAllKeys, scriptOf, neededEnv, resolveScriptDirs, planScriptRun, describePlan, confirmDialog, stableNodePath, withClaudeDesktopClosed, claudeDesktopRunning, canRestartClaudeDesktop, claudeDesktopStatus, connectClaudeDesktop, disconnectClaudeDesktop, claudeCodeStatus, connectClaudeCode, disconnectClaudeCode, } from '@lllanyard/core';
|
|
9
|
+
import { relayEnv, startEgressProxy, startProxy, startRelay } from '@lllanyard/proxy';
|
|
9
10
|
import { openBrowser, startUi } from '@lllanyard/ui';
|
|
10
|
-
const BOOL = new Set(['run', 'remove', 'restart', 'clear', 'stdin', 'allow-argv', 'import', 'redact', 'apply', 'json', 'help', 'allow-local', 'no-scrub', 'no-resolve', 'kill-on-leak', 'inherit-env', 'sandbox', 'no-open', 'print-url', 'overwrite', 'dry-run', 'allow-args']);
|
|
11
|
+
const BOOL = new Set(['no-keys', 'run', 'remove', 'restart', 'clear', 'stdin', 'allow-argv', 'import', 'redact', 'apply', 'json', 'help', 'allow-local', 'no-scrub', 'no-resolve', 'kill-on-leak', 'inherit-env', 'sandbox', 'no-open', 'print-url', 'overwrite', 'dry-run', 'allow-args']);
|
|
11
12
|
const MULTI = new Set(['scripts-dir', 'pin', 'env', 'allow-host', 'pass-env', 'share-ro', 'share-rw']);
|
|
12
13
|
function parse(argv) {
|
|
13
14
|
const pos = [];
|
|
@@ -39,7 +40,7 @@ const HELP = `${APP_NAME} - keep API keys out of AI agents
|
|
|
39
40
|
|
|
40
41
|
Keys
|
|
41
42
|
add <provider> [--label NAME] [--rotate-days N] [--env-name VAR] store a key (hidden prompt; or pipe it with --stdin)
|
|
42
|
-
env <provider>[:label] VAR | --clear the variable name tools get this key as (e.g.
|
|
43
|
+
env <provider>[:label] VAR | --clear the variable name tools get this key as (e.g. GITHUB_TOKEN)
|
|
43
44
|
list show stored keys and their variable names (never shows secrets)
|
|
44
45
|
remove <provider> [--label NAME]
|
|
45
46
|
rotate <provider> [--label NAME] replace a key and reset its rotation clock
|
|
@@ -47,10 +48,10 @@ Keys
|
|
|
47
48
|
|
|
48
49
|
Run scripts with your keys
|
|
49
50
|
exec <command> [args...] run a script with the keys it uses, e.g.
|
|
50
|
-
lllanyard exec pwsh -File
|
|
51
|
+
lllanyard exec pwsh -File Deploy-App.ps1 -DryRun
|
|
51
52
|
It reads the script (and helper files it names) for your keys' variable
|
|
52
53
|
names and passes only those. Keys are never printed: any in the output
|
|
53
|
-
are redacted. --keys
|
|
54
|
+
are redacted. --keys github,sendgrid -- <command> names them yourself.
|
|
54
55
|
|
|
55
56
|
Agents
|
|
56
57
|
agent create <name> [--client NAME] [--providers a,b] [--expires 30d] placeholder token; --providers limits what it can reach
|
|
@@ -59,7 +60,7 @@ Agents
|
|
|
59
60
|
Tools (GitHub, Slack, Stripe, your own APIs...)
|
|
60
61
|
provider add <id> --upstream https://api.x.com [--auth bearer|header] [--header NAME] [--prefix TXT] [--allow-local]
|
|
61
62
|
provider list | provider remove <id> custom API hosts the proxy may call with a stored key
|
|
62
|
-
tool add <name> --keys
|
|
63
|
+
tool add <name> --keys github,sendgrid [safeguards] -- <command> [args...]
|
|
63
64
|
approve a command (e.g. a script or MCP server) to receive keys;
|
|
64
65
|
--keys uses each key's variable name, --env VAR=provider[:label] picks one
|
|
65
66
|
safeguards: --allow-host api.x.com (repeat; limits where the tool can connect, best-effort)
|
|
@@ -101,9 +102,123 @@ Run
|
|
|
101
102
|
with keys injected and output redacted (default time limit 600s)
|
|
102
103
|
--scripts-dir DIR (repeat) also lets it run any script in DIR,
|
|
103
104
|
after you click Run in a dialog that shows the script and its keys
|
|
104
|
-
serve --host H --port P --tls-cert F --tls-key F --allow-host NAME share the proxy
|
|
105
|
+
serve --host H --port P --tls-cert F --tls-key F --allow-host NAME share the proxy: your own devices (Pro) or your team (Team)
|
|
106
|
+
team join <https://server:port> [--ca FILE] [--stdin] Team: keep personal keys here, use the team server for the rest
|
|
107
|
+
team status | team leave check or remove the link to the team server
|
|
108
|
+
|
|
109
|
+
Your own devices (Pro: up to 3; the keys stay on the main computer)
|
|
110
|
+
device add <name> [--no-keys] on the main computer: a one-time pairing code (10 minutes);
|
|
111
|
+
--no-keys: the device only goes through the proxy, never gets a key
|
|
112
|
+
device list | device remove <name> the paired devices; removing one frees its place
|
|
113
|
+
device join <https://main:port> [--ca FILE] on the other device: pair it (asks for the code)
|
|
114
|
+
device status | device leave on the other device: check or remove its pairing
|
|
115
|
+
exec --remote <command> [args...] on a paired device: run a command with the keys it needs, fetched from
|
|
116
|
+
the main computer for that run only (in memory, never saved)
|
|
117
|
+
relay [--port N] on a paired device: a local address for AI tools and apps, e.g. an editor
|
|
105
118
|
doctor check OS keychain and sandbox access
|
|
106
119
|
`;
|
|
120
|
+
/** Asks the team server who this token belongs to (no key is used). */
|
|
121
|
+
function teamWhoami(link) {
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
const u = new URL('/_lllanyard/whoami', link.url);
|
|
124
|
+
const req = https.request(u, { method: 'GET', headers: { authorization: `Bearer ${link.token}` }, timeout: 10_000, minVersion: 'TLSv1.2', ...(link.ca ? { ca: link.ca } : {}) }, (res) => {
|
|
125
|
+
let b = '';
|
|
126
|
+
res.on('data', (d) => (b += d));
|
|
127
|
+
res.on('end', () => {
|
|
128
|
+
if (res.statusCode === 200) {
|
|
129
|
+
try {
|
|
130
|
+
return resolve(JSON.parse(b));
|
|
131
|
+
}
|
|
132
|
+
catch { /* fall through */ }
|
|
133
|
+
}
|
|
134
|
+
reject(new Error(res.statusCode === 401 ? 'The team server did not accept that token.'
|
|
135
|
+
: res.statusCode === 403 ? 'The team server refused this address. Its --allow-host must include ' + u.hostname + '.'
|
|
136
|
+
: res.statusCode === 429 ? 'Too many wrong tokens from this address: the team server has locked it out for 15 minutes.'
|
|
137
|
+
: `The team server answered ${res.statusCode}. Is it running LLLanyard 0.1.4 or later?`));
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
req.on('timeout', () => req.destroy(new Error('No answer from the team server within 10 seconds.')));
|
|
141
|
+
req.on('error', (e) => reject(new Error(`Could not reach the team server: ${e.message}`)));
|
|
142
|
+
req.end();
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/** Asks the main computer who this device is, and the variable names of its keys. */
|
|
146
|
+
function deviceWhoami(link, machine) {
|
|
147
|
+
return new Promise((resolve, reject) => {
|
|
148
|
+
const u = new URL('/_lllanyard/whoami', link.url);
|
|
149
|
+
const req = https.request(u, { method: 'GET', headers: { authorization: `Bearer ${link.token}`, 'x-lllanyard-machine': machine }, timeout: 10_000, minVersion: 'TLSv1.2', ...(link.ca ? { ca: link.ca } : {}) }, (res) => {
|
|
150
|
+
let b = '';
|
|
151
|
+
res.on('data', (d) => (b += d));
|
|
152
|
+
res.on('end', () => {
|
|
153
|
+
if (res.statusCode === 200) {
|
|
154
|
+
try {
|
|
155
|
+
const v = JSON.parse(b);
|
|
156
|
+
return resolve({ name: v.name, vars: v.vars ?? {}, keys: v.keys === true });
|
|
157
|
+
}
|
|
158
|
+
catch { /* fall through */ }
|
|
159
|
+
}
|
|
160
|
+
let msg = '';
|
|
161
|
+
try {
|
|
162
|
+
msg = JSON.parse(b).error ?? '';
|
|
163
|
+
}
|
|
164
|
+
catch { /* */ }
|
|
165
|
+
reject(new Error(res.statusCode === 401 ? (msg || 'The main computer did not accept this device. It may have been removed: pair it again with lllanyard device join.')
|
|
166
|
+
: res.statusCode === 403 ? 'The main computer refused this address. Its --allow-host must include ' + u.hostname + '.'
|
|
167
|
+
: `The main computer answered ${res.statusCode}${msg ? `: ${msg}` : ''}.`));
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
req.on('timeout', () => req.destroy(new Error('No answer from the main computer within 10 seconds.')));
|
|
171
|
+
req.on('error', (e) => reject(new Error(`Could not reach the main computer: ${e.message}`)));
|
|
172
|
+
req.end();
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/** exec --remote: the keys for one run, by variable name, from the main computer. Never written anywhere. */
|
|
176
|
+
function fetchDeviceKeys(link, machine, vars, tool) {
|
|
177
|
+
return new Promise((resolve, reject) => {
|
|
178
|
+
const body = JSON.stringify({ vars, tool });
|
|
179
|
+
const req = https.request(new URL('/_lllanyard/keys', link.url), { method: 'POST', headers: { authorization: `Bearer ${link.token}`, 'x-lllanyard-machine': machine, 'content-type': 'application/json', 'content-length': Buffer.byteLength(body) }, timeout: 10_000, minVersion: 'TLSv1.2', ...(link.ca ? { ca: link.ca } : {}) }, (res) => {
|
|
180
|
+
let b = '';
|
|
181
|
+
res.on('data', (d) => (b += d));
|
|
182
|
+
res.on('end', () => {
|
|
183
|
+
let v = {};
|
|
184
|
+
try {
|
|
185
|
+
v = JSON.parse(b);
|
|
186
|
+
}
|
|
187
|
+
catch { /* */ }
|
|
188
|
+
if (res.statusCode === 200 && v.keys && typeof v.keys === 'object')
|
|
189
|
+
return resolve(v.keys);
|
|
190
|
+
reject(new Error(v.error ?? `The main computer answered ${res.statusCode}.`));
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
req.on('timeout', () => req.destroy(new Error('No answer from the main computer within 10 seconds.')));
|
|
194
|
+
req.on('error', (e) => reject(new Error(`Could not reach the main computer: ${e.message}`)));
|
|
195
|
+
req.end(body);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function pairDevice(url, code, machine, ca) {
|
|
199
|
+
return new Promise((resolve, reject) => {
|
|
200
|
+
const body = JSON.stringify({ code, machine });
|
|
201
|
+
const req = https.request(new URL('/_lllanyard/pair', url), { method: 'POST', headers: { 'content-type': 'application/json', 'content-length': Buffer.byteLength(body) }, timeout: 10_000, minVersion: 'TLSv1.2', ...(ca ? { ca } : {}) }, (res) => {
|
|
202
|
+
let b = '';
|
|
203
|
+
res.on('data', (d) => (b += d));
|
|
204
|
+
res.on('end', () => {
|
|
205
|
+
let v = {};
|
|
206
|
+
try {
|
|
207
|
+
v = JSON.parse(b);
|
|
208
|
+
}
|
|
209
|
+
catch { /* */ }
|
|
210
|
+
if (res.statusCode === 200 && typeof v.token === 'string')
|
|
211
|
+
return resolve(v);
|
|
212
|
+
reject(new Error(res.statusCode === 404 ? 'The main computer does not take devices. Is it running lllanyard serve, version 0.1.4 or later?'
|
|
213
|
+
: res.statusCode === 429 ? 'Too many wrong codes from this address: the main computer has locked it out for 15 minutes.'
|
|
214
|
+
: v.error ?? `The main computer answered ${res.statusCode}.`));
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
req.on('timeout', () => req.destroy(new Error('No answer from the main computer within 10 seconds.')));
|
|
218
|
+
req.on('error', (e) => reject(new Error(`Could not reach the main computer: ${e.message}`)));
|
|
219
|
+
req.end(body);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
107
222
|
async function readStdin() {
|
|
108
223
|
let s = '';
|
|
109
224
|
process.stdin.setEncoding('utf8');
|
|
@@ -264,7 +379,7 @@ async function main() {
|
|
|
264
379
|
case 'env': {
|
|
265
380
|
const ref = pos[0] ?? fail('Usage: lllanyard env <provider>[:label] VARIABLE_NAME (or --clear)');
|
|
266
381
|
const { provider: p, label: l } = parseKeyRef(ref);
|
|
267
|
-
const name = flags.clear ? undefined : pos[1] ?? fail('Give the variable name, e.g. lllanyard env
|
|
382
|
+
const name = flags.clear ? undefined : pos[1] ?? fail('Give the variable name, e.g. lllanyard env github GITHUB_TOKEN (or --clear)');
|
|
268
383
|
const m = store().setEnvName(p, l, name);
|
|
269
384
|
return out(m.envName ? `${m.id} is given to tools as ${m.envName}.` : `${m.id} has no variable name now.`);
|
|
270
385
|
}
|
|
@@ -408,19 +523,28 @@ async function main() {
|
|
|
408
523
|
return fail('Usage: lllanyard tool add|list|remove');
|
|
409
524
|
}
|
|
410
525
|
case 'exec': {
|
|
411
|
-
// Everything after "exec" (and
|
|
526
|
+
// Everything after "exec" (and optional "--remote" / "--keys a,b") is the command, passed through untouched.
|
|
412
527
|
let argv = process.argv.slice(3);
|
|
413
528
|
let only;
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
argv
|
|
529
|
+
let remote = false;
|
|
530
|
+
for (;;) {
|
|
531
|
+
if (argv[0] === '--remote') {
|
|
532
|
+
remote = true;
|
|
533
|
+
argv = argv.slice(1);
|
|
534
|
+
continue;
|
|
535
|
+
}
|
|
536
|
+
if (argv[0] === '--keys') {
|
|
537
|
+
only = (argv[1] ?? '').split(',').map((x) => x.trim()).filter(Boolean);
|
|
538
|
+
argv = argv.slice(2);
|
|
539
|
+
continue;
|
|
540
|
+
}
|
|
541
|
+
break;
|
|
417
542
|
}
|
|
418
543
|
if (argv[0] === '--')
|
|
419
544
|
argv = argv.slice(1);
|
|
420
545
|
const [command, ...args] = argv;
|
|
421
546
|
if (!command)
|
|
422
|
-
fail('Usage: lllanyard exec <command> [args...] e.g. lllanyard exec pwsh -File ./
|
|
423
|
-
const keys = store();
|
|
547
|
+
fail('Usage: lllanyard exec <command> [args...] e.g. lllanyard exec pwsh -File ./Deploy-App.ps1 -DryRun\n lllanyard exec --keys github,sendgrid -- <command> [args...] to name the keys yourself\n lllanyard exec --remote <command> [args...] on a paired device: keys from your main computer');
|
|
424
548
|
// The script being run: the file after an interpreter (python3 x.py, pwsh -File x.ps1), or the command itself.
|
|
425
549
|
let script = null;
|
|
426
550
|
try {
|
|
@@ -435,19 +559,67 @@ async function main() {
|
|
|
435
559
|
}
|
|
436
560
|
catch { /* not a file */ }
|
|
437
561
|
}
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
562
|
+
const what = path.basename(command) + (script && path.resolve(command) !== script ? ` ${path.basename(script)}` : '');
|
|
563
|
+
/** VAR → provider[:label] for the keys this command needs, out of `all`. */
|
|
564
|
+
const pick = (all, named) => {
|
|
565
|
+
if (only)
|
|
566
|
+
return named(only);
|
|
442
567
|
if (!script)
|
|
443
|
-
fail(`Can't tell which keys "${command}" needs (it isn't a script file). Name them: lllanyard exec --keys
|
|
444
|
-
const all = bindingsForAllKeys(keys);
|
|
568
|
+
fail(`Can't tell which keys "${command}" needs (it isn't a script file). Name them: lllanyard exec ${remote ? '--remote ' : ''}--keys github,sendgrid -- ${command} ...`);
|
|
445
569
|
const { needed, files } = neededEnv(script, Object.keys(all));
|
|
446
|
-
env = Object.fromEntries(needed.map((n) => [n, all[n]]));
|
|
447
570
|
const shown = files.map((f) => path.basename(f));
|
|
448
571
|
process.stderr.write(`lllanyard: giving ${needed.length ? needed.join(', ') : 'no keys'} (checked ${shown.slice(0, 4).join(', ')}${shown.length > 4 ? ` +${shown.length - 4} more` : ''})\n`);
|
|
572
|
+
return Object.fromEntries(needed.map((n) => [n, all[n]]));
|
|
573
|
+
};
|
|
574
|
+
if (remote) {
|
|
575
|
+
// A paired device. No keys are stored here: the main computer sends the ones this run needs, they live only in
|
|
576
|
+
// this command's environment (in memory, output redacted), and are gone when it ends. Nothing is cached.
|
|
577
|
+
const link = new RemoteStore().get() ?? fail('This computer is not paired with your main computer. See: lllanyard device join');
|
|
578
|
+
const machine = machineId();
|
|
579
|
+
const who = await deviceWhoami(link, machine).catch((e) => fail(e.message));
|
|
580
|
+
const host = new URL(link.url).hostname;
|
|
581
|
+
if (who.keys) {
|
|
582
|
+
const env = pick(who.vars, (providers) => {
|
|
583
|
+
const want = new Set(providers.map((p) => p.toLowerCase()));
|
|
584
|
+
const m = Object.fromEntries(Object.entries(who.vars).filter(([, ref]) => want.has(ref.toLowerCase()) || want.has(ref.split(':')[0].toLowerCase())));
|
|
585
|
+
const missing = [...want].filter((p) => !Object.values(m).some((ref) => ref.toLowerCase() === p || ref.split(':')[0].toLowerCase() === p));
|
|
586
|
+
if (missing.length)
|
|
587
|
+
fail(`Your main computer has no key with a variable name for ${missing.join(', ')}. On the main computer: lllanyard env <provider> VAR`);
|
|
588
|
+
return m;
|
|
589
|
+
});
|
|
590
|
+
let leased = Object.keys(env).length ? await fetchDeviceKeys(link, machine, Object.keys(env), what).catch((e) => fail(e.message)) : {};
|
|
591
|
+
const got = Object.keys(leased);
|
|
592
|
+
const gone = Object.keys(env).filter((v) => !got.includes(v));
|
|
593
|
+
if (gone.length)
|
|
594
|
+
fail(`Your main computer did not send ${gone.join(', ')} (the key may have been removed there).`);
|
|
595
|
+
process.stderr.write(`lllanyard: ${got.length ? `${got.join(', ')} from ${host}, for this run only` : `no keys needed from ${host}`}\n`);
|
|
596
|
+
const byRef = new Map(Object.entries(env).map(([v, ref]) => [ref, leased[v]]));
|
|
597
|
+
try {
|
|
598
|
+
process.exitCode = await runTool({ command, args, env, scrub: true, inheritEnv: true }, {
|
|
599
|
+
store: { get: (p, l) => byRef.get(l === 'default' ? p : `${p}:${l}`) ?? byRef.get(`${p}:${l}`) ?? null },
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
finally {
|
|
603
|
+
byRef.clear();
|
|
604
|
+
leased = {};
|
|
605
|
+
}
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
// Paired with --no-keys: tools reach the main computer's proxy through a relay for this run only.
|
|
609
|
+
const localToken = 'lly_run_' + (await import('node:crypto')).randomBytes(24).toString('base64url');
|
|
610
|
+
const relay = await startRelay({ url: link.url, deviceToken: link.token, machine, ca: link.ca, localToken });
|
|
611
|
+
process.stderr.write(`lllanyard: through the proxy on ${host} (this device does not receive keys); scripts must use LLLANYARD_<PROVIDER>_URL\n`);
|
|
612
|
+
try {
|
|
613
|
+
const env = { ...process.env, ...relayEnv(relay.base, localToken, who.vars) };
|
|
614
|
+
process.exitCode = await runTool({ command, args, env: {}, scrub: true, inheritEnv: true }, { store: { get: () => null }, env });
|
|
615
|
+
}
|
|
616
|
+
finally {
|
|
617
|
+
relay.close();
|
|
618
|
+
}
|
|
619
|
+
return;
|
|
449
620
|
}
|
|
450
|
-
const
|
|
621
|
+
const keys = store();
|
|
622
|
+
const env = only ? bindingsForKeys(only, keys) : pick(bindingsForAllKeys(keys), () => ({}));
|
|
451
623
|
createUsageLog().write({ ts: new Date().toISOString(), event: 'exec', tool: what, cwd: process.cwd(), keys: Object.keys(env) });
|
|
452
624
|
process.exitCode = await runTool({ command, args, env, scrub: true, inheritEnv: true }, { store: keys });
|
|
453
625
|
return;
|
|
@@ -555,8 +727,14 @@ async function main() {
|
|
|
555
727
|
const port = str(flags.port) ? Number(str(flags.port)) : 3443;
|
|
556
728
|
const s = await startProxy({ port, host, tls, allowedHosts: allowed });
|
|
557
729
|
out(`${APP_NAME} shared proxy on ${tls ? 'https' : 'http'}://${host}:${s.port} (hosts: ${allowed?.join(', ') ?? 'loopback'}). Keys stay in this computer's keychain.`);
|
|
558
|
-
|
|
559
|
-
|
|
730
|
+
if (new LicenseStore().status().tier === 'pro') {
|
|
731
|
+
out('Pro: your own devices, up to 3. Pair each one: lllanyard device add <name>, then on the device: lllanyard device join');
|
|
732
|
+
out('Agent tokens made here work on this computer only. To share with other people, they need Team seats.');
|
|
733
|
+
}
|
|
734
|
+
else {
|
|
735
|
+
out(`Other devices use: base URL https://${allowed?.[0] ?? host}:${s.port}/openai/v1 with their own agent token as the API key.`);
|
|
736
|
+
out('Create a token per AI tool: lllanyard agent create laptop-claude-code --client acme --expires 90d');
|
|
737
|
+
}
|
|
560
738
|
process.on('SIGINT', () => { s.close(); process.exit(0); });
|
|
561
739
|
return;
|
|
562
740
|
}
|
|
@@ -584,7 +762,11 @@ async function main() {
|
|
|
584
762
|
out('\nScripts run with your keys (lllanyard exec)');
|
|
585
763
|
for (const r of sum.scriptRuns)
|
|
586
764
|
out(` ${r.tool.padEnd(22).slice(0, 22)} ${String(r.count).padStart(5)}x last ${r.last.slice(0, 16).replace('T', ' ')} UTC`);
|
|
587
|
-
if (
|
|
765
|
+
if (sum.deviceKeys.length)
|
|
766
|
+
out('\nKeys sent to your paired devices (exec --remote)');
|
|
767
|
+
for (const r of sum.deviceKeys)
|
|
768
|
+
out(` ${r.device.padEnd(16).slice(0, 16)} ${(r.keys.join(', ') || 'none').padEnd(28).slice(0, 28)} ${r.tool.padEnd(22).slice(0, 22)} ${String(r.count).padStart(4)}x last ${r.last.slice(0, 16).replace('T', ' ')} UTC`);
|
|
769
|
+
if (!sum.requests && !sum.scriptRuns.length && !sum.deviceKeys.length)
|
|
588
770
|
out('\nNo requests recorded yet. Start the proxy with: lllanyard start');
|
|
589
771
|
return out('\nVisual dashboard (Pro): lllanyard dashboard');
|
|
590
772
|
}
|
|
@@ -600,6 +782,121 @@ async function main() {
|
|
|
600
782
|
writeFileSync(file, html, { mode: 0o600 });
|
|
601
783
|
return out(`Dashboard written to ${file}. Open it in your browser (it is self-contained and makes no network requests).`);
|
|
602
784
|
}
|
|
785
|
+
case 'team': {
|
|
786
|
+
const sub = pos[0];
|
|
787
|
+
const teams = new TeamStore();
|
|
788
|
+
if (sub === 'join') {
|
|
789
|
+
if (new LicenseStore().status().tier !== 'team')
|
|
790
|
+
fail('Linking to a team server is a Team feature. Activate your Team license first: lllanyard license activate');
|
|
791
|
+
const url = normaliseTeamUrl(pos[1] ?? fail('Usage: lllanyard team join https://keys.example.com:3443 [--ca ca.pem] [--stdin]'));
|
|
792
|
+
const caFile = str(flags.ca);
|
|
793
|
+
const ca = caFile ? readFileSync(caFile, 'utf8') : undefined;
|
|
794
|
+
const token = (await readSecret('Your team token from the team admin (lly_…, input hidden): ', Boolean(flags.stdin))).trim();
|
|
795
|
+
const who = await teamWhoami({ url, token, ca }).catch((e) => fail(e.message));
|
|
796
|
+
teams.set({ url, token, ca });
|
|
797
|
+
out(`Linked to ${url} as "${who.name}"${who.providers ? ` (providers: ${who.providers.join(', ')})` : ''}.`);
|
|
798
|
+
out('Keys you add here stay personal and never leave this computer. Anything you have no key for here goes to the team server.');
|
|
799
|
+
return out('Restart the proxy (lllanyard start, serve or ui) if it is running; it also picks this up within 10 seconds.');
|
|
800
|
+
}
|
|
801
|
+
if (sub === 'leave')
|
|
802
|
+
return out(teams.remove() ? 'Link to the team server removed. Only your personal keys are used now.' : 'Not linked to a team server.');
|
|
803
|
+
if (sub === 'status' || sub === undefined) {
|
|
804
|
+
const link = teams.get();
|
|
805
|
+
if (!link)
|
|
806
|
+
return out('Not linked to a team server. Team members: lllanyard team join https://keys.example.com:3443');
|
|
807
|
+
out(`Team server: ${link.url} (linked ${link.joinedAt.slice(0, 10)}${link.ca ? ', private CA' : ''}).`);
|
|
808
|
+
if (new LicenseStore().status().tier !== 'team')
|
|
809
|
+
out('Not in use: this computer has no active Team license.');
|
|
810
|
+
const who = await teamWhoami(link).catch((e) => { process.exitCode = 1; out(`Problem: ${e.message}`); return null; });
|
|
811
|
+
if (who)
|
|
812
|
+
out(`The team server knows this computer as "${who.name}"${who.providers ? ` (providers: ${who.providers.join(', ')})` : ''}.`);
|
|
813
|
+
return out('Personal keys (here): ' + (store().list().map((k) => k.label === 'default' ? k.provider : `${k.provider}:${k.label}`).join(', ') || 'none') + '. Everything else goes to the team server.');
|
|
814
|
+
}
|
|
815
|
+
return fail('Usage: lllanyard team join <url> | team status | team leave');
|
|
816
|
+
}
|
|
817
|
+
case 'device': {
|
|
818
|
+
const [sub, arg] = pos;
|
|
819
|
+
const devices = new DeviceStore();
|
|
820
|
+
const tier = new LicenseStore().status().tier;
|
|
821
|
+
const limit = DEVICE_LIMITS[tier];
|
|
822
|
+
if (sub === 'add') {
|
|
823
|
+
if (!arg)
|
|
824
|
+
fail('Usage: lllanyard device add <name> e.g. lllanyard device add work-laptop');
|
|
825
|
+
const { code, expires } = devices.invite(arg, limit, { noKeys: Boolean(flags['no-keys']) });
|
|
826
|
+
out(`Pairing code for "${arg.toLowerCase()}" (works once, until ${expires.slice(11, 16)} UTC):\n\n ${code}\n`);
|
|
827
|
+
out('On that device, with LLLanyard installed, run:\n\n lllanyard device join https://<this computer>:<port>\n');
|
|
828
|
+
out(flags['no-keys'] ? 'This computer must be running lllanyard serve. The device will only go through this proxy and never receives a key.'
|
|
829
|
+
: 'This computer must be running lllanyard serve. Nothing is copied to the device: lllanyard exec --remote there gets the keys a command needs for that run only.');
|
|
830
|
+
return out(Number.isFinite(limit) ? `Devices: ${devices.used()} of ${limit} (including this code until it is used or runs out).` : '');
|
|
831
|
+
}
|
|
832
|
+
if (sub === 'list' || sub === undefined) {
|
|
833
|
+
const l = devices.list();
|
|
834
|
+
if (!l.length)
|
|
835
|
+
out('No devices paired. Pair one: lllanyard device add <name>');
|
|
836
|
+
for (const d of l)
|
|
837
|
+
out(`${d.name.padEnd(24)} ${d.pending ? `waiting for its code (until ${d.expires.slice(11, 16)} UTC)` : `paired ${day(d.pairedAt)}`}${d.keys ? '' : ' (proxy only, no keys)'}`);
|
|
838
|
+
if (Number.isFinite(limit) && limit > 0)
|
|
839
|
+
out(`\n${l.length} of ${limit} devices${l.length > limit ? ` (only the first ${limit} paired work on your plan)` : ''}.`);
|
|
840
|
+
const remote = new RemoteStore().get();
|
|
841
|
+
if (remote)
|
|
842
|
+
out(`\nThis computer is itself paired with ${remote.url} as "${remote.name}".`);
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
if (sub === 'remove') {
|
|
846
|
+
if (!arg)
|
|
847
|
+
fail('Usage: lllanyard device remove <name>');
|
|
848
|
+
return out(devices.remove(arg) ? `Removed ${arg}. It stops working within about 10 seconds; its place is free.` : 'No such device.');
|
|
849
|
+
}
|
|
850
|
+
if (sub === 'join') {
|
|
851
|
+
const url = normaliseTeamUrl(arg ?? fail('Usage: lllanyard device join https://main-computer:3443 [--ca ca.pem]'));
|
|
852
|
+
const caFile = str(flags.ca);
|
|
853
|
+
const ca = caFile ? readFileSync(caFile, 'utf8') : undefined;
|
|
854
|
+
const code = (await readSecret('Pairing code from the main computer (lllanyard device add): ', Boolean(flags.stdin))).trim();
|
|
855
|
+
const machine = machineId();
|
|
856
|
+
const r = await pairDevice(url, code, machine, ca).catch((e) => fail(e.message));
|
|
857
|
+
const remote = new RemoteStore();
|
|
858
|
+
remote.set({ url, token: r.token, name: r.name, ...(ca ? { ca } : {}) });
|
|
859
|
+
const who = await deviceWhoami({ url, token: r.token, ca }, machine).catch(() => ({ name: r.name, vars: {} }));
|
|
860
|
+
out(`Paired with ${url} as "${r.name}". No API keys are stored on this computer.`);
|
|
861
|
+
if (Object.keys(who.vars).length)
|
|
862
|
+
out(`Keys you can use: ${Object.keys(who.vars).join(', ')}.`);
|
|
863
|
+
out('\nRun a script or tool with them: lllanyard exec --remote <command> [args...]');
|
|
864
|
+
return out('Give an app a fixed local address: lllanyard relay');
|
|
865
|
+
}
|
|
866
|
+
if (sub === 'status') {
|
|
867
|
+
const link = new RemoteStore().get();
|
|
868
|
+
if (!link)
|
|
869
|
+
return out('This computer is not paired with a main computer. See: lllanyard device join');
|
|
870
|
+
out(`Paired with ${link.url} as "${link.name}" (since ${day(link.pairedAt)}${link.ca ? ', private CA' : ''}).`);
|
|
871
|
+
const who = await deviceWhoami(link, machineId()).catch((e) => { process.exitCode = 1; out(`Problem: ${e.message}`); return null; });
|
|
872
|
+
if (who)
|
|
873
|
+
out(`Working. Keys you can use: ${Object.keys(who.vars).join(', ') || 'none with a variable name yet (set one on the main computer: lllanyard env <provider> VAR)'}.`);
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
876
|
+
if (sub === 'leave')
|
|
877
|
+
return out(new RemoteStore().remove() ? 'Pairing removed from this computer. Also free its place on the main computer: lllanyard device remove <name>' : 'This computer is not paired.');
|
|
878
|
+
return fail('Usage: lllanyard device add|list|remove (main computer) or device join|status|leave (other device)');
|
|
879
|
+
}
|
|
880
|
+
case 'relay': {
|
|
881
|
+
const remote = new RemoteStore();
|
|
882
|
+
const link = remote.get() ?? fail('This computer is not paired with your main computer. See: lllanyard device join');
|
|
883
|
+
const machine = machineId();
|
|
884
|
+
const who = await deviceWhoami(link, machine).catch((e) => fail(e.message));
|
|
885
|
+
const localToken = remote.relayToken();
|
|
886
|
+
const port = str(flags.port) ? Number(str(flags.port)) : DEFAULT_PORT;
|
|
887
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535)
|
|
888
|
+
fail('Invalid port');
|
|
889
|
+
const relay = await startRelay({ url: link.url, deviceToken: link.token, machine, ca: link.ca, localToken, port });
|
|
890
|
+
out(`${APP_NAME} relay on ${relay.base}: requests go to ${link.url} as "${who.name}". Ctrl+C to stop.\n`);
|
|
891
|
+
out('Point your AI tools and apps here. Use this as the API key (it works on this computer only, through the relay):\n');
|
|
892
|
+
out(` ${localToken}\n`);
|
|
893
|
+
const env = relayEnv(relay.base, localToken, who.vars);
|
|
894
|
+
for (const [k, v] of Object.entries(env))
|
|
895
|
+
if (k.endsWith('_URL'))
|
|
896
|
+
out(process.platform === 'win32' ? ` $env:${k}="${v}"` : ` export ${k}=${v}`);
|
|
897
|
+
process.on('SIGINT', () => { relay.close(); process.exit(0); });
|
|
898
|
+
return;
|
|
899
|
+
}
|
|
603
900
|
case 'license': {
|
|
604
901
|
const [sub] = pos;
|
|
605
902
|
const ls = new LicenseStore();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lllanyard/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Keep API keys out of AI agents: keys live in your OS keychain and agents only see placeholder tokens.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"dist"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@lllanyard/core": "^0.1.
|
|
14
|
-
"@lllanyard/proxy": "^0.1.
|
|
15
|
-
"@lllanyard/ui": "^0.1.
|
|
13
|
+
"@lllanyard/core": "^0.1.4",
|
|
14
|
+
"@lllanyard/proxy": "^0.1.4",
|
|
15
|
+
"@lllanyard/ui": "^0.1.4"
|
|
16
16
|
},
|
|
17
17
|
"license": "BUSL-1.1",
|
|
18
18
|
"engines": {
|