Thank you for your interest in contributing to loom! This guide will help you get started.
- Go 1.26+
- A terminal emulator with modern capabilities (kitty, ghostty, alacritty, etc.)
git clone https://github.com/floatpane/loom.git
cd loom
go mod tidygo build -o loom . # builds to ./loom
./loom <file-path> # run loomgo test -v ./... # run all tests with verbose outputgofmt -l . # check formatting
go vet ./... # run go vetCreate a branch from master using one of these prefixes:
feature/— new functionalityfix/— bug fixesdocs/— documentation changesrefactor/— code restructuring without behavior changes
We use Conventional Commits. Format your commit messages as:
type(scope): short description
Common types: feat, fix, docs, test, ci, chore, refactor, perf.
Keep commit messages to 40 characters or fewer.
Examples:
feat(suggest): add co-reviewed-by trailer
fix(editor): preserve cursor position on accept
docs: update installation instructions
- Run
gofmt -l .and fix any issues. - Run
go test ./...and make sure all tests pass. - Run
go vet ./...and fix any warnings. - Keep your PR focused — one logical change per PR.
- Write a clear PR description explaining what changed and why.
Open an issue with:
- Steps to reproduce the issue
- Expected vs. actual behavior
- Your OS, terminal emulator, and loom version
Open an issue with a clear description of the problem you're trying to solve and your proposed solution.
We welcome contributions that use AI-assisted tools as part of the development process. That said, contributors are fully responsible for any code they submit, regardless of how it was written.
What we expect:
- Understand what you submit. You should be able to explain every line of your PR.
- Review AI output carefully. AI tools can produce plausible-looking code that is subtly wrong or doesn't match the project's patterns. Treat AI suggestions the same way you'd treat a Stack Overflow snippet — verify before committing.
- Don't submit AI-generated issues, reviews, or comments. Discussions should be genuine human communication.
- No AI-generated tests that don't actually test anything. Tests must be meaningful and actually validate behavior.
What we won't accept:
- Bulk PRs of AI-generated refactors or "improvements" that weren't requested.
- Code that introduces hallucinated dependencies, APIs, or patterns that don't exist in the project.
- Contributions where the author clearly doesn't understand the changes they're proposing.
The goal is simple: AI is a tool. Use it well, take ownership of the output, and make sure your contribution actually improves the project.
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold a welcoming and respectful environment for everyone.