LIVE

AI Publishing Skill

Teach your AI tool to publish and find widgets on It Just Vibes — installed in one command.

npx skills add itjustvibes/skill

Registry install coming soon. Until npx skills add itjustvibes/skill is wired to the registry, point your AI tool directly at the raw file instead:

https://www.itjustvibes.com/docs/skill/SKILL.md

What this skill teaches

  • Publish HTML/React widgets from files or chat sessions (authenticated or anonymous guest)
  • Find and search the widget catalogue by query, category, or author
  • Fetch widget source code and metadata by slug
  • Export widget source to a local file
  • Share or update widget visibility (public / private_sole / private_group)
  • Sign in with an API key and persist it securely
  • Connect the It Just Vibes MCP server to AI tools that support native MCP

Install

Install the skill with the npx skills add one-liner. Once installed, your AI tool can publish, share, find, and sign in to It Just Vibes from any shell.

One-liner install

npx skills add itjustvibes/skill

Current working install path (raw file)

While the registry install is being wired, point your AI tool directly at this URL:

https://www.itjustvibes.com/docs/skill/SKILL.md

Install the CLI (required for CLI commands)

npm install -g @itjustvibes/cli

CLI Quick-Start

After installing the CLI, sign in and publish your first widget in two commands.

# Save your API key (from itjustvibes.com  Settings  API Keys)
vibes login --key jb_live_XXXXXXXXXXXX

# Publish a widget file
vibes publish my-widget.html
# => Published.
# =>   URL: https://itjustvibes.com/w/my-widget

See the full CLI Reference for all commands, flags, and exit codes.

MCP Connector

For AI tools that support the Model Context Protocol natively, connect the hosted It Just Vibes MCP server as a secondary path alongside the CLI.

Install connector (writes .mcp.json)

vibes mcp install

Merges the hosted connector config into .mcp.json. Safe to run in an existing project — sibling connectors are preserved.

Or add the connector manually

JSON
{
  "mcpServers": {
    "itjustvibes": {
      "command": "npx",
      "args": ["@itjustvibes/cli", "mcp", "serve"],
      "env": {
        "IJV_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

Remote MCP URL (HTTP connector for Claude web)

https://www.itjustvibes.com/api/mcp

Skill Source

The full skill text below. Copy it into your AI tool to teach it the It Just Vibes CLI commands directly — useful when npx skills add is not available or for manual context injection.

AI Publishing Skill— vibes CLI reference for AI tools
# It Just Vibes — AI Publishing Skill
name: itjustvibes
description: Publish, find, share, and manage widgets on itjustvibes.com from any shell or AI tool.
version: 1.0.0

## What this skill teaches

Use the `vibes` CLI (or the hosted MCP connector) to:
- Publish HTML/React widgets from files or chat sessions
- Find and explore the widget catalogue
- Fetch widget source code by slug
- Export widget source to a local file
- Share or update widget visibility
- Sign in with an API key
- Connect the It Just Vibes MCP server to AI tools that support native MCP

---

## SECTION 1 — CLI (Primary Path)

Install the CLI:

  npm install -g @itjustvibes/cli

Or without global install:

  npx @itjustvibes/cli <command>

### Sign in

  vibes login --key <YOUR_API_KEY>

API keys are available from your account settings at itjustvibes.com.
The key is saved to ~/.config/itjustvibes/config.json with 0o600 permissions.
You can also pass it inline with --key or set the IJV_API_KEY environment variable.

Credential precedence: --key flag > IJV_API_KEY env > saved config file.

### Publish a widget (authenticated)

  vibes publish <file.html>
  vibes publish <file.html> --title "My Widget" --category games

Success output:
  Published.
    URL:  https://itjustvibes.com/w/<slug>
    Slug: <slug>

With --json: {"ok":true,"url":"...","slug":"...","claim_url":null}

### Publish a widget (anonymous / guest)

Omit the API key to publish as a guest. A claim URL is returned so you can
claim the widget later by signing in.

  vibes publish <file.html>

Guest output:
  Published.
    URL:   https://itjustvibes.com/w/<slug>
    Claim: https://itjustvibes.com/claim/<token>
    Note:  This widget expires in 24 hours unless claimed.

With --json: {"ok":true,"url":"...","slug":"...","claim_url":"https://..."}

### Find widgets

  vibes find "<query>"
  vibes find "<query>" --category games --author @handle --limit 10

Output: aligned table of SLUG / TITLE / AUTHOR / VOTES
With --json: raw JSON array of widgets.

### Get widget details + source

  vibes get <slug>
  vibes get <slug> --json

Human output: Title / Author / Visibility / URL / Created + source code block.
JSON: {slug, title, author, visibility, url, source_code, created_at}

### Export widget source to file

  vibes export <slug> --output <file.html>
  vibes export <slug>                        # prints to stdout

Note: URL-like --output paths are rejected for security.

### Share / update visibility

  vibes share <slug> --visibility public
  vibes share <slug> --visibility private_sole

Valid values: public | private_sole
Note: private_group is not yet supported (group targeting deferred). Passing private_group exits 2 (USAGE).
Requires authentication. 401/403/404 exits with code 4.

### Global flags (all commands)

  --key <key>     API key (overrides IJV_API_KEY env and saved config)
  --json          Machine-readable JSON output (no color, no table)
  --no-color      Disable ANSI color (auto-off when stdout is not a TTY)
  --help, -h      Show help for the command
  --version, -v   Print CLI version and exit 0

### Exit codes

  0  SUCCESS   — command completed successfully
  1  ERROR     — network failure, server error, parse error
  2  USAGE     — bad arguments, unknown flag, missing required argument (e.g. URL-like --output on export, private_group on share)
  4  PERMISSION — authentication failed (401/403/404) or no key configured

---

## SECTION 2 — MCP Connector (Secondary Path)

For AI tools that support the Model Context Protocol natively, you can connect
the hosted It Just Vibes MCP server instead of (or alongside) the CLI.

### Option A: mcp install (writes .mcp.json config)

  vibes mcp install

This merges the hosted connector config into .mcp.json in the current directory.
It is safe to run in an existing project — it preserves sibling mcpServers entries.
Existing connectors are never clobbered; only the itjustvibes key is overwritten.

Output:
  MCP connector written to .mcp.json
    URL: https://www.itjustvibes.com/api/mcp

After running mcp install, restart your AI tool to pick up the new connector.

### Option B: mcp serve (stdio proxy)

  vibes mcp serve

Starts a stdio MCP proxy that forwards JSON-RPC requests (ListTools + CallTool)
to the hosted /api/mcp endpoint with your Bearer token. Use this for tools that
require a local stdio-mode MCP server rather than a remote HTTP connector.

Requires vibes login (or --key / IJV_API_KEY). Exits 4 if no key is configured.
All output goes to stderr — stdout is the MCP JSON-RPC transport channel.

### Option C: manual connector config

Point your AI tool directly at the hosted MCP URL:

  URL:  https://www.itjustvibes.com/api/mcp
  Auth: Bearer <YOUR_API_KEY>

---

## SECTION 3 — Agent State via MCP

After connecting the MCP server (see SECTION 2), four state tools let you read and write
the agent-accessible state a widget exposes through its `vibes.ai.*` SDK methods.

**Owner-grant prerequisite:** The widget owner must enable agent access in the widget's
Manage page → Agent tab before these tools return data. Calling a tool on a widget that
has not granted access returns error code BRIDGE_GRANT_MISSING. Advise the user to open
the widget's Manage page and enable agent access there.

### vibes_state_list

List all agent-accessible state keys for a widget.

  vibes_state_list(widget_slug: string)

Returns: { keys: string[], widget_slug: string, context: { summary: string } }
Keys are returned WITHOUT the internal "ai/" prefix.
Requires: read scope (any valid API key or MCP connector token).

### vibes_state_get

Read the value of a single agent-accessible state key.

  vibes_state_get(widget_slug: string, key: string)

Returns: { key: string, value: unknown }
If the key does not exist, value is null (not an error).
Requires: read scope.

### vibes_state_set

Write an agent-accessible state value for a widget.

  vibes_state_set(widget_slug: string, key: string, value: unknown)

The value must be JSON-serializable.
Returns an error if the token has read-only scope (error code READ_ONLY) — advise the user
to generate a read-write API key or enable write access on the connector.
Requires: write scope.

### vibes_state_delete

Remove an agent-accessible state key for a widget.

  vibes_state_delete(widget_slug: string, key: string)

Returns: { success: true }
Requires: write scope.

### Agent State Error Codes

| Code | Meaning | Suggested action |
|------|---------|-----------------|
| BRIDGE_GRANT_MISSING | Widget owner has not enabled agent access | Ask owner to open Manage → Agent tab and enable access |
| READ_ONLY | Token has read scope but a write op was attempted | Use a read-write API key or update the connector grant |
| KEY_NOT_ALLOWED | Key prefix is not in the widget's allowed namespace list | Contact the widget owner |
| QUOTA_EXCEEDED | Widget has hit its agent-state storage quota | Delete unused keys with vibes_state_delete |

---

## Notes

- Widget source files must be valid HTML or JSX/TSX (50 KB limit by default).
- The vibes CLI is open source: https://github.com/itjustvibes/itjustvibes
- API keys are available at itjustvibes.com → Account Settings → API Keys.
- Run `vibes <command> --help` for per-command flag reference.

This skill is kept in lockstep with apps/web/lib/sdk-prompts.ts (CLI_SKILL) and the CLI reference docs. Update all three when the SDK or CLI surface changes.

FEEDDISCOVER
Start typing to search