Skip to content

The blipkit CLI

Command What it does
blipkit new <name> Scaffolds package.json, src/index.ts, tsconfig.json, and a README.md for a new extension.
blipkit dev Builds in watch mode (esbuild) and symlinks the folder into Blipbar’s Extensions/ folder. The host reloads your extension on every rebuild, and its log (ctx.log lines and errors) prints in the terminal as [log]. Runs until you Ctrl+C.
blipkit build Bundles src/index.ts → dist/index.js (esbuild: CommonJS, node22 target, @blipbar/api inlined), validates the manifest shape, and writes dist/tools.json if you have tools (Tools). This is what actually ships: package.json plus dist/ is the whole extension.
blipkit validate Builds (validating your tools), then runs your update() once against a mock host (in-memory storage, recorded emit/end/notify/…, real exec gated by your declared permissions.exec), stamps each emitted blip the way the runtime would, and validates every one against the schema. Prints what it would emit. --prefs '<json>' sets preferences for the run, and --tool <name> --values '<json>' runs one tool too (Testing a tool). Like the app, it won’t run without the preferences marked required, and it holds fetch to permissions.network: a refused request fails the check even when your code catches it. Use it constantly while developing: it’s the fastest “did I break the shape of my payload” check, with no app required.
blipkit send <file.json | -> POSTs a payload (or a JSON array of several) straight to a running Blipbar app’s /v1/blips, reading the port and token from webhook.json. Useful for testing how a specific payload actually renders, separate from your extension’s own update logic.
blipkit pack Builds, then writes <name>-<version>.blipbar: a zip of package.json, dist/ (without source maps) and your README and licence. One file to share (A .blipbar file). It prints the file’s SHA-256 and the entry that lists it in the directory (The directory), with the repo taken from package.json’s repository.

blipkit validate only exercises update() (and, with --tool, one tool, Testing a tool). It has no mock webhook or action to drive onEvent/onAction through. Test those with real unit tests instead (Testing).