feat(cli): add onboard alias for setup wizard

This commit is contained in:
William Valentin
2026-02-16 18:30:17 -08:00
parent 10aa224961
commit 5b5fbb887c
5 changed files with 33 additions and 0 deletions
+1
View File
@@ -73,6 +73,7 @@ Flynn provides a full CLI via the `flynn` binary (or `npx tsx src/cli/index.ts`
| `flynn backup` | Create a snapshot backup and optionally upload to MinIO |
| `flynn completion <shell>` | Generate shell completions (bash, zsh, fish) |
| `flynn setup` | Interactive setup wizard |
| `flynn onboard` | Guided onboarding alias for setup wizard |
| `flynn gmail-auth` | Authenticate with Gmail via OAuth2 |
| `flynn gcal-auth` | Authenticate with Google Calendar via OAuth2 |
| `flynn skills` | List/install/manage skills |
+14
View File
@@ -160,6 +160,20 @@
],
"test_status": "pnpm test:run src/tools/builtin/browser/tools.test.ts src/tools/policy.test.ts passing"
},
"onboard-command-alias-for-setup-wizard": {
"status": "completed",
"date": "2026-02-17",
"updated": "2026-02-17",
"summary": "Added a first-class `flynn onboard` CLI entrypoint as an explicit guided-onboarding alias to the setup wizard (`runSetup`), improving onboarding discoverability and OpenClaw-style command-surface parity without changing setup behavior.",
"files_modified": [
"src/cli/onboard.ts",
"src/cli/index.ts",
"src/cli/index.test.ts",
"README.md",
"docs/plans/state.json"
],
"test_status": "pnpm test:run src/cli/index.test.ts + pnpm typecheck passing"
},
"browser-tools-activation-clarity": {
"status": "completed",
"date": "2026-02-17",
+2
View File
@@ -14,6 +14,8 @@ describe('CLI program', () => {
expect(commandNames).toContain('config');
expect(commandNames).toContain('skills');
expect(commandNames).toContain('backup');
expect(commandNames).toContain('setup');
expect(commandNames).toContain('onboard');
expect(commandNames).toContain('openai-auth');
expect(commandNames).toContain('openai-key');
+2
View File
@@ -17,6 +17,7 @@ import { registerConfigCommand } from './config-cmd.js';
import { registerTuiCommand } from './tui.js';
import { registerCompletionCommand } from './completion.js';
import { registerSetupCommand } from './setup.js';
import { registerOnboardCommand } from './onboard.js';
import { registerGmailAuthCommand } from './gmail-auth.js';
import { registerGcalAuthCommand } from './gcal-auth.js';
import { registerGdocsAuthCommand } from './gdocs-auth.js';
@@ -45,6 +46,7 @@ export function createProgram(): Command {
registerConfigCommand(program);
registerCompletionCommand(program);
registerSetupCommand(program);
registerOnboardCommand(program);
registerGmailAuthCommand(program);
registerGcalAuthCommand(program);
registerGdocsAuthCommand(program);
+14
View File
@@ -0,0 +1,14 @@
import type { Command } from 'commander';
import { getConfigPath } from './shared.js';
import { runSetup } from './setup.js';
export function registerOnboardCommand(program: Command): void {
program
.command('onboard')
.description('Run guided onboarding (alias for setup wizard)')
.option('-c, --config <path>', 'Config file path')
.action(async (opts: { config?: string }) => {
const configPath = opts.config ?? getConfigPath();
await runSetup(configPath);
});
}