Skip to content

webforj/webforj-ai

Repository files navigation

webforJ AI

The webforJ plugin for AI coding assistants. Bundles the webforJ MCP server and a curated set of Skills so any MCP capable client can build and style webforJ applications with up to date knowledge of the framework.

Clients

Pick yours. Each section covers install, update, and uninstall.

Claude Code

Install

claude plugin marketplace add webforj/webforj-ai
claude plugin install webforj@webforj-ai

Verify inside Claude Code:

/plugin
/mcp

The webforj plugin appears under Installed. The MCP server appears as plugin:webforj:webforj-mcp under connected servers.

Update

Enable auto update for the marketplace from the /plugin UI once. From then on, Claude Code refreshes on launch and pulls new skill content automatically.

Manual refresh:

/plugin marketplace update webforj-ai
/reload-plugins

Uninstall

claude plugin uninstall webforj@webforj-ai
claude plugin marketplace remove webforj-ai

If you registered the MCP server directly, remove it too:

claude mcp remove webforj-mcp
GitHub Copilot CLI

Install

copilot plugin marketplace add webforj/webforj-ai
copilot plugin install webforj@webforj-ai

Verify:

copilot plugin list

Update

copilot plugin update webforj

Uninstall

copilot plugin uninstall webforj
copilot plugin marketplace remove webforj-ai
VS Code + GitHub Copilot

Install

  1. ⌘⇧P -> Chat: Install Plugin From Source
  2. Paste webforj/webforj-ai

Update

⌘⇧P -> Chat: Update Plugin -> webforj

Uninstall

⌘⇧P -> Chat: Uninstall Plugin -> webforj
Gemini CLI

Install

gemini extensions install https://github.com/webforj/webforj-ai

Verify:

gemini extensions list

Update

gemini extensions update webforj

Uninstall

gemini extensions uninstall webforj
OpenAI Codex CLI

Install

codex plugin marketplace add webforj/webforj-ai

Then open a Codex session and enable the plugin:

codex

Inside the TUI, type /plugins, select webforj, and press Space to enable it.

Invoking skills in Codex. Codex does not auto load skills by prompt match the way other clients do. Invoke with the $<plugin>:<skill> syntax:

$webforj:webforj-styling-apps explain the DWC color model
$webforj:webforj-creating-components how do I wrap a Custom Element?

MCP tools work automatically without the $ prefix.

Update

Codex does not have an update command for local path marketplaces. Remove and re-add:

codex plugin marketplace remove webforj-ai
codex plugin marketplace add webforj/webforj-ai

Then re-enable the plugin from /plugins if needed.

Uninstall

Inside a codex session, /plugins -> select webforj -> press Space to disable. Then from the shell:

codex plugin marketplace remove webforj-ai
Cursor

Install the MCP server

Add to ~/.cursor/mcp.json (user scope) or .cursor/mcp.json (project scope):

{
  "mcpServers": {
    "webforj-mcp": {
      "url": "https://mcp.webforj.com/mcp"
    }
  }
}

Or via the UI: Settings → Developer → Edit Config → MCP Tools and paste the same config.

Install the skills

Cursor auto-discovers skills from ~/.cursor/skills/<skill-name>/ (user scope) or .cursor/skills/<skill-name>/ (project scope). It also reads .agents/skills/, .claude/skills/, and .codex/skills/ for cross client compatibility. Clone this repo and copy the skill folders:

