@skill-tree/cli
v0.1.0
Published
skilltree CLI, MCP server and REST API in one binary: init, validate, link to the hosted viewer, serve the local one, and generate theme assets for game-style skill-tree journey maps.
Downloads
149
Readme
@skill-tree/cli
The skilltree binary: CLI, MCP server and REST API in one, for
skilltree - game-style RPG skill-tree journey maps
for software projects.
npx @skill-tree/cli init # or: init --example for a full demo tree
npx @skill-tree/cli link # print the hosted-viewer URL for the tree
npx @skill-tree/cli view # local web viewer + REST API at http://localhost:5178A tree is one file, .skilltree/skilltree.json, holding the definition and your progress together.
link deflates the whole thing into a #p= URL fragment, so the
hosted viewer renders it without the tree ever reaching a
server.
As an MCP server
Every command is also an MCP tool, which is how Claude authors trees and awards XP as you work:
{ "mcpServers": { "skilltree": { "command": "npx", "args": ["-y", "@skill-tree/cli", "mcp"] } } }The Claude Code plugin wires that up together with the authoring skill in one command.
Commands
| Command | Purpose |
|---|---|
| skilltree init [--example] [--skill] [--force] | create .skilltree/skilltree.json |
| skilltree validate | schema + semantic checks (cycles, costs, overspend); exit 1 on errors |
| skilltree link | print the hosted-viewer URL (tree deflated into the #p= fragment) |
| skilltree tree [--status available] [--branch id] | the resolved tree as JSON |
| skilltree award-xp --points N --note "..." | award effort points |
| skilltree level-node <id> | spend points to raise a node (refuses if locked or unaffordable) |
| skilltree add-branch / add-node / remove-node | author the tree |
| skilltree view [-p port] [--no-open] | serve the web viewer + REST API with live updates |
| skilltree mcp | serve every command as an MCP tool over stdio |
| skilltree assets-generate / assets-batch | generate theme assets via the Gemini image API |
Array options take JSON on the command line: --requires '["cli-basics"]'.
There is exactly one implementation behind all three transports - the actions in
@skill-tree/actions. The bin only picks an
adapter.
What ships in the package
The built binary, the web viewer SPA, the bundled themes (without their raster art, which the
viewer fetches from the hosted CDN), the authoring skill and one example tree.
assets-generate / assets-batch need a GEMINI_API_KEY; nothing else does.
MIT (c) Tobias Strebitzer
