Skip to content

How to Contribute

Unfault’s client-side tools are open source, and we welcome contributions. Whether you’re fixing a bug, improving parsing for a language, or enhancing the VS Code extension, there’s a place for your work.

The following repositories are open source and accept contributions:

RepositoryLanguageWhat it doesLicense
unfault/cliRustCommand-line interface, orchestrates analysisMIT
unfault/coreRustParsing, semantic extraction, graph constructionMIT
unfault/vscodeTypeScriptVS Code extension with LSPMIT

Most contributions fall into one of these areas:

Fix bugs

Found something broken? We’d love a fix. View issues

Improve parsing

Help Unfault understand more languages and frameworks. Read more

Enhance the extension

Improve the VS Code experience. View issues

Improve docs

Clarify confusing sections or add missing information. View on GitHub

  • Rust 1.70+ for CLI and core work
  • Node.js 18+ for VS Code extension and documentation
  • Git for version control
Terminal window
# CLI
git clone https://github.com/unfault/cli
cd cli && cargo build
# Core library
git clone https://github.com/unfault/core
cd core && cargo build
# VS Code extension
git clone https://github.com/unfault/vscode
cd vscode && npm install && npm run compile
  1. Find or create an issue describing what you want to work on
  2. Fork the repository and create a branch
  3. Make your changes following the code style guidelines
  4. Write tests for new functionality
  5. Submit a pull request with a clear description

We use Conventional Commits:

feat(parser): add support for Go generics
fix(cli): handle expired tokens gracefully
docs(readme): clarify installation steps

Types: feat, fix, docs, style, refactor, test, chore

All changes go through code review. We look for:

  • Correctness: Does it work? Are edge cases handled?
  • Tests: Is new functionality tested?
  • Style: Does it follow project conventions?
  • Documentation: Are public APIs documented?

Be patient. Maintainers review PRs as time allows. If your PR sits for a week without feedback, a gentle ping is fine.

Look for issues labeled good first issue:

Documentation improvements are always welcome. The docs live in www/src/content/docs/ and use MDX (Markdown with components).

Terminal window
cd unfault/www
npm install
npm run dev
# Open http://localhost:4321

The core crate handles all client-side parsing and semantic extraction. If you want Unfault to better understand a language or framework:

  1. Check the existing parsers in core/src/parse/
  2. Check the semantic extractors in core/src/semantics/
  3. Open an issue describing what’s missing
  4. Submit a PR with tests

See the Architecture page for details on how parsing works.

Be kind. Be constructive. Be professional. We’re all here to build something useful.

Harassment, discrimination, and toxic behavior have no place in this project. If you experience or witness unacceptable behavior, report it to conduct@unfault.dev.

  • GitHub Discussions: unfault/cli/discussions
  • Existing Issues: Search before opening a new one
  • Documentation: You’re reading it

Contributors are recognized in release notes and the project README. Significant contributions may earn a spot in the maintainers list.

We appreciate every contribution, from typo fixes to major features. Thank you for helping make Unfault better.

Architecture

Understand how the client-side pieces fit together. Read more