Thanks for your interest in contributing! Whether it's a bug fix, new feature, or documentation improvement, we appreciate the help.
# Clone
git clone https://github.com/Benjamin-Connelly/lookit.git
cd lookit
# Build (either works)
make build
go build -o lookit ./cmd/lookit
# Test
make test
go test ./...
# Run
./lookit .- Go 1.24+
- No CGO dependencies
cmd/lookit/main.go— CLI entry point (Cobra commands)internal/tui/— Bubble Tea TUI (split-pane, preview, keys, links, panels)internal/web/— stdlib net/http server (Goldmark, SSE, go:embed)internal/index/— File walker, fuzzy search, full-text search (Bleve), link graph, watcherinternal/render/— Glamour (TUI) and Chroma (syntax) wrappers, heading extractioninternal/git/— go-git integration, permalink generationinternal/config/— Viper config loader, per-project config discoveryinternal/export/— Markdown to HTML exportinternal/doctor/— Environment diagnosticsinternal/plugin/— YAML hook systeminternal/tasks/— TODO extraction
- Pure Go, no CGO. Must cross-compile to linux/darwin x amd64/arm64.
- No external web frameworks. stdlib
net/httponly. - All errors handled explicitly. No panics.
- Table-driven tests where applicable.
- Keep commits focused: one logical change per commit.
- Use conventional commit format:
feat(scope): summary
go test ./... # Run all tests (122 tests across 8 packages)
go test -race ./... # Race detector
go vet ./... # Static analysis- Fork the repo and create a feature branch
- Write tests for new functionality
- Ensure
go test ./...andgo vet ./...pass - Submit a PR with a clear description of what changed and why
See the README for full feature documentation and keybinding reference.