claude-use 6.0.0 → 6.1.0
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 +2 -2
- package/dist/cli.cjs +20 -10
- package/dist/index.cjs +5 -1
- package/dist/index.mjs +5 -1
- package/dist/types/config/schema.d.ts +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -79,7 +79,7 @@ claude-use identity resolve-conflicts <name> # interactively resolve a retained
|
|
|
79
79
|
claude-use profile add [name] [--extends <profile>]... [--description <text>] # interactive with no options on a terminal
|
|
80
80
|
claude-use profile set <name> [--category <category>=<bool>]... [--entry <category>/<path>=<bool>]...
|
|
81
81
|
claude-use profile set <name> [--extends <profile>]... [--no-extends] [--description <text> | --no-description]
|
|
82
|
-
claude-use profile set <name> [--[no-]launch-skip-permissions] [--[no-]launch-remote-control] [--[no-]launch-headroom]
|
|
82
|
+
claude-use profile set <name> [--[no-]launch-skip-permissions] [--[no-]launch-remote-control] [--[no-]launch-headroom] [--[no-]launch-track-usage]
|
|
83
83
|
claude-use profile set <name> [--launch-provider <provider> | --no-launch-provider]
|
|
84
84
|
claude-use profile list [--json]
|
|
85
85
|
claude-use profile show <name> [--json]
|
|
@@ -116,7 +116,7 @@ claude-use run [@<identity>] [launch flags] [claude arguments]
|
|
|
116
116
|
# launch flags, recognised only before a `--` terminator:
|
|
117
117
|
# --identity <name> --config-profile <name> --provider <name> | --no-provider
|
|
118
118
|
# --category <category>=<bool> --share <category>/<path> --hide <category>/<path> (each repeatable)
|
|
119
|
-
# --[no-]skip-permissions --[no-]remote-control --[no-]headroom
|
|
119
|
+
# --[no-]skip-permissions --[no-]remote-control --[no-]headroom --[no-]track-usage
|
|
120
120
|
claude @<identity> ... # the same, once `claude-use shim enable` has run
|
|
121
121
|
```
|
|
122
122
|
|
package/dist/cli.cjs
CHANGED
|
@@ -55164,7 +55164,8 @@ var LaunchSchema = external_exports.strictObject({
|
|
|
55164
55164
|
skipPermissions: external_exports.boolean().optional(),
|
|
55165
55165
|
remoteControl: external_exports.boolean().optional(),
|
|
55166
55166
|
provider: external_exports.string().min(1).optional(),
|
|
55167
|
-
headroom: external_exports.boolean().optional()
|
|
55167
|
+
headroom: external_exports.boolean().optional(),
|
|
55168
|
+
trackUsage: external_exports.boolean().optional()
|
|
55168
55169
|
});
|
|
55169
55170
|
var CREDENTIAL_TARGETS = ["bearer", "apiKey", "oauthToken"];
|
|
55170
55171
|
var PROVIDER_CREDENTIAL_TARGETS = ["bearer", "apiKey"];
|
|
@@ -58105,6 +58106,9 @@ function flattenLayers(layers, options) {
|
|
|
58105
58106
|
if (layer.launch.headroom !== void 0) {
|
|
58106
58107
|
launch.headroom = layer.launch.headroom;
|
|
58107
58108
|
}
|
|
58109
|
+
if (layer.launch.trackUsage !== void 0) {
|
|
58110
|
+
launch.trackUsage = layer.launch.trackUsage;
|
|
58111
|
+
}
|
|
58108
58112
|
}
|
|
58109
58113
|
if (layer.entries === void 0) {
|
|
58110
58114
|
continue;
|
|
@@ -59503,6 +59507,9 @@ function applyProfileSet(paths, name, options) {
|
|
|
59503
59507
|
if (options.launchHeadroom !== void 0) {
|
|
59504
59508
|
launchPatch.headroom = options.launchHeadroom;
|
|
59505
59509
|
}
|
|
59510
|
+
if (options.launchTrackUsage !== void 0) {
|
|
59511
|
+
launchPatch.trackUsage = options.launchTrackUsage;
|
|
59512
|
+
}
|
|
59506
59513
|
if (options.launchProvider !== void 0) {
|
|
59507
59514
|
launchPatch.provider = options.launchProvider === false ? void 0 : options.launchProvider;
|
|
59508
59515
|
}
|
|
@@ -59542,7 +59549,7 @@ function registerProfileCommand(program2, deps) {
|
|
|
59542
59549
|
withExamples(
|
|
59543
59550
|
profile.command("set <name>").description(
|
|
59544
59551
|
"Update a configuration profile's categories, entries, extends list, description or launch settings. With no options on a terminal, walks through its categories."
|
|
59545
|
-
).option("--category <category=bool>", "Share (true) or hide (false) a whole category (repeatable).", collectBoolPair).option("--entry <path=bool>", "Share (true) or hide (false) one <category>/<path> entry (repeatable).", collectBoolPair).option("--extends <profile>", "Replace the extends list with these profiles (repeatable, in order).", collectRepeated).option("--no-extends", "Clear the extends list.").option("--description <text>", "Replace the description.").option("--no-description", "Clear the description.").option("--launch-skip-permissions", "Launches under this profile skip permission prompts.").option("--no-launch-skip-permissions", "Launches under this profile keep permission prompts.").option("--launch-remote-control", "Launches under this profile enable Remote Control.").option("--no-launch-remote-control", "Launches under this profile leave Remote Control off.").option("--launch-headroom", "Launches under this profile route through headroom.").option("--no-launch-headroom", "Launches under this profile route direct.").option("--launch-provider <provider>", "Launches under this profile route through this provider.").option("--no-launch-provider", "Clear this profile's provider selection.").action(async (name, options) => {
|
|
59552
|
+
).option("--category <category=bool>", "Share (true) or hide (false) a whole category (repeatable).", collectBoolPair).option("--entry <path=bool>", "Share (true) or hide (false) one <category>/<path> entry (repeatable).", collectBoolPair).option("--extends <profile>", "Replace the extends list with these profiles (repeatable, in order).", collectRepeated).option("--no-extends", "Clear the extends list.").option("--description <text>", "Replace the description.").option("--no-description", "Clear the description.").option("--launch-skip-permissions", "Launches under this profile skip permission prompts.").option("--no-launch-skip-permissions", "Launches under this profile keep permission prompts.").option("--launch-remote-control", "Launches under this profile enable Remote Control.").option("--no-launch-remote-control", "Launches under this profile leave Remote Control off.").option("--launch-headroom", "Launches under this profile route through headroom.").option("--no-launch-headroom", "Launches under this profile route direct.").option("--launch-track-usage", "Launches under this profile route through the front door so their requests and quota are recorded, with no headroom needed.").option("--no-launch-track-usage", "Launches under this profile are not recorded unless a provider or headroom routes them anyway.").option("--launch-provider <provider>", "Launches under this profile route through this provider.").option("--no-launch-provider", "Clear this profile's provider selection.").action(async (name, options) => {
|
|
59546
59553
|
requireProfileExists(paths, name);
|
|
59547
59554
|
if (Object.values(options).every((value) => value === void 0)) {
|
|
59548
59555
|
if (!deps.isInteractive()) {
|
|
@@ -60901,7 +60908,7 @@ function resolveLaunchIdentity(paths, cwd) {
|
|
|
60901
60908
|
// package.json
|
|
60902
60909
|
var package_default = {
|
|
60903
60910
|
name: "claude-use",
|
|
60904
|
-
version: "6.
|
|
60911
|
+
version: "6.1.0",
|
|
60905
60912
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
60906
60913
|
license: "Apache-2.0",
|
|
60907
60914
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -66360,6 +66367,7 @@ var ConflictingIdentityError = class extends UsageError {
|
|
|
66360
66367
|
var VALUED_FLAGS = ["--identity", "--config-profile", "--provider", "--category", "--share", "--hide"];
|
|
66361
66368
|
var BOOLEAN_FLAGS = [
|
|
66362
66369
|
{ flag: "--headroom", key: "headroom" },
|
|
66370
|
+
{ flag: "--track-usage", key: "trackUsage" },
|
|
66363
66371
|
{ flag: "--skip-permissions", key: "skipPermissions" },
|
|
66364
66372
|
{ flag: "--remote-control", key: "remoteControl" }
|
|
66365
66373
|
];
|
|
@@ -67955,7 +67963,7 @@ function formatUsageReport(report) {
|
|
|
67955
67963
|
}
|
|
67956
67964
|
}
|
|
67957
67965
|
if (lines.length === 1) {
|
|
67958
|
-
lines.push("no usage recorded (only sessions routed through the front door are recorded: provider launches
|
|
67966
|
+
lines.push("no usage recorded (only sessions routed through the front door are recorded: provider launches, --headroom launches, and launches with --track-usage)");
|
|
67959
67967
|
}
|
|
67960
67968
|
if (report.invalidLines > 0) {
|
|
67961
67969
|
lines.push(`warning: ${String(report.invalidLines)} log line(s) could not be read as usage records and were skipped`);
|
|
@@ -68092,11 +68100,11 @@ Launching:
|
|
|
68092
68100
|
--provider <name> route through an API provider; --no-provider opts out
|
|
68093
68101
|
--category <category=bool> share or hide a category (repeatable)
|
|
68094
68102
|
--share <path>, --hide <path> share or hide one <category>/<path> entry (repeatable)
|
|
68095
|
-
--[no-]skip-permissions, --[no-]remote-control, --[no-]headroom
|
|
68103
|
+
--[no-]skip-permissions, --[no-]remote-control, --[no-]headroom, --[no-]track-usage
|
|
68096
68104
|
|
|
68097
68105
|
Environment:
|
|
68098
68106
|
CLAUDE_USE_IDENTITY, CLAUDE_USE_CONFIG_PROFILE, CLAUDE_USE_SKIP_PERMISSIONS,
|
|
68099
|
-
CLAUDE_USE_REMOTE_CONTROL, CLAUDE_USE_HEADROOM, CLAUDE_USE_ALLOW_AMBIENT_CREDENTIAL,
|
|
68107
|
+
CLAUDE_USE_REMOTE_CONTROL, CLAUDE_USE_HEADROOM, CLAUDE_USE_TRACK_USAGE, CLAUDE_USE_ALLOW_AMBIENT_CREDENTIAL,
|
|
68100
68108
|
CLAUDE_USE_CATEGORY_OVERRIDE, CLAUDE_USE_ENTRY_OVERRIDE, CLAUDE_USE_HOME,
|
|
68101
68109
|
CLAUDE_USE_DEBUG (print stack traces), NO_COLOR. Booleans are true, false, 1 or 0.
|
|
68102
68110
|
|
|
@@ -68258,7 +68266,8 @@ function resolveLaunchFlags(params) {
|
|
|
68258
68266
|
return {
|
|
68259
68267
|
skipPermissions: params.flags?.skipPermissions ?? parseEnvBool("CLAUDE_USE_SKIP_PERMISSIONS", params.env.CLAUDE_USE_SKIP_PERMISSIONS) ?? params.cascade?.skipPermissions ?? false,
|
|
68260
68268
|
remoteControl: params.flags?.remoteControl ?? parseEnvBool("CLAUDE_USE_REMOTE_CONTROL", params.env.CLAUDE_USE_REMOTE_CONTROL) ?? params.cascade?.remoteControl ?? false,
|
|
68261
|
-
headroom: params.flags?.headroom ?? parseEnvBool("CLAUDE_USE_HEADROOM", params.env.CLAUDE_USE_HEADROOM) ?? params.cascade?.headroom ?? false
|
|
68269
|
+
headroom: params.flags?.headroom ?? parseEnvBool("CLAUDE_USE_HEADROOM", params.env.CLAUDE_USE_HEADROOM) ?? params.cascade?.headroom ?? false,
|
|
68270
|
+
trackUsage: params.flags?.trackUsage ?? parseEnvBool("CLAUDE_USE_TRACK_USAGE", params.env.CLAUDE_USE_TRACK_USAGE) ?? params.cascade?.trackUsage ?? false
|
|
68262
68271
|
};
|
|
68263
68272
|
}
|
|
68264
68273
|
function buildFlagArgs(flags) {
|
|
@@ -68593,11 +68602,12 @@ function runLauncher(params) {
|
|
|
68593
68602
|
flags: {
|
|
68594
68603
|
...parsedArgv.skipPermissions === void 0 ? {} : { skipPermissions: parsedArgv.skipPermissions },
|
|
68595
68604
|
...parsedArgv.remoteControl === void 0 ? {} : { remoteControl: parsedArgv.remoteControl },
|
|
68596
|
-
...parsedArgv.headroom === void 0 ? {} : { headroom: parsedArgv.headroom }
|
|
68605
|
+
...parsedArgv.headroom === void 0 ? {} : { headroom: parsedArgv.headroom },
|
|
68606
|
+
...parsedArgv.trackUsage === void 0 ? {} : { trackUsage: parsedArgv.trackUsage }
|
|
68597
68607
|
}
|
|
68598
68608
|
});
|
|
68599
68609
|
const frontDoorPort = params.frontdoor;
|
|
68600
|
-
const frontDoorEngaged = resolvedProvider !== void 0 || resolvedFlags.headroom;
|
|
68610
|
+
const frontDoorEngaged = resolvedProvider !== void 0 || resolvedFlags.headroom || resolvedFlags.trackUsage;
|
|
68601
68611
|
if (frontDoorEngaged && frontDoorPort === void 0) {
|
|
68602
68612
|
log.error("claude-use: this launch routes through the front-door daemon, but this launcher has no front-door port wired; refusing to launch without it.");
|
|
68603
68613
|
proc.exit(1);
|
|
@@ -68620,7 +68630,7 @@ function runLauncher(params) {
|
|
|
68620
68630
|
log.error("claude-use: headroom routing was requested but this launcher has no headroom port wired; refusing to launch without it.");
|
|
68621
68631
|
proc.exit(1);
|
|
68622
68632
|
} else if (frontDoor !== void 0) {
|
|
68623
|
-
log.info(`claude-use: routing through the front door on 127.0.0.1:${String(frontDoor.port)}${resolvedProvider === void 0 ?
|
|
68633
|
+
log.info(`claude-use: routing through the front door on 127.0.0.1:${String(frontDoor.port)}${resolvedProvider === void 0 ? ` (OAuth via the door's CONNECT surface on 127.0.0.1:${String(frontDoor.connectPort)}, usage recorded)` : ` (provider ${resolvedProvider.name})`}`);
|
|
68624
68634
|
}
|
|
68625
68635
|
const frontDoorRelease = frontDoor === void 0 ? void 0 : frontDoorPort?.release;
|
|
68626
68636
|
const finalArgv = buildArgv({
|
package/dist/index.cjs
CHANGED
|
@@ -120,7 +120,8 @@ var LaunchSchema = import_zod.z.strictObject({
|
|
|
120
120
|
skipPermissions: import_zod.z.boolean().optional(),
|
|
121
121
|
remoteControl: import_zod.z.boolean().optional(),
|
|
122
122
|
provider: import_zod.z.string().min(1).optional(),
|
|
123
|
-
headroom: import_zod.z.boolean().optional()
|
|
123
|
+
headroom: import_zod.z.boolean().optional(),
|
|
124
|
+
trackUsage: import_zod.z.boolean().optional()
|
|
124
125
|
});
|
|
125
126
|
var CREDENTIAL_TARGETS = ["bearer", "apiKey", "oauthToken"];
|
|
126
127
|
var PROVIDER_CREDENTIAL_TARGETS = ["bearer", "apiKey"];
|
|
@@ -668,6 +669,9 @@ function flattenLayers(layers, options) {
|
|
|
668
669
|
if (layer.launch.headroom !== void 0) {
|
|
669
670
|
launch.headroom = layer.launch.headroom;
|
|
670
671
|
}
|
|
672
|
+
if (layer.launch.trackUsage !== void 0) {
|
|
673
|
+
launch.trackUsage = layer.launch.trackUsage;
|
|
674
|
+
}
|
|
671
675
|
}
|
|
672
676
|
if (layer.entries === void 0) {
|
|
673
677
|
continue;
|
package/dist/index.mjs
CHANGED
|
@@ -46,7 +46,8 @@ var LaunchSchema = z.strictObject({
|
|
|
46
46
|
skipPermissions: z.boolean().optional(),
|
|
47
47
|
remoteControl: z.boolean().optional(),
|
|
48
48
|
provider: z.string().min(1).optional(),
|
|
49
|
-
headroom: z.boolean().optional()
|
|
49
|
+
headroom: z.boolean().optional(),
|
|
50
|
+
trackUsage: z.boolean().optional()
|
|
50
51
|
});
|
|
51
52
|
var CREDENTIAL_TARGETS = ["bearer", "apiKey", "oauthToken"];
|
|
52
53
|
var PROVIDER_CREDENTIAL_TARGETS = ["bearer", "apiKey"];
|
|
@@ -594,6 +595,9 @@ function flattenLayers(layers, options) {
|
|
|
594
595
|
if (layer.launch.headroom !== void 0) {
|
|
595
596
|
launch.headroom = layer.launch.headroom;
|
|
596
597
|
}
|
|
598
|
+
if (layer.launch.trackUsage !== void 0) {
|
|
599
|
+
launch.trackUsage = layer.launch.trackUsage;
|
|
600
|
+
}
|
|
597
601
|
}
|
|
598
602
|
if (layer.entries === void 0) {
|
|
599
603
|
continue;
|
|
@@ -83,6 +83,7 @@ declare const LaunchSchema: z.ZodObject<{
|
|
|
83
83
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
84
84
|
provider: z.ZodOptional<z.ZodString>;
|
|
85
85
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
86
87
|
}, z.core.$strict>;
|
|
87
88
|
export type LaunchFlags = z.infer<typeof LaunchSchema>;
|
|
88
89
|
/**
|
|
@@ -417,6 +418,7 @@ export declare const ConfigProfileSchema: z.ZodObject<{
|
|
|
417
418
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
418
419
|
provider: z.ZodOptional<z.ZodString>;
|
|
419
420
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
421
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
420
422
|
}, z.core.$strict>>;
|
|
421
423
|
}, z.core.$strict>;
|
|
422
424
|
export type ConfigProfile = z.infer<typeof ConfigProfileSchema>;
|
|
@@ -452,6 +454,7 @@ export declare const DirectoryRuleSchema: z.ZodObject<{
|
|
|
452
454
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
453
455
|
provider: z.ZodOptional<z.ZodString>;
|
|
454
456
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
457
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
455
458
|
}, z.core.$strict>>;
|
|
456
459
|
path: z.ZodString;
|
|
457
460
|
configProfile: z.ZodOptional<z.ZodString>;
|
|
@@ -499,6 +502,7 @@ export declare const DirectoryRulesSchema: z.ZodObject<{
|
|
|
499
502
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
500
503
|
provider: z.ZodOptional<z.ZodString>;
|
|
501
504
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
505
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
502
506
|
}, z.core.$strict>>;
|
|
503
507
|
path: z.ZodString;
|
|
504
508
|
configProfile: z.ZodOptional<z.ZodString>;
|
|
@@ -547,6 +551,7 @@ export declare const PortableConfigSchema: z.ZodObject<{
|
|
|
547
551
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
548
552
|
provider: z.ZodOptional<z.ZodString>;
|
|
549
553
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
554
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
550
555
|
}, z.core.$strict>>;
|
|
551
556
|
configProfile: z.ZodOptional<z.ZodString>;
|
|
552
557
|
identity: z.ZodOptional<z.ZodString>;
|
|
@@ -626,6 +631,7 @@ export declare const GlobalConfigSchema: z.ZodObject<{
|
|
|
626
631
|
remoteControl: z.ZodOptional<z.ZodBoolean>;
|
|
627
632
|
provider: z.ZodOptional<z.ZodString>;
|
|
628
633
|
headroom: z.ZodOptional<z.ZodBoolean>;
|
|
634
|
+
trackUsage: z.ZodOptional<z.ZodBoolean>;
|
|
629
635
|
}, z.core.$strict>>;
|
|
630
636
|
headroom: z.ZodOptional<z.ZodObject<{
|
|
631
637
|
source: z.ZodOptional<z.ZodString>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-use",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Joseph Mearman <joseph@mearman.co.uk>",
|