# Contributing
URL: /docs/contributing



# Contributing to Tau

Thank you for your interest in contributing to Tau! We welcome contributions of all kinds — code, documentation, bug reports, feature requests, and more.

## Getting Started

### Development Setup

See our [Contributing Guide](https://github.com/taucad/tau/blob/main/contributing.md) for detailed instructions on:

* Prerequisites (Node.js 24+, pnpm, Docker)
* Installing dependencies
* Setting up infrastructure (database + Redis)
* Running development servers
* Infrastructure and database commands
* Linting rules and conventions

### Quick Start

```bash
# Clone the repository
git clone https://github.com/taucad/tau.git
cd tau

# Install dependencies
pnpm install

# Start infrastructure (database + Redis)
pnpm infra:up

# Copy environment files
cp apps/ui/.env.example apps/ui/.env.local
cp apps/api/.env.example apps/api/.env.local

# Start development servers
pnpm dev
```

## Ways to Contribute

### Report Bugs

Found a bug? [Open an issue](https://github.com/taucad/tau/issues/new) with:

* Clear description of the problem
* Steps to reproduce
* Expected vs actual behavior
* Screenshots or screen recordings if applicable

### Suggest Features

Have an idea? [Start a discussion](https://github.com/taucad/tau/discussions) or [open an issue](https://github.com/taucad/tau/issues/new) describing:

* The problem you're trying to solve
* Your proposed solution
* Any alternatives you've considered

### Submit Code

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests and linting (`pnpm nx affected -t test,lint,typecheck`)
5. Commit with clear messages
6. Push and open a Pull Request

### Add a CAD Kernel

Want to integrate a new CAD engine? See our [Kernel Integration Guide](/docs/contributing/kernels) for step-by-step instructions on adding support for new kernels.

### Improve Documentation

Documentation improvements are always welcome! You can:

* Fix typos or unclear explanations
* Add examples and tutorials
* Translate documentation
* Improve API documentation

## Community Guidelines

### Code of Conduct

Please read our [Code of Conduct](https://github.com/taucad/tau/blob/main/code_of_conduct.md) before participating. We're committed to providing a welcoming and inclusive environment.

### Security

Found a security vulnerability? Please review our [Security Policy](https://github.com/taucad/tau/blob/main/security.md) and report it responsibly to [security@tau.new](mailto:security@tau.new).

## Resources

| Resource                                                                      | Description                                      |
| ----------------------------------------------------------------------------- | ------------------------------------------------ |
| [Discord](https://discord.gg/6pfSAN3t7A)                                      | Join our community for questions and discussions |
| [GitHub Issues](https://github.com/taucad/tau/issues)                         | Bug reports and feature requests                 |
| [GitHub Discussions](https://github.com/taucad/tau/discussions)               | General questions and ideas                      |
| [Contributing Guide](https://github.com/taucad/tau/blob/main/contributing.md) | Development setup and guidelines                 |

## Current Limitations

Some areas where contributions are especially welcome:

### OpenSCAD Kernel

* Only STL export is currently implemented; STEP export is planned
* Error messages could be improved with better parsing

### Zoo (KCL) Kernel

* Requires internet connection for Zoo API access
* API token required for full functionality

### General

* Accessibility improvements
* Mobile experience optimization
* Additional export formats
* Performance optimizations

***

Thank you for helping make Tau better! 🙏
