LIVE

CLI Reference

Install once, publish anywhere. The vibes CLI wraps the It Just Vibes REST API — authenticate with your API key, then publish, share, find, and manage widgets from any shell or AI tool.

npm install -g @itjustvibes/cli

Global Flags

These flags are accepted by every command. Credential precedence: --key flag › IJV_API_KEY env › saved config file.

FlagDescription
--key <key>, -kAPI key — overrides IJV_API_KEY env and the saved config file.
--jsonMachine-readable JSON output (no color). Error shape: { ok, error, code, exit }.
--no-colorDisable ANSI color output (also disabled when NO_COLOR env is set or stdout is not a TTY).
--help, -hShow help for the current command.
--version, -vPrint the CLI version and exit 0.

publish

vibes publish

Publish a widget file to itjustvibes.com. Authenticated (Bearer key) uploads to your account; unauthenticated uploads as a guest and returns a claim URL to make it yours.

Usage

vibes publish <file> [flags]

Flags

FlagTypeDefaultDescription
--title <title>stringWidget display title. Defaults to the file basename (without extension).
--category <category>stringmiscWidget category. Defaults to "misc".
--key <key>, -kstringAPI key (overrides IJV_API_KEY env and config file).
--jsonbooleanOutput machine-readable JSON: { ok, url, slug, claim_url }.

Exit Codes

CodeNameMeaning
0SUCCESSWidget published successfully.
1ERRORNetwork failure, server error, or 413 file-too-large.
2USAGEFile not found or bad arguments.
4PERMISSIONAPI key rejected (401/403).

Examples

# Publish with your API key (set via vibes login or IJV_API_KEY env)
vibes publish my-widget.html
# => Published. URL: https://itjustvibes.com/w/my-widget

share

vibes share

Update the visibility of a widget you own. Requires an API key — guests cannot change visibility.

Usage

vibes share <slug> --visibility <value> [flags]

Flags

FlagTypeDefaultDescription
--visibility <value>stringNew visibility: public or private_sole (only you). Note: private_group is not yet supported — group targeting is deferred.req
--key <key>, -kstringAPI key (overrides IJV_API_KEY env and config file).
--jsonbooleanOutput machine-readable JSON: { ok, slug, visibility }.

Exit Codes

CodeNameMeaning
0SUCCESSVisibility updated.
2USAGEMissing --visibility or invalid value.
4PERMISSIONNo API key, 401, 403 (not owner), or 404.

Examples

vibes share my-widget --visibility public

find

vibes find

Search the widget catalogue. Returns a paginated table of matching widgets with slug, title, author, and vote score.

Usage

vibes find <query> [flags]

Flags

FlagTypeDefaultDescription
--category <category>stringFilter by category.
--author <handle>stringFilter by author handle.
--limit <n>numberMaximum results to return.
--cursor <cursor>stringPagination cursor from a previous find result.
--key <key>, -kstringAPI key for authenticated results.
--jsonbooleanOutput raw JSON array of widgets.

Exit Codes

CodeNameMeaning
0SUCCESSSearch completed (even if zero results).
1ERRORNetwork or server error.
2USAGEBad arguments or parameters.
4PERMISSIONAPI key rejected (401/403).

Examples

vibes find "dark clock"
#   SLUG           TITLE            AUTHOR    VOTES
#   dark-clock     Dark Clock       @handle   42

get

vibes get

Fetch full widget metadata and source code. Human output includes title, author, visibility, URL, created date, and source code. Use --json for machine consumption.

Usage

vibes get <slug> [flags]

Flags

FlagTypeDefaultDescription
--key <key>, -kstringAPI key to access private widgets you own.
--jsonbooleanOutput JSON: { slug, title, author, visibility, url, source_code, created_at }.

Exit Codes

CodeNameMeaning
0SUCCESSWidget fetched.
1ERRORNetwork or server error (5xx).
4PERMISSION404 (not found or private) or 401/403.

Examples

vibes get my-widget
# Title:      My Widget
# Author:     @handle
# Visibility: public
# URL:        https://itjustvibes.com/w/my-widget

export

vibes export

Download a widget's source code to a file or print to stdout. Uses the same endpoint as get — no additional API call needed.

Usage

vibes export <slug> [flags]

Flags

FlagTypeDefaultDescription
--output <file>, -ostringDestination file path. Prints to stdout when omitted. URL-like paths are rejected (SSRF guard).
--key <key>, -kstringAPI key to export private widgets you own.

Exit Codes

CodeNameMeaning
0SUCCESSSource code exported.
1ERRORNetwork or server error.
2USAGEURL-like --output path rejected (use a local file path).
4PERMISSION404 (not found or private) or 401/403.

Examples

vibes export my-widget --output my-widget.html

login

vibes login

Save your API key to the local config file. Validates the key against /api/v1/me before saving. Keys are stored with 0o600 permissions in the XDG config directory.

Usage

vibes login --key <key>

Flags

FlagTypeDefaultDescription
--key <key>, -kstringYour API key (starts with jb_live_). Generate one from account settings.req

Exit Codes

CodeNameMeaning
0SUCCESSKey validated and saved.
4PERMISSIONKey rejected (401) — check the key and try again.

Examples

Shell
vibes login --key jb_live_XXXXXXXXXXXX
# => Authenticated as @yourhandle
# => Key saved to ~/.config/itjustvibes/config.json

mcp

vibes mcp

MCP connector utilities. Two subcommands: mcp install writes the hosted MCP connector config to .mcp.json (read-merge-write, never clobbers sibling keys); mcp serve starts a stdio MCP proxy forwarding JSON-RPC + Bearer to the remote /api/mcp endpoint.

Usage

vibes mcp <install|serve> [flags]

Flags

FlagTypeDefaultDescription
--key <key>, -kstringAPI key used by mcp serve as the Bearer token. Required for mcp serve; optional for mcp install (warns without a key).

Exit Codes

CodeNameMeaning
0SUCCESSmcp install wrote .mcp.json.
1ERRORMalformed existing .mcp.json (mcp install aborts rather than clobber).
4PERMISSIONNo API key configured (mcp serve exits before opening transport).

Examples

vibes mcp install
# => MCP connector written to .mcp.json
# =>   URL: https://www.itjustvibes.com/api/mcp

Exit Codes

All commands use these four exit codes consistently. Use --json for machine-readable exit payloads: { ok, error, code, exit }.

CodeNameMeaning
0SUCCESSCommand completed successfully.
1ERRORGeneric runtime error (network failure, unexpected server error, parse error).
2USAGEBad arguments, unknown flag, or missing required argument.
4PERMISSIONAuthentication failed (401), insufficient scope (403), or no API key configured.

CLI flags and examples in this page are kept in lockstep with the SDK prompt coupling rule in apps/web/lib/sdk-prompts.ts. Update CLI_SKILL, SKILL.md, and this page together when the CLI surface changes.

FEEDDISCOVER
Start typing to search