@burdenoff/cli-sdk
v2026.825.2
Published
Modular CLI SDK shared across all Burdenoff product CLIs (vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, devportal, workspaces). Each module exports CliModule contract; product CLIs become thin shells that pick which modules to mount.
Maintainers
Readme
@burdenoff/cli-sdk
Modular CLI SDK shared across all Burdenoff product CLIs. Each module exports a CliModule contract; product CLIs (vibecontrols-cli, botlit-cli, fluidgrids-cli, etc.) become thin shells that pick which modules to mount.
Install
bun add @burdenoff/cli-sdk commander graphql graphql-requestcommander, graphql, graphql-request are peer deps — your shell installs them directly.
Use
#!/usr/bin/env node
import { createProgram, buildContext } from '@burdenoff/cli-sdk/core';
import authModule from '@burdenoff/cli-sdk/modules/auth';
import vibecontrolsModule from '@burdenoff/cli-sdk/modules/vibecontrols';
const ctx = buildContext({
productName: 'vibecontrols',
productVersion: '1.0.0',
defaults: {
configDirName: 'vibecontrols-cli',
oidcClientId: 'burdenoff_cli_vibecontrols',
workspaceEndpointDefault: 'http://localhost:4003/workspaces/graphql',
globalEndpointDefault: 'http://localhost:4000/global/graphql',
},
});
const program = createProgram(ctx, [authModule, vibecontrolsModule], {
name: 'vibecontrols',
version: '1.0.0',
});
program.parseAsync(process.argv);Module contract
export interface CliModule {
id: string;
version: string;
displayName: string;
dependsOn?: readonly string[];
register(program: Command, ctx: CLIContext): void;
api?: (ctx: CLIContext) => unknown;
}See src/core/module.ts for the full type.
Develop
bun install
bun run sanity # format + lint + typecheck + build + test