Skip to main content

cpp.js

Bind C++ libraries to JavaScript on web (WebAssembly), Node.js, Cloudflare Workers, and React Native — through a single config + CLI. Compiles via Emscripten / NDK / Xcode, ships 16 prebuilt libraries (GDAL, OpenSSL, GEOS, SQLite, Proj, libtiff, libwebp, libcurl, …) ready to pnpm add, and includes first-class AI agent support (Claude Code plugin, MCP server, vendor-neutral AGENTS.md snippet).

Get started

For AI agents — native plugins for 6 clients + 2 universal fallbacks

Single source of truth at cppjs-agents/ — same skills, commands, and MCP tools across all clients.

  • Claude Code plugin: Skills + slash commands (/cppjs-integrate, /cppjs-package, /cppjs-bug-fix). Install: /plugin marketplace add bugra9/cpp.js then /plugin install cppjs.
  • Cursor 2.5+ plugin: Same skills + commands via Cursor marketplace. Install: Cursor → Settings → Plugins → Add from GitHub bugra9/cpp.js.
  • OpenAI Codex CLI plugin: Skills + interface metadata for Codex. Install: Add bugra9/cpp.js to ~/.agents/plugins/marketplace.json, then codex plugin install cppjs.
  • GitHub Copilot CLI plugin: Skills + MCP server reference + .github/copilot-instructions.md. Auto-discovers when running in this repo.
  • Gemini CLI extension: MCP server registration + GEMINI.md context. Install: gemini extension install https://github.com/bugra9/cpp.js.
  • OpenCode integration: Add cppjs MCP to your opencode.json. Optionally symlink skills.
  • @cpp.js/mcp — MCP server: Universal fallback — any MCP-aware client (Claude Desktop, Cline, custom clients). 9 typed tools. Install: npx -y @cpp.js/mcp.
  • Skills CLI (50+ agents): Universal skills installer for Cline, Continue, Windsurf, Warp, Aider, Goose, Roo, Tabnine, Devin, Replit, and 40+ more. Install: npx skills add https://github.com/bugra9/cpp.js/tree/main/cppjs-agents/skills -g -y.
  • AGENTS.md snippet: Vendor-neutral, zero install. Paste into your project's AGENTS.md / GEMINI.md / .github/copilot-instructions.md.

Runtime / Config API reference

Workflow playbooks

Optional