Docs
Security
Report vulnerabilities privately. The kit is plain React source; the CLI writes files and never runs remote code.
Report a vulnerability
Use GitHub's private vulnerability reporting: open Report a vulnerability on the repository (Security tab). Include the package and version, what an attacker can do, and the steps to reproduce. Please do not open a public issue or pull request for a security problem.
- Acknowledgement within 3 working days.
- Confirmation and an agreed fix and disclosure timeline within 14 days.
- Fixes ship as a patch release with a GitHub security advisory that credits you, unless you prefer not to be named.
The same policy is in SECURITY.md.
Supported versions
Vamos UI is in early preview. Only the latest minor version of each package receives security fixes.
| Package | Supported |
|---|---|
@vamos-ui/react | Latest 0.x minor |
vamos-ui | Latest 0.x minor (CLI) |
@vamos-ui/mcp | Latest 0.x minor |
| Registry, docs site, hosted MCP | Current deployment |
What the CLI does — and does not do
| It does | It does not |
|---|---|
Read item JSON from the registry (https://ui.vamos.ist/r unless you set --registry, VAMOS_REGISTRY or vamos.json). | Download and execute scripts. Registry content is written to disk as text; the CLI never evaluates or imports it. |
Write source files into uiDir / blocksDir, rewrite kit imports to your alias, and add one @import to your CSS entry. | Write outside those folders: registry paths with ../, absolute paths or drive letters are refused. |
Record every written file with its sha256 in .vamos-lock.json. | Overwrite files you edited, unless you pass --overwrite; upgrade shows the diff and asks. |
Run your package manager (pnpm add, npm install, yarn add, bun add) for the npm dependencies an item declares. | Install anything without telling you. --dry-run prints every file and command first; --no-install skips installs. |
brand import <url>: fetch one page, up to 8 stylesheets and logo files, and parse them as text. | Run the page's scripts, send your project files anywhere, or collect telemetry. |
Two things to know
Packages installed from npm can run their own install scripts, exactly as when you install them yourself. And registry items are not signed: a custom registry is trusted input, so only point the CLI at registries you control, and review changes with --dry-run or npx vamos-ui diff.MCP server
@vamos-ui/mcp gives AI agents the registry, the design rules, tokens and a code checker.
- Local mode (stdio) runs on your machine with your user's permissions. It writes nothing unless an agent calls
apply_design_systemwithwrite: true, and then only inside theprojectDirit was given. Your MCP client asks before each tool call according to its own settings. - Remote mode (
--http, and the hosted server athttps://mcp.vamos.ist/mcp) is stateless and has no sign-in. It cannot see your files:get_brand,apply_design_system,update_design,verify_designwithprojectDirand URL import are disabled there. The server keeps no session state between requests; even so, never send secrets in tool arguments. - Self-hosting
--http: it binds to127.0.0.1by default and answers any origin (CORS*). Put it behind your own reverse proxy and authentication before exposing it on a network.
The component kit
- The package has no install scripts and collects no telemetry. It makes network requests only through what you configure: the Google Fonts helpers in
@vamos-ui/react/fontswhen you call them, the media REST adapter, and your ownloadItemsfunctions. - Block editor documents are rendered by
@vamos-ui/react/renderas React elements, withoutdangerouslySetInnerHTML. Prose htmlinserts the string as HTML, unchanged. Only pass HTML you produced or sanitised (for example with DOMPurify on the server); never pass user input directly.can()onVamosProviderhides navigation items and actions. Hiding is not access control: enforce permissions on the server.- Dependencies are kept current; security fixes in them are released as patch versions.