63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# harness-tools
|
|
|
|
Personal extensions and skills for [Pi](https://github.com/earendil-works/pi-mono).
|
|
|
|
## Included extensions
|
|
|
|
- **effort-controls** — `/effort` reasoning-level selection and `/fast` priority mode for eligible OpenAI models.
|
|
- **update** — `/update` and `--update` support for updating Pi and configured Pi packages.
|
|
|
|
## Repository layout
|
|
|
|
```text
|
|
docs/ Usage guides
|
|
extensions/ Pi extensions
|
|
profiles/nono/ Repo-managed nono profiles, symlinked into ~/.config/nono/profiles
|
|
skills/ Pi skills (one directory with a SKILL.md per skill)
|
|
```
|
|
|
|
The root `package.json` exposes the extensions and skills as a single Pi package.
|
|
|
|
## Nono sandbox
|
|
|
|
Use `pi-sbx` to launch Pi with a nono profile selected from the current directory. Manage routes with `pi-sbx-profile set <profile> [directory]`; omitting the directory assigns the current working directory. See [`docs/nono.md`](docs/nono.md) for setup, profile settings, Internet tiers, multi-repository access, and the `nono-profiles` editing skill.
|
|
|
|
## Install locally
|
|
|
|
```bash
|
|
pi install /absolute/path/to/harness-tools
|
|
```
|
|
|
|
For a one-off development run:
|
|
|
|
```bash
|
|
pi -e ./extensions/effort-controls
|
|
pi -e ./extensions/update
|
|
```
|
|
|
|
## Development
|
|
|
|
Node.js 22.19 or newer is required by the current Pi development dependencies.
|
|
|
|
```bash
|
|
npm install
|
|
npm run typecheck
|
|
```
|
|
|
|
Extensions are TypeScript modules loaded directly by Pi; no build step is required.
|
|
|
|
Repository-managed global instructions, skills, and extension exposure are declared in [`config/pi-links.json`](config/pi-links.json) and reconciled by one script:
|
|
|
|
```bash
|
|
./scripts/pi-links.mjs check
|
|
./scripts/pi-links.mjs sync --dry-run
|
|
./scripts/pi-links.mjs sync
|
|
./scripts/pi-links.mjs prune --dry-run
|
|
```
|
|
|
|
The repository-local `manage-pi-links` skill applies this workflow. Global instructions are linked to Pi and Codex as `AGENTS.md`; Claude receives a `CLAUDE.md` that imports the shared instructions. The manager preserves unrelated global resources and refuses unmanaged destination collisions. Run `/reload` after changing active Pi instruction, skill, or extension exposure.
|
|
|
|
## License
|
|
|
|
MIT
|