workos 0.8.2 → 0.10.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 +10 -8
- package/dist/bin.js +62 -27
- package/dist/bin.js.map +1 -1
- package/dist/commands/auth-status.d.ts +1 -0
- package/dist/commands/auth-status.js +56 -0
- package/dist/commands/auth-status.js.map +1 -0
- package/dist/commands/install-skill.d.ts +0 -1
- package/dist/commands/install-skill.js +2 -10
- package/dist/commands/install-skill.js.map +1 -1
- package/dist/commands/list-skills.d.ts +4 -0
- package/dist/commands/list-skills.js +52 -0
- package/dist/commands/list-skills.js.map +1 -0
- package/dist/commands/login.js +5 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/uninstall-skill.d.ts +11 -0
- package/dist/commands/uninstall-skill.js +116 -0
- package/dist/commands/uninstall-skill.js.map +1 -0
- package/dist/doctor/checks/ai-analysis.js +3 -3
- package/dist/doctor/checks/ai-analysis.js.map +1 -1
- package/dist/integrations/dotnet/index.js +7 -12
- package/dist/integrations/dotnet/index.js.map +1 -1
- package/dist/integrations/elixir/index.js +7 -13
- package/dist/integrations/elixir/index.js.map +1 -1
- package/dist/integrations/go/index.js +5 -11
- package/dist/integrations/go/index.js.map +1 -1
- package/dist/integrations/python/index.js +7 -13
- package/dist/integrations/python/index.js.map +1 -1
- package/dist/integrations/ruby/index.js +9 -14
- package/dist/integrations/ruby/index.js.map +1 -1
- package/dist/lib/adapters/cli-adapter.js +1 -1
- package/dist/lib/adapters/cli-adapter.js.map +1 -1
- package/dist/lib/agent-interface.js +10 -9
- package/dist/lib/agent-interface.js.map +1 -1
- package/dist/lib/agent-runner.js +24 -19
- package/dist/lib/agent-runner.js.map +1 -1
- package/dist/lib/credential-proxy.js +1 -1
- package/dist/lib/credential-proxy.js.map +1 -1
- package/dist/lib/ensure-auth.js +3 -3
- package/dist/lib/ensure-auth.js.map +1 -1
- package/dist/lib/run-with-core.js +1 -1
- package/dist/lib/run-with-core.js.map +1 -1
- package/dist/lib/token-refresh-client.js +1 -1
- package/dist/lib/token-refresh-client.js.map +1 -1
- package/dist/lib/token-refresh.js +1 -1
- package/dist/lib/token-refresh.js.map +1 -1
- package/dist/lib/version-check.js +2 -1
- package/dist/lib/version-check.js.map +1 -1
- package/dist/utils/exit-codes.js +1 -1
- package/dist/utils/exit-codes.js.map +1 -1
- package/dist/utils/help-json.js +62 -23
- package/dist/utils/help-json.js.map +1 -1
- package/package.json +2 -3
- package/.claude-plugin/plugin.json +0 -13
- package/skills/workos-authkit-base/SKILL.md +0 -123
- package/skills/workos-authkit-nextjs/SKILL.md +0 -247
- package/skills/workos-authkit-react/SKILL.md +0 -91
- package/skills/workos-authkit-react-router/SKILL.md +0 -107
- package/skills/workos-authkit-sveltekit/SKILL.md +0 -160
- package/skills/workos-authkit-tanstack-start/SKILL.md +0 -300
- package/skills/workos-authkit-vanilla-js/SKILL.md +0 -83
- package/skills/workos-dotnet/SKILL.md +0 -163
- package/skills/workos-elixir/SKILL.md +0 -194
- package/skills/workos-go/SKILL.md +0 -191
- package/skills/workos-kotlin/SKILL.md +0 -161
- package/skills/workos-management/SKILL.md +0 -250
- package/skills/workos-node/SKILL.md +0 -164
- package/skills/workos-php/SKILL.md +0 -127
- package/skills/workos-php-laravel/SKILL.md +0 -147
- package/skills/workos-python/SKILL.md +0 -159
- package/skills/workos-ruby/SKILL.md +0 -163
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ workos
|
|
|
15
15
|
|
|
16
16
|
## Features
|
|
17
17
|
|
|
18
|
-
- **
|
|
18
|
+
- **15 Framework Support:** Next.js, React Router, TanStack Start, React SPA, Vanilla JS, SvelteKit, Node.js (Express), Python (Django), Ruby (Rails), Go, .NET (ASP.NET Core), Kotlin (Spring Boot), Elixir (Phoenix), PHP (Laravel), PHP
|
|
19
19
|
- **AI-Powered:** Uses Claude to intelligently adapt to your project structure
|
|
20
20
|
- **Security-First:** Masks API keys, redacts from logs, saves to .env.local
|
|
21
21
|
- **Smart Detection:** Auto-detects framework, package manager, router type
|
|
@@ -50,11 +50,10 @@ workos [command]
|
|
|
50
50
|
|
|
51
51
|
Commands:
|
|
52
52
|
install Install WorkOS AuthKit into your project
|
|
53
|
-
|
|
54
|
-
logout Remove stored credentials
|
|
53
|
+
auth Manage authentication (login, logout, status)
|
|
55
54
|
env Manage environment configurations
|
|
56
55
|
doctor Diagnose WorkOS integration issues
|
|
57
|
-
|
|
56
|
+
skills Manage WorkOS skills for coding agents (install, uninstall, list)
|
|
58
57
|
|
|
59
58
|
Resource Management:
|
|
60
59
|
organization (org) Manage organizations
|
|
@@ -364,7 +363,7 @@ workos org-domain delete <id>
|
|
|
364
363
|
workos install [options]
|
|
365
364
|
|
|
366
365
|
--direct, -D Use your own Anthropic API key (bypass llm-gateway)
|
|
367
|
-
--integration <name> Framework: nextjs, react, react-router, tanstack-start, vanilla-js
|
|
366
|
+
--integration <name> Framework: nextjs, react, react-router, tanstack-start, vanilla-js, sveltekit, node, python, ruby, go, dotnet, kotlin, elixir, php-laravel, php
|
|
368
367
|
--api-key <key> WorkOS API key (required in non-interactive mode)
|
|
369
368
|
--client-id <id> WorkOS client ID (required in non-interactive mode)
|
|
370
369
|
--redirect-uri <uri> Custom redirect URI
|
|
@@ -386,7 +385,7 @@ workos install [options]
|
|
|
386
385
|
npx workos
|
|
387
386
|
|
|
388
387
|
# Specify framework
|
|
389
|
-
npx workos --integration react-router
|
|
388
|
+
npx workos install --integration react-router
|
|
390
389
|
|
|
391
390
|
# With visual dashboard (experimental)
|
|
392
391
|
npx workos dashboard
|
|
@@ -470,10 +469,13 @@ The CLI uses WorkOS Connect OAuth device flow for authentication:
|
|
|
470
469
|
|
|
471
470
|
```bash
|
|
472
471
|
# Login (opens browser for authentication)
|
|
473
|
-
workos login
|
|
472
|
+
workos auth login
|
|
473
|
+
|
|
474
|
+
# Check current auth status
|
|
475
|
+
workos auth status
|
|
474
476
|
|
|
475
477
|
# Logout (clears stored credentials)
|
|
476
|
-
workos logout
|
|
478
|
+
workos auth logout
|
|
477
479
|
```
|
|
478
480
|
|
|
479
481
|
OAuth credentials are stored in the system keychain (with `~/.workos/credentials.json` fallback). Access tokens are not persisted long-term for security - users re-authenticate when tokens expire.
|
package/dist/bin.js
CHANGED
|
@@ -20,7 +20,7 @@ if (!satisfies(process.version, NODE_VERSION_RANGE)) {
|
|
|
20
20
|
process.exit(1);
|
|
21
21
|
}
|
|
22
22
|
import { isNonInteractiveEnvironment } from './utils/environment.js';
|
|
23
|
-
import { resolveOutputMode, setOutputMode, outputJson, exitWithError } from './utils/output.js';
|
|
23
|
+
import { resolveOutputMode, setOutputMode, isJsonMode, outputJson, exitWithError } from './utils/output.js';
|
|
24
24
|
import clack from './utils/clack.js';
|
|
25
25
|
import { registerSubcommand } from './utils/register-subcommand.js';
|
|
26
26
|
// Resolve output mode early from raw argv (before yargs parses)
|
|
@@ -163,8 +163,9 @@ const installerOptions = {
|
|
|
163
163
|
type: 'boolean',
|
|
164
164
|
},
|
|
165
165
|
};
|
|
166
|
-
// Check for updates (blocks up to 500ms)
|
|
167
|
-
|
|
166
|
+
// Check for updates (blocks up to 500ms, skip in JSON mode to keep stdout clean)
|
|
167
|
+
if (!isJsonMode())
|
|
168
|
+
await checkForUpdates();
|
|
168
169
|
yargs(rawArgs)
|
|
169
170
|
.env('WORKOS_INSTALLER')
|
|
170
171
|
.option('json', {
|
|
@@ -173,44 +174,78 @@ yargs(rawArgs)
|
|
|
173
174
|
describe: 'Output results as JSON (auto-enabled in non-TTY)',
|
|
174
175
|
global: true,
|
|
175
176
|
})
|
|
176
|
-
.command('
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
177
|
+
.command('auth', 'Manage authentication (login, logout, status)', (yargs) => {
|
|
178
|
+
yargs.options(insecureStorageOption);
|
|
179
|
+
registerSubcommand(yargs, 'login', 'Authenticate with WorkOS via browser-based OAuth', (y) => y, async (argv) => {
|
|
180
|
+
await applyInsecureStorage(argv.insecureStorage);
|
|
181
|
+
const { runLogin } = await import('./commands/login.js');
|
|
182
|
+
await runLogin();
|
|
183
|
+
process.exit(0);
|
|
184
|
+
});
|
|
185
|
+
registerSubcommand(yargs, 'logout', 'Remove stored WorkOS credentials and tokens', (y) => y, async (argv) => {
|
|
186
|
+
await applyInsecureStorage(argv.insecureStorage);
|
|
187
|
+
const { runLogout } = await import('./commands/logout.js');
|
|
188
|
+
await runLogout();
|
|
189
|
+
});
|
|
190
|
+
registerSubcommand(yargs, 'status', 'Show current authentication status', (y) => y, async (argv) => {
|
|
191
|
+
await applyInsecureStorage(argv.insecureStorage);
|
|
192
|
+
const { runAuthStatus } = await import('./commands/auth-status.js');
|
|
193
|
+
await runAuthStatus();
|
|
194
|
+
});
|
|
195
|
+
return yargs.demandCommand(1, 'Please specify an auth subcommand').strict();
|
|
186
196
|
})
|
|
187
|
-
.command('
|
|
188
|
-
|
|
189
|
-
.option('
|
|
190
|
-
alias: '
|
|
191
|
-
type: '
|
|
192
|
-
|
|
197
|
+
.command('skills', 'Manage WorkOS skills for coding agents (Claude Code, Codex, Cursor, Goose)', (yargs) => {
|
|
198
|
+
registerSubcommand(yargs, 'install', 'Install bundled AuthKit skills to coding agents', (y) => y
|
|
199
|
+
.option('skill', {
|
|
200
|
+
alias: 's',
|
|
201
|
+
type: 'array',
|
|
202
|
+
string: true,
|
|
203
|
+
description: 'Install specific skill(s) by name',
|
|
193
204
|
})
|
|
205
|
+
.option('agent', {
|
|
206
|
+
alias: 'a',
|
|
207
|
+
type: 'array',
|
|
208
|
+
string: true,
|
|
209
|
+
description: 'Target specific agent(s): claude-code, codex, cursor, goose',
|
|
210
|
+
}), async (argv) => {
|
|
211
|
+
const { runInstallSkill } = await import('./commands/install-skill.js');
|
|
212
|
+
await runInstallSkill({
|
|
213
|
+
skill: argv.skill,
|
|
214
|
+
agent: argv.agent,
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
registerSubcommand(yargs, 'uninstall', 'Remove installed WorkOS skills from coding agents', (y) => y
|
|
194
218
|
.option('skill', {
|
|
195
219
|
alias: 's',
|
|
196
220
|
type: 'array',
|
|
197
221
|
string: true,
|
|
198
|
-
description: '
|
|
222
|
+
description: 'Remove specific skill(s) by name',
|
|
199
223
|
})
|
|
200
224
|
.option('agent', {
|
|
201
225
|
alias: 'a',
|
|
202
226
|
type: 'array',
|
|
203
227
|
string: true,
|
|
204
228
|
description: 'Target specific agent(s): claude-code, codex, cursor, goose',
|
|
229
|
+
}), async (argv) => {
|
|
230
|
+
const { runUninstallSkill } = await import('./commands/uninstall-skill.js');
|
|
231
|
+
await runUninstallSkill({
|
|
232
|
+
skill: argv.skill,
|
|
233
|
+
agent: argv.agent,
|
|
234
|
+
});
|
|
205
235
|
});
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
236
|
+
registerSubcommand(yargs, 'list', 'List available and installed skills', (y) => y.option('agent', {
|
|
237
|
+
alias: 'a',
|
|
238
|
+
type: 'array',
|
|
239
|
+
string: true,
|
|
240
|
+
description: 'Target specific agent(s): claude-code, codex, cursor, goose',
|
|
241
|
+
}), async (argv) => {
|
|
242
|
+
const { runListSkills } = await import('./commands/list-skills.js');
|
|
243
|
+
await runListSkills({
|
|
244
|
+
agent: argv.agent,
|
|
245
|
+
});
|
|
212
246
|
});
|
|
213
|
-
|
|
247
|
+
return yargs.demandCommand(1, 'Please specify a skills subcommand').strict();
|
|
248
|
+
})
|
|
214
249
|
.command('doctor', 'Diagnose WorkOS AuthKit integration issues in the current project', (yargs) => yargs.options({
|
|
215
250
|
verbose: {
|
|
216
251
|
type: 'boolean',
|