git clone https://github.com/webforj/webforj-ai.git
mkdir -p ~/.cursor/skills
cp -R webforj-ai/skills/* ~/.cursor/skills/

Or import via Cursor's UI: Settings → Rules → Add Rule → Remote Rule (Github), then paste a URL pointing to a skill's subdirectory.

Update

  • MCP server: remote URL, always serves the latest. No action needed.

  • Skills:

    cd webforj-ai && git pull
    cp -R skills/* ~/.cursor/skills/

Uninstall

  • MCP server: remove the webforj-mcp entry from ~/.cursor/mcp.json.

  • Skills:

    rm -rf ~/.cursor/skills/webforj-*
Kiro

Install the MCP server

Add to ~/.kiro/settings/mcp.json (user scope) or .kiro/settings/mcp.json (workspace scope):

{
  "mcpServers": {
    "webforj-mcp": {
      "type": "http",
      "url": "https://mcp.webforj.com/mcp"
    }
  }
}

Install the skills

Kiro reads skills from ~/.kiro/skills/<skill-name>/ (global) or .kiro/skills/<skill-name>/ (workspace). Clone this repo and copy the skill folders:

git clone https://github.com/webforj/webforj-ai.git
mkdir -p ~/.kiro/skills
cp -R webforj-ai/skills/* ~/.kiro/skills/

Or import via Kiro IDE: Agent Steering & Skills section -> + -> Import a skill -> GitHub, then paste a URL pointing to a skill's subdirectory in this repo.

Update

  • MCP server: remote URL, always serves the latest. No action needed.

  • Skills:

    cd webforj-ai && git pull
    cp -R skills/* ~/.kiro/skills/

Uninstall

  • MCP server: remove the webforj-mcp entry from ~/.kiro/settings/mcp.json.

  • Skills:

    rm -rf ~/.kiro/skills/webforj-*
Goose

Install the MCP server

Run Goose's interactive configure command and add a remote HTTP extension:

goose configure

Select Add Extension -> Remote Extension (Streamable HTTP). When prompted:

  • Name: webforj-mcp
  • Streamable HTTP endpoint URI: https://mcp.webforj.com/mcp

Install the skills

Goose loads skills from .goose/skills/ (project), .agents/skills/ (portable project), or ~/.config/agents/skills/ (global). Clone this repo and copy the skill folders:

git clone https://github.com/webforj/webforj-ai.git
mkdir -p ~/.config/agents/skills
cp -R webforj-ai/skills/* ~/.config/agents/skills/

Update

  • MCP server: remote URL, always serves the latest. No action needed.

  • Skills:

    cd webforj-ai && git pull
    cp -R skills/* ~/.config/agents/skills/

Uninstall

  • MCP server: run goose configure, select Remove Extension, choose webforj-mcp.

  • Skills:

    rm -rf ~/.config/agents/skills/webforj-*
Junie (JetBrains)

Install the MCP server

Add to ~/.junie/mcp/mcp.json (user scope) or .junie/mcp/mcp.json (project scope):

{
  "mcpServers": {
    "webforj-mcp": {
      "url": "https://mcp.webforj.com/mcp"
    }
  }
}

Install the skills

Junie reads skills from ~/.junie/skills/<skill-name>/ (user scope) or <projectRoot>/.junie/skills/<skill-name>/ (project scope). Clone this repo and copy the skill folders:

git clone https://github.com/webforj/webforj-ai.git
mkdir -p ~/.junie/skills
cp -R webforj-ai/skills/* ~/.junie/skills/

Update

  • MCP server: remote URL, always serves the latest. No action needed.

  • Skills:

    cd webforj-ai && git pull
    cp -R skills/* ~/.junie/skills/

Uninstall

  • MCP server: remove the webforj-mcp entry from ~/.junie/mcp/mcp.json.

  • Skills:

    rm -rf ~/.junie/skills/webforj-*
Antigravity (Google)

Install the MCP server

Add to ~/.gemini/antigravity/mcp_config.json:

{
  "mcpServers": {
    "webforj-mcp": {
      "serverUrl": "https://mcp.webforj.com/mcp"
    }
  }
}

Or via the UI: Agent pane -> MCP Servers -> Install a server -> paste the URL.

Install the skills

Antigravity reads skills from ~/.gemini/antigravity/skills/ (global) or <workspace-root>/.agents/skills/ (workspace). Clone this repo and copy the skill folders:

git clone https://github.com/webforj/webforj-ai.git
mkdir -p ~/.gemini/antigravity/skills
cp -R webforj-ai/skills/* ~/.gemini/antigravity/skills/

Update

  • MCP server: remote URL, always serves the latest. No action needed.

  • Skills:

    cd webforj-ai && git pull
    cp -R skills/* ~/.gemini/antigravity/skills/

Uninstall

  • MCP server: remove the webforj-mcp entry from ~/.gemini/antigravity/mcp_config.json.

  • Skills:

    rm -rf ~/.gemini/antigravity/skills/webforj-*
Other MCP Clients

Install

Any editor or tool that supports Streamable HTTP MCP servers can connect. Add this to your client's MCP configuration:

{
  "mcpServers": {
    "webforj-mcp": {
      "url": "https://mcp.webforj.com/mcp"
    }
  }
}

Update

The MCP server is remote — no action needed.

Uninstall

Remove the webforj-mcp entry from your client's MCP configuration.

Usage

Skills fire automatically when your prompt matches their description:

  • "Wrap this Custom Element library as a webforJ component."
  • "Style this view with the DWC design tokens and add a dark theme."
  • "Add login and lock down /admin to admins only."
  • "Build a customer form bound to my Customer bean and validate on submit."
  • "Upgrade this project from webforJ 25 to 26."

MCP tools work automatically in every client:

  • "What webforJ versions are available?" (uses get_versions)
  • "Scaffold a new webforJ sidemenu project called CustomerPortal." (uses create_project)
  • "Search webforJ docs for @Route annotation and navigation." (uses search_knowledge_base)
  • "Show me the full migration guide from the last search result." (uses get_document)
  • "What CSS parts and variables does dwc-button expose?" (uses styles_get_component)
  • "List every --dwc-space- token."* (uses styles_list_tokens)
  • "Validate my app.css - any unknown --dwc- tokens?"* (uses styles_validate_tokens)
  • "Generate a theme from brand color #6366f1." (uses create_theme)

What's included

The plugin bundles one MCP server and a curated set of skills.

MCP server

Remote, hosted at https://mcp.webforj.com/mcp. Exposes these tools:

Tool What it does
get_versions List the webforJ majors this server knows about, including the current stable, the active SNAPSHOT, and which majors have data available for the styling tools.
create_project Return the Maven archetype command (and follow-up commands) that scaffold a new webforJ project.
search_knowledge_base Search the indexed docs, JavaDoc, code samples, and Kotlin DSL. Returns ranked snippets with categories.
get_document Pull the full content behind a search result, for migration guides, full tutorials, or long API pages.
styles_get_component Return the real CSS styling surface of a DWC component — CSS custom properties, shadow parts, reflected attributes, and slots.
styles_list_tokens Return the authoritative list of global --dwc-* tokens (palette seeds, color shades, spacing, typography, borders).
styles_validate_tokens Validate every --dwc-* reference in CSS, Java, MDX, or Markdown text and flag invalid tokens with similar-name suggestions.
create_theme Generate a webforJ theme from a primary HSL color, including @AppTheme / @StyleSheet snippets and the full stylesheet.

Skills

Skill What it does
webforj-adding-servlets Add custom HTTP endpoints to a webforJ app for REST APIs, webhooks, or third-party servlet integrations. Covers Spring REST controllers, remapping webforJ to a sub-path, and proxying custom servlets through the webforJ config for plain and Spring projects.
webforj-building-forms Build data-entry forms with BindingContext auto-binding, Jakarta-Validation annotations, custom Validator<T> and Transformer<C, M> classes, masked input fields (MaskedTextField / MaskedNumberField / MaskedDateField / MaskedTimeField), Table mask and currency renderers for formatted columns, the MaskDecorator utility for non-input non-Table formatting (labels, exports), and ColumnsLayout for responsive multi-column form grids.
webforj-creating-components Build reusable webforJ components from core components, third-party Web Component libraries, or plain JavaScript libraries. Covers ElementComposite wrappers, component extensions, and page-level utilities.
webforj-handling-timers-and-async Schedule timers, periodic intervals, debounced actions, and background async work using webforJ's thread-safe primitives instead of raw timers or threads. Covers polling, search-as-you-type debouncing, long-running tasks with live progress updates, and async services for plain and Spring projects.
webforj-localizing-apps Add locale and translation support to a webforJ app. Covers supported locales, browser auto-detect, messages.properties bundles, runtime language switching, and custom translation backends for plain and Spring projects.
webforj-securing-apps Protect routes in a webforJ app with login, logout, role-based access, and ownership checks. Covers @AnonymousAccess, @PermitAll, @RolesAllowed, @DenyAll, @RouteAccess SpEL, and custom evaluators. Routes through the recommended Spring Security integration when Spring Boot is on the classpath, and a custom RouteSecurityManager implementation otherwise.
webforj-styling-apps Style and theme webforJ applications using the DWC design-token system (--dwc-* CSS custom properties). Covers OKLCH palette configuration, component styling via CSS variables and ::part(), layout tokens, dark mode, and theme creation.
webforj-upgrading-versions Upgrade a webforJ project to a newer major using the official webforj-rewrite OpenRewrite recipes (introduced in webforJ 26). Includes a manual fallback for source-target pairs without a published recipe (for example 24 to 25).

Contributing

Found a bug, want a new skill, or have a fix to send? Open an issue or a pull request on github.com/webforj/webforj-ai. See CONTRIBUTING.md for the maintainer workflow.

License

MIT. See LICENSE.

About

The webforJ plugin for AI coding assistants.

Resources

License

Contributing

Stars

Watchers

Forks

Contributors