# product-cli

Keeps a product described as one connected What/How graph in YAML and Turtle, and hands an agent the tools to edit and verify it.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 6
- Author: mindovermachine-dev
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/mindovermachine-dev/product-cli
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/product-cli

## What it does

\`product-cli` is a single Rust binary plus an MCP server. The graph sits as files under `.product/`; there is no database and no service to run. The What side covers the domain and event model — entities, commands, events, read models, UI steps, systems, triggers. The How side covers contracts, screen composition and delivery features. Typed links join the two, so asking the graph to describe a system is a query rather than a hunt through a stale document.

Install from source with `cargo install --path product-cli`. The What→How→Build skills for Claude ship inside the binary. `product init` writes them into `.claude/skills/` of the new repo, `--no-skills` skips that, and `product skills install --global` puts them in `~/.claude/skills/` for every project. Start a fresh Claude session afterwards, then run `/product-session`. Authoring sessions are not tied to Claude: `product session start` and `product author domain` can host them in GitHub Copilot CLI. Pick the CLI with `--cli claude|copilot`, with `[author].cli` in `.product/config.toml`, or with a global value in `~/.config/product/config.toml`; with nothing set, `claude` wins.

Validation runs against the framework's SHACL shapes and SPARQL rules. `product domain validate` checks individual nodes, `--strict` adds graph-level completeness. `product mcp --http` starts the MCP server and serves a live page at `/` with three connected views: Systems, Domain and Flows.

## Requirements
- Needs: a prebuilt binary from the repository releases

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- capture a domain and event model that a machine can read
- check graph nodes against the framework's conformance shapes
- derive an aggregate's executable signature from its description
- run flow-derived scenarios for a decider
- view the What graph as an ER diagram or event swimlanes

## Example prompts
- Scaffold the project with `product init --demo` and list the nodes it captured
- Run a strict check on the graph: `product domain validate --strict`
- Start the MCP server with `product mcp --http` and walk me through what shows up at `/`

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
