Thank you for your interest in contributing! CodeSetu is an open-source project and every contribution matters — code, documentation, bug reports, Indic language testing, or sharing the project.
- Check existing issues so you don't duplicate work.
- For big changes (new features, architecture changes), open a Discussion first.
- Read this document fully before submitting your first PR.
- Fix a bug tagged
bug - Pick up a
good-first-issue - Implement a feature from the roadmap
- Test completions in your native Indian language (Hindi, Tamil, Telugu, Bengali, etc.) and report quality issues
- Test on-prem deployment on different hardware
- Improve README, architecture docs, or setup guides
- Translate docs into Indian languages
- Contribute Indic-language code completion eval prompts
- Share anonymized tool-call traces for fine-tuning (see
datasets/folder)
- Node.js 18+
- pnpm 8+ (
npm install -g pnpm) - Python 3.10+ (for eval scripts)
- A configured provider — a Sarvam API key, an OpenRouter key, or a local OpenAI-compatible endpoint (Ollama, vLLM, SGLang)
# 1. Fork and clone
git clone https://github.com/<your-username>/codesetu
cd codesetu
# 2. Install dependencies
pnpm install
# 3. Set your Sarvam API key
cp .env.example .env
# Edit .env and add: SARVAM_API_KEY=your_key_here
# 4. Start dev mode
pnpm dev
# 5. Open VSCode with the extension in debug mode
# Press F5 inside VSCode to launch Extension Development Hostfeature/short-description
fix/short-description
docs/short-description
chore/short-description
We use Conventional Commits:
feat: add Hindi comment support in FIM completions
fix: correct tool-call schema for the Sarvam provider
docs: add architecture diagram
chore: update pnpm lockfile
All commits must include a DCO sign-off:
git commit -s -m "feat: your message"The -s flag adds Signed-off-by: Your Name <your@email.com> to your commit, which certifies you wrote the code and have the right to submit it under Apache 2.0.
- Keep PRs focused — one issue per PR.
- Add tests for new functionality where applicable.
- Ensure
pnpm lintandpnpm testpass locally before pushing. - Fill out the PR template completely.
- Expect a review within 48 hours. We'll always respond, even if just to acknowledge.
- Squash commits before merge (maintainers may do this for you).
- TypeScript: ESLint + Prettier (config in repo root). Run
pnpm lint:fix. - Python (eval scripts): Black + isort. Run
black . && isort .. - No tabs — 2-space indent for TS, 4-space for Python.
Use the Bug Report template. Include:
- OS and IDE version
- Steps to reproduce
- Expected vs actual behaviour
- Logs from the Output panel (
CodeSetuchannel)
Do not file public issues for security vulnerabilities. See SECURITY.md for private reporting channels (GitHub Security Advisory or Discord DM).
This project follows the Contributor Covenant v2.1. Be respectful. Be constructive. Be kind.
- Chat and quick help — join our Discord server.
- Design discussions and longer-form questions — open a GitHub Discussion.
- Issues are for bugs and feature requests with clear specs only.