Thanks for your interest in contributing! This document covers what we're looking for and how to get started.
- Bug fixes and edge case handling
- Performance improvements
- Support for additional OpenCode tool hooks
- Documentation improvements
- Test coverage
For new features or significant changes, please open an issue first to discuss the approach.
git clone https://github.com/ASidorenkoCode/openhashline.git
cd openhashline
bun installAdd the plugin to your OpenCode config (~/.config/opencode/config.json):
{
"plugins": {
"hashline": {
"module": "file:///absolute/path/to/openhashline/src/index.ts"
}
}
}Start OpenCode and verify:
- Read a file — lines should be tagged with
<line>:<hash>|markers - Edit a file — the model should use
startHash/afterHashinstead ofoldString - Check stale hash rejection — manually edit a file, then try a hash-based edit
All PRs should reference an existing issue. If there isn't one, open one first.
Use conventional commits:
fix:— bug fixfeat:— new featuredocs:— documentation onlyrefactor:— code restructuring without behavior changetest:— adding or updating testschore:— maintenance tasks
- One concern per PR
- Small, reviewable diffs
- Explain why, not just what
- Keep functions focused and short
- Prefer
constoverlet - No
anytypes unless interfacing with untyped plugin APIs - Handle edge cases explicitly (stale hashes, missing files, etc.)
src/
└── index.ts # Entire plugin — hooks for read, edit, and system prompt
The plugin is intentionally a single file. If it grows beyond ~400 lines, we can discuss splitting it.