Hora Kit plugin
Skills and subagents for Claude Code: an application is built from its spec, one feature at a time, with one install command.
- 56 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- The install command writes and deletes files in `.claude/`, and the subagents edit project code.
Install
- Works in
Manual install
npm install -D @openreachtech/horaThen `npx --no hora-core install` for the first placement or a `postinstall` in `package.json`. Node.js 20.0.0 or newer is required.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The install command writes and deletes files in `.claude/`, and the subagents edit project code.
This is third-party code. Review the repository files before installing.
What it does
Hora builds an application from its spec, one feature at a time, through an AI agent. The `@openreachtech/hora` package is a container that carries the core of the method into a repository: skill definitions and three subagents, `hora-digester`, `hora-implementer` and `hora-verifier`. The skills include project commands such as `hora-spec` for the spec, `hora-plan` for the plan, `hora-build` for the build and `hora-accept` for acceptance, plus routes for hotfixes and quick work. Everything shipped lives under `kit/`, and the `hora-core install` command copies it into `.claude/agents/` and `.claude/skills/` of the repository. Installation is repeatable: it removes earlier entries recorded in `.hora/equip-core.json` and places the current version. It leaves your own skills alone unless their names match shipped ones.
Who it is for. Teams building Node.js applications with an agent from a spec who want the same skill set in every repository.
Good fit when
- A new project starts from the `hora-boilerplate` template and the kit is already wired.
- The Hora method must be attached to an existing repository without recreating the project.
- Spec, plan, build and acceptance should follow one order feature by feature.
- A hotfix needs a separate route outside the regular cycle.
Not a fit when
- Node.js 20.0.0 or newer is missing: the package requires it.
- `.claude/` in the repository is a symbolic link: the install then writes and removes nothing.
- You do not work in Claude Code: the target directory of the kit is `.claude/`.
Example request
Prepare the account area feature spec with `hora-spec`, then write the plan and start the build.Limitations
Node.js 20.0.0 or newer is required. The package installs nothing on `npm install` by itself: declare the `hora-core install` command as the project `postinstall` or run it by hand through `npx --no`. `.claude/` and its nested directories must be real folders; on meeting a symbolic link the install writes nothing and fails. The installed files belong in `.gitignore`, with your own skills named as exceptions. The documented target agent is Claude Code only.
How to disable. Remove the `postinstall` declaration and delete the package with `npm uninstall @openreachtech/hora`. Clean the installed entries from `.claude/agents` and `.claude/skills` using the `.hora/equip-core.json` record.
FAQ
How do I install Hora Kit?
`npm install -D @openreachtech/hora`. Then declare `"postinstall": "hora-core install"` or run `npx --no hora-core install` once: the package copies nothing by itself.
Why the --no flag on npx?
It stops npx before downloading: the name resolves against the registry but nothing is fetched, so a stranger's package never runs. Without it a missing binary could become a download.
Where do the files go?
`dist/agents/` lands in `.claude/agents/` and `dist/skills/` in `.claude/skills/`. Earlier package installs are removed using the `.hora/equip-core.json` record.
How does a new project start?
From a GitHub template: `hora-boilerplate` for web and `hora-boilerplate-mobile` for Android and iOS. The template declares this package and the needed skill libraries itself.
Will the install touch my skills?
No, unless their names match shipped ones. Your own skills sit alongside, and in `.gitignore` they are named as exceptions such as `!.claude/skills/my-own-skill/`.
Discussion
No questions or reviews yet.
Related
PluginsOne-command Claude Code environment installer: a wizard sets up agents, rules, commands, skills and hooks in three profiles
Claude Code kit with eight phase agents, 21 skills and hooks that keep the agent inside set limits.
A set of 116 skills, 44 agents and safety hooks for Claude Code, Cursor, Codex, Gemini CLI and nine more editors
Ready infrastructure for Claude Code: skill auto-activation via hooks, a skill set, agents, slash commands and a wizard that installs it into your project
Shared Claude Code settings for a team: hooks against dangerous commands, a check before finishing and skills from spec to review
Codely team skills that run agent work in phases: a plan in a file or GitHub issues, review after each phase and a clean commit
README in short
The README explains that the package only carries the method core into a repository and describes installation, running the command and behaviour on links. Updating, the ignored paths list and install repeatability follow.