Installation
Install

Bootstrap the runtime into an existing repo.

The installer detects Claude Code and OpenCode projects, copies the managed runtime files, merges settings safely, and records the installed package version.

Requirements#

  • Node.js >=18
  • A writable project root
  • Claude Code project, OpenCode project, or a selected runtime during install

Install#

npx @haposoft/cafekit

The binary is exposed as cafekit from packages/spec/bin/install.js.

Upgrade#

npx @haposoft/cafekit --upgrade

Upgrade mode refreshes managed files, removes obsolete runtime hooks, and keeps user-owned settings where possible.

Platform detection#

CafeKit detects:

RuntimeDetectionInstalled shape
Claude Code.claude/.claude/skills, .claude/agents, .claude/hooks, settings.json, status.cjs, CLAUDE.md
OpenCode.opencode/, opencode.json, or opencode.jsonc.opencode/skills, .opencode/agents, .opencode/commands, .opencode/plugins, .opencode/runtime.json, root AGENTS.md, merged opencode.json

If no runtime marker exists, the installer asks which platform to install.

Verify#

Run one of these inside the target project:

/hapo:specs Build a tiny verified feature

For OpenCode, generated command names omit the hapo: prefix:

/specs Build a tiny verified feature

Version tracking#

The installer writes package metadata to:

  • .claude/cafekit.json
  • .opencode/cafekit.json

The metadata includes packageName, version, platform, install timestamps, previous version when available, and the exact install command